提问者:小点点

处理中乒乓球比赛中两个物体运动的控制


我试图用处理语言构建一个乒乓球游戏。对于这个双人游戏,我在“桌子”的每一端都有两个控制器。我通过将玩家的动作(上下)绑定到键上来编码它们:-1号玩家的w和s-2号玩家的o和l虽然这在我一次按一个时有效,但我不知道如何让它们同时移动,就像同时按w和o一样。这是我的代码:

int x=535;
int y=350;
int dx=5;
int dy=5;
int pX=10;
int pY=520; 
int pX1=1870;
int pY1=520;
int pS=5;

void setup() {
  size(1920,1080);
} 

void draw() {
  background(0);
  rect(960,0,5,1080);
  rect(pX,pY,40,150);
  rect(pX1,pY1,40,150);
  ellipse(x,y,50,50);
  x=x+dx;
  y=y+dy;
  bounce();
  move();
  move1();
}

void bounce(){
   if(x>=1920 || x<=0){
     dx=-dx;
   }
   if(y>1080 || y<0){
     dy=-dy;
   }
}

void move(){
  if(keyPressed){
    if(key == 's'){
      pY+=pS;
    }else if (key == 'w'){
      pY-=pS;
    }
  }
}
void move1() {
  if(keyPressed){
    if(key == 'l'){
      pY1+=pS;
    }else if (key == 'o'){
      pY1-=pS;
    }
  }
}

共1个答案

匿名用户

你要做的是为你关心的每个键创建一个布尔值。然后在keyP的()函数中,你将相应的变量设置为true,在keyReleated()函数中,你将相应的变量设置为false。然后在你的dra()函数中,你检查变量以确定按下了哪些键。

无耻的自运营:我在这里写了一个关于获取用户输入的教程。查看处理多键部分。