OK、卓球ゲームを書き終えたばかりですが、プレイヤーが対戦する AI が必要です。NPC パデルの位置がボールの Y 座標を超えると、正しいエリアに移動してボールをブロックしようとするようにすることで、これを実行しようとしました。私のパデルクラスのコードは次のとおりです。
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class Padel implements KeyListener{
private Ball ball = new Ball();
private boolean LeftPlayerUp=false;
private boolean LeftPlayerDown=false;
private boolean RightPlayerUp=false;
private boolean RightPlayerDown=false;
public int RightLocation=200;
public int LeftLocation=200;
public void keyPressed(KeyEvent e){
int KeyPressed = e.getKeyCode();
if (KeyPressed== KeyEvent.VK_W){
LeftPlayerUp=true;
}
else if (KeyPressed==KeyEvent.VK_S){
LeftPlayerDown=true;
}
}
public void keyReleased(KeyEvent e){
int KeyReleased = e.getKeyCode();
if (KeyReleased== KeyEvent.VK_W){
LeftPlayerUp=false;
}
else if (KeyReleased==KeyEvent.VK_S){
LeftPlayerDown=false;
}
}
public void ShouldLeftMove(){
if(LeftPlayerUp==true){
if(LeftLocation==50){}
else{
LeftLocation-=2;
}
}
else if(LeftPlayerDown==true){
if(LeftLocation==Main.Height-190){}
else{
LeftLocation+=2;
}
}
}
public void ShouldRightMove(){
if(ball.BallLocationY>=RightLocation){
RightPlayerUp=false;
RightPlayerDown=true;
}else{
RightPlayerUp=true;
RightPlayerDown=false;
}
if(RightPlayerUp==true){
if(RightLocation==50){}
else{
RightLocation-=2;
}
}
else if(RightPlayerDown==true){
if(RightLocation==Main.Height-190){}
else{
RightLocation+=2;
}
}
}
//This just needs to be here :P
public void keyTyped(KeyEvent e) {}
}
このコードを使用すると、パデルは画面の右側の約 2/3 まで移動し、移動を停止してスパズアウトします。私は何を間違っていますか???