【发布时间】:2020-05-19 03:26:07
【问题描述】:
我试图在单击鼠标时弹出随机文本和背景,但是,当我单击时,文本会显示不到半秒,然后会出现新背景并隐藏文本
这是我按下鼠标的样子:
String mySentence = "Lose.txt";
String[] lose;
float mx = 20;
int posX = 0;
int posY = 0;
int butterflyX = 100;
int butterflyY = 100;
PImage v1;
PImage bf;
float xpos, ypos;
boolean playing = false;
//sentence
boolean showMySentence = false;
int mySentenceTimer = 0;
PImage [] backgrounds = new PImage[5];
int bg;
int currentBgNumber = 0;
void setup(){
size(800,501);
backgrounds = new PImage[5];
backgrounds[0] = loadImage("field.jpg");
backgrounds[1] = loadImage("galaxy.jpg");
backgrounds[2] = loadImage("tokyo.jpg");
backgrounds[3] = loadImage("water.jpg");
backgrounds[4] = loadImage("paris.jpg");
// mySentence = loadStrings(loseFile);
PFont myFont;
myFont = createFont("Futura", 30,true);
textFont(myFont);
fill(255);
}
void draw(){
image(backgrounds[currentBgNumber], 0, 0);
if (showMySentence) {
fill(255);
textSize(20);
text(mySentence, width/2, height/2);
showMySentence = millis() < mySentenceTimer;
}
void mousePressed() {
currentBgNumber++;
if (currentBgNumber>4)
currentBgNumber=0;
if (random(1) < .5) {
mySentence = "lose.txt" + "!";
mySentenceTimer = millis() + 3000;
showMySentence = true;
}
}
据我所见,在后台运行之后,文本应该在之后运行,但我猜不是。如果您能告诉我需要修复的地方,我将不胜感激,谢谢:)
【问题讨论】:
-
那是因为
draw()循环会立即覆盖它。为了使您的文本绘制得更长,它也必须在draw()循环中重新绘制。我会给你写一个代码 sn-p 来展示你可以解决这个问题的方法。 -
哦,有道理。谢谢,我试试看!
标签: image-processing processing