【问题标题】:keyPressed() function not responding (Processing 3.0)keyPressed() 函数没有响应(处理 3.0)
【发布时间】:2018-07-20 06:25:04
【问题描述】:

我试图重新创建井字游戏以再次获取处理。我记得在我将函数放入 keyPressed() ifs 之前,程序运行良好,每次用户在控制台中输入数字时都会在控制台中输入文本行。现在每次我按键时,什么都没有显示,甚至没有我分配的错误消息,以防用户决定输入除数字之外的任何内容。现在我不确定我哪里出错了。由于我不完全是编写处理的专家,因此我不确定如何解决此错误。任何帮助,将不胜感激。谢谢。

代码:

String pos = "";
boolean isx = true;
boolean onepressed = false;
boolean twopressed = false;
boolean threepressed = false;
boolean fourpressed = false;
boolean fivepressed = false;
boolean sixpressed = false;
boolean sevenpressed = false;
boolean eightpressed = false;
boolean ninepressed = false;
void setup() {
  size(1000,1000);
  frameRate(60);
  background(255,255,255);
  smooth();
  noStroke();
}
void keyPressedUpdate() {
  if (isx == true) {
    print("An x has been placed in the ");
    print(pos);
    print(" of the board");
    print("Currently x's turn");
    isx = false;
  } else if (isx == false) {
    print("An o has been placed in the ");
    print(pos);
    print(" of the board");
    print("Currently o's turn");
    isx = true;
  }
}
void keyPressed() {
  if (key == '1' && onepressed == false) {
    pos = "top-left corner";
    keyPressedUpdate();
    onepressed = true;
  } else if (key == '2' && twopressed == false) {
    pos = "top-center square";
    keyPressedUpdate();
    twopressed = true;
  } else if (key == '3' && threepressed == false) {
    pos = "top-right corner";
    keyPressedUpdate();
    threepressed = true;
  } else if (key == '4' && fourpressed == false) {
    pos = "center-left square";
    keyPressedUpdate();
    fourpressed = true;
  } else if (key == '5' && fivepressed == false) {
    pos = "center square";
    keyPressedUpdate();
    fivepressed = true;
  } else if (key == '6' && sixpressed == false) {
    pos = "center-right square";
    keyPressedUpdate();
    sixpressed = true;
  } else if (key == '7' && sevenpressed == false) {
    pos = "bottom-left corner";
    keyPressedUpdate();
    sevenpressed = true;
  } else if (key == '8' && eightpressed == false) {
    pos = "center-bottom square";
    keyPressedUpdate();
    eightpressed = true;
  } else if (key == '9' && ninepressed == false) {
    pos = "bottom-right corner";
    keyPressedUpdate();
    ninepressed = true;
  } else {
    print("Please enter a number, not a letter or symbol.");
  }
}

【问题讨论】:

    标签: processing


    【解决方案1】:

    如果您使用keyPressed() 之类的事件函数,则需要有一个draw() 函数,即使您实际上并未在其中绘制任何内容。

    也就是说,添加一个draw()函数:

    void draw(){}
    

    现在您将在控制台中看到您的打印语句。

    【讨论】:

      猜你喜欢
      • 2017-01-26
      • 1970-01-01
      • 2012-05-05
      • 2019-01-16
      • 1970-01-01
      • 2013-06-16
      • 2014-04-22
      • 1970-01-01
      相关资源
      最近更新 更多