所以,我正试着自学如何制作小游戏,我想制作一款自上而下的游戏.总的来说,我对编码仍然是个新手,所以我的代码并不是最好的.我试图创建一个移动系统,但当我按住两个键时,代码只使用最后一次按键.我判断它们是否通过使用print(Key);语句进行了注册,从而确认了这一点.
到目前为止,我try 使用通过keyPressed()和keyRelease()方法打开和关闭的布尔值.我也在Player类中try 了这一点,到目前为止,它只是一个RECT,它的x和y变量在被按下的键上进行了深入的更新.当前的移动代码来self 在处理过程中制作的一个乒乓球游戏的修改版本,在那里移动确实有效.附件下面是我的代码.有谁有什么建议吗?
boolean gameStart = false;
boolean up = false;
boolean down = false;
boolean left = false;
boolean right = false;
Player p;
void setup(){
size(1000,1000);
p = new Player();
}
void draw(){
if(!gameStart){
menu();
}
else{
game();
}
}
void menu(){
background(0);
textSize(90);
stroke(110);
strokeWeight(10);
fill(0);
rectMode(CENTER);
rect(500,600,300,150);
fill(255);
text("GAME",385,300);
text("PLAY",400,625);
if(mousePressed && ((mouseX > 350 && mouseX < 650) && (mouseY > 525 && mouseY < 675))){
gameStart = true;
noStroke();
}
}
void keyPressed(){
if(key == 'w'){
up = true;
}
else if(key == 's'){
down = true;
}
else if(key == 'd'){
right = true;
}
else if(key == 'a'){
left = true;
}
}
void keyReleased(){
if(key == 'w'){
up = false;
}
else if(key == 's'){
down = false;
}
else if(key == 'd'){
right = false;
}
else if(key == 'a'){
left = false;
}
}
void game(){
background(0);
p.update();
p.render();
}
class Player{
float x = 500;
float y = 500;
void player(float x, float y){
this.x = x;
this.y = y;
}
void update(){
if(up){
y-=7.5;
}
else if(down){
y+=7.5;
}
else if(left){
x-=7.5;
}
else if(right){
x+=7.5;
}
}
void render(){
fill(255,0,0);
rect(x,y,100,100);
}
}