Javascript 处理:文本赢得';t仅在第一次激活鼠标按下()时打印

Javascript 处理:文本赢得';t仅在第一次激活鼠标按下()时打印,javascript,text,mouseevent,processing,Javascript,Text,Mouseevent,Processing,背景故事:在处理过程中进行打鼹鼠游戏。当你点击一只鼹鼠时,它会在它的头上打印BOINK,鼹鼠就会消失。遇到第一次单击时文本无法打印的问题。我已经三次检查了文本的位置和填充,但都没有结果 让我困惑的是,如果我在文本前放一个print语句,打印将出现在控制台中,但是如果我在文本前放任何形状,它也不会打印 再次重申,此错误仅在第一次单击时发生 进一步的测试表明,按键时也会出现同样的问题,因此这里有一个非常简短的程序来演示错误 void setup() { } void draw() { ba

背景故事:在处理过程中进行打鼹鼠游戏。当你点击一只鼹鼠时,它会在它的头上打印BOINK,鼹鼠就会消失。遇到第一次单击时文本无法打印的问题。我已经三次检查了文本的位置和填充,但都没有结果

让我困惑的是,如果我在文本前放一个print语句,打印将出现在控制台中,但是如果我在文本前放任何形状,它也不会打印

再次重申,此错误仅在第一次单击时发生

进一步的测试表明,按键时也会出现同样的问题,因此这里有一个非常简短的程序来演示错误

void setup() {
}

void draw() {
    background(0);
}

void keyPressed() {
    textAlign(CENTER);
    textSize(16);
    fill(255, 255, 0);
    println("test");
    text("Test", width / 2, height / 2); 
}

请记住,
draw()
函数每秒调用60次,并且调用
background()
函数的每一帧都会清除屏幕并绘制黑色背景

将其与
keyPressed()
函数进行比较,该函数仅在用户按键时调用。在这种情况下,您将在屏幕上绘制一些文本

问题是,
draw()
函数将立即被调用,并将清除刚才绘制的内容

您可能希望在
draw()
函数中使用
keyPressed
变量,而不是使用
keyPressed()
函数,如下所示:

void draw(){
   background(255, 0, 0);

   if(keyPressed){
      background(0, 255, 0);
   }
}

无耻的自我提升:我写了一篇关于“处理中的输入”的教程。

请记住,
draw()
函数每秒调用60次,您调用的每一帧
background()
函数都会清除屏幕并绘制黑色背景

将其与
keyPressed()
函数进行比较,该函数仅在用户按键时调用。在这种情况下,您将在屏幕上绘制一些文本

问题是,
draw()
函数将立即被调用,并将清除刚才绘制的内容

您可能希望在
draw()
函数中使用
keyPressed
变量,而不是使用
keyPressed()
函数,如下所示:

void draw(){
   background(255, 0, 0);

   if(keyPressed){
      background(0, 255, 0);
   }
}

无耻的自我推销:我写了一篇关于“处理中的输入”的教程。

如果你发布一篇文章而不是整个项目,你的运气会好得多。你需要隔离你的问题。哪一行代码的行为与您预期的不同?我并没有发布我的整个程序,但我的观点是正确的;将其缩短为一个具有相同问题的非特定示例。如果您发布一个而不是整个项目,您的运气会好得多。你需要隔离你的问题。哪一行代码的行为与您预期的不同?我并没有发布我的整个程序,但我的观点是正确的;将其缩短为具有相同问题的非特定示例。如果问题在每次按键时都是一致的,我同意您的看法,即这是一个background()问题;但是,正如我所说,这只发生在第一次按下时,而不是任何其他按下时。@Tristan尝试对
background()
的调用进行注释,以便您可以实际看到绘制到屏幕上的文本。如果我这样做,我每次都会看到文本,包括我第一次按键的时候。如果每次按键的问题都是一致的,我同意你的说法,那就是背景()问题;但是,正如我所说,这只发生在第一次按下时,而不是任何其他按下时。@Tristan尝试对
background()
的调用进行注释,以便您可以实际看到绘制到屏幕上的文本。如果我这样做,我每次都会看到文本,包括第一次按键时。