私はインタラクティブなテキスト解析のWebサイトで作業していますが、現在for()ループが.txtファイルの行の配列を実行しています。各行は長方形を生成します。それはうまく動作しますが、私はmouseOver/rolloverを各正方形にして、Webページ上にテキスト行を印刷する必要があります。基本的には、mouseX + mouseYが矩形の上にある場合、htmlの段落に行[i]を追加するというだけの文章を書く必要があります。p5.js:for()ループの要素にロールオーバーするにはどうすればできますか?
私はまだp5.jsを把握しており、sketch.jsとhtmlページの間をどのようにジャンプするのですか?どんな助けでも大歓迎です!ありがとうございました。
現在のコード
var book = [];
var lines = [];
var term1 = [];
var term2 = [];
var size;
var x;
var y;
function preload() {
book = loadStrings("data/01.txt");
}
function setup() {
createCanvas(windowWidth, windowHeight);
colorMode(HSB, 360, 100, 100, 100);
lines = splitTokens(book[0], ".?");
term1 = ["photography", "Photography", "PHOTOGRAPHY"];
term2 = ["art", "Art", "ART"];
size = 10;
x = 40;
y = 50;
noLoop();
noStroke();
rectMode(CENTER);
ellipseMode(CENTER);
background(0, 0, 100);
}
function draw() {
background(0, 0, 100);
for (var i = 0; i < lines.length; i++) {
x += size;
if (x >= windowWidth - 50) {
x = 40;
y += size;
}
// contains term 1 and term 2
if ((lines[i].indexOf(term1[0]) > 0 || lines[i].indexOf(term1[1]) > 0 || lines[i].indexOf(term1[02]) > 0) && (lines[i].indexOf(term2[0]) > 0 || lines[i].indexOf(term2[1]) > 0 || lines[i].indexOf(term2[2]) > 0)) {
fill(37, 87, 100);
} else if (lines[i].indexOf(term1[0]) > 0 || lines[i].indexOf(term1[1]) > 0 || lines[i].indexOf(term1[2]) > 0) {
fill(333, 61, 94);
} else if (lines[i].indexOf(term2[0]) > 0 || lines[i].indexOf(term2[1]) > 0 || lines[i].indexOf(term2[2]) > 0) {
fill(203, 71, 98);
} else {
fill(0, 0, 95);
}
rect(x, y, size/2, size/2);
}
}
ありがとうございます。私は段落にテキストを追加する別の方法を使用して終了しなければならなかったが、それは今、ありがとう!私は1つの問題しかありません。forループが正方形の素敵なグリッドを生成している間に、y + = 10がウィンドウの端に当たって行を押し下げるので、四角形のグループ全体がそれぞれフレームと完全なループ。 noLoop()を使わずに四角い束をたくさん残しておく方法はありますか? – themessup
解決しないでください! DRAWループの開始時にx = valueとy = valueを記述するのを忘れて、それがfor()ループに通知しました。これはずっとずっとsetup()でしかなかったので、一度だけ更新されました。再度、感謝します! – themessup