我需要帮助在处理中自由移动 2 个物体,制作乒乓球

问题描述 投票:0回答:1

它的代码很糟糕,但只是因为它是一个测试,但如果你能提供帮助那就太好了 这是我的代码:

float x = 100;
float y = 260;
float y2 = 265;
float x2 = 600;

void setup() {
  size(750,750);
}

void draw() {
background(167);
  rect(x,y,15,75);
  rect(x2,y2,15,75);
  
  if (keyPressed == true) {
    if(key == 'w' || key == 'W') {
      y = y - 10;
    }
    if(key == 's' || key == 'S') {
      y = y + 10;
    }
    if(key == 'o' || key == 'O') {
      y2 = y2 - 10;
    }
    if(key == 'l' || key == 'L') {
      y2 = y2 + 10;
    }
  }
}

移动一个会让另一个暂停,我希望他们都移动

processing
1个回答
0
投票

以下源代码使用布尔数组来跟踪四个键的按键/释放,并允许同时捕获按下操作:

boolean[] keyDwn = new boolean[4];

final int _keyW = 87;
final int _keyS = 83;
final int _keyO = 79;
final int _keyL = 76;

float x = 100;
float y = 260;
float y2 = 265;
float x2 = 600;

void setup() {
  size(750, 750);
}

void draw() {
  background(167);
  // W
  if (keyDwn[0] == true) {
    y = y - 10;
  }
  // S
  if (keyDwn[1] == true) {
    y = y + 10;
  }
  // O
  if (keyDwn[2] == true) {
    y2 = y2 - 10;
  }
  // L
  if (keyDwn[3] == true) {
    y2 = y2 + 10;
  }
  rect(x, y, 15, 75);
  rect(x2, y2, 15, 75);
}

void keyPressed() {
  if (keyCode == _keyW) {
    keyDwn[0] = true;
    println("keyF pressed = ", keyCode);
  }
  if (keyCode == _keyS) {
    keyDwn[1] = true;
    println("keyJ pressed = ", keyCode);
  }
  if (keyCode == _keyO) {
    keyDwn[2] = true;
    println("keyJ pressed = ", keyCode);
  }
  if (keyCode == _keyL) {
    keyDwn[3] = true;
    println("keyJ pressed = ", keyCode);
  }
}

void keyReleased() {
  if (keyCode == _keyW) {
    keyDwn[0] = false;
  }
  if (keyCode == _keyS) {
    keyDwn[1] = false;
  }
  if (keyCode == _keyO) {
    keyDwn[2] = false;
  }
  if (keyCode == _keyL) {
    keyDwn[3] = false;
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.