我正在尝试使用Processing语言构建乒乓球游戏。对于这个双人游戏,我在桌子的每一端都有两个控制器。我通过将玩家绑定到键来编码玩家的动作(向上和向下): - w和s为玩家1 - o和l代表玩家2 虽然当我一次按下它们时这是有效的,但我无法弄清楚如何使它们同时移动,就像同时按下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;
}
}
}
答案 0 :(得分:1)
您要做的是为您关注的每个键创建一个boolean
值。然后在keyPressed()
函数中,将相应的变量设置为true
,并在keyReleased()
函数中将相应的变量设置为false
。然后在draw()
函数中,检查变量以确定按下哪些键。
无耻的自我推销:我写了一个关于获取用户输入的教程here。查看处理多个密钥部分。