我有一個在Java中設置的蛇遊戲,我希望能夠切換穿過兩側的能力並彈出相反的一面,以及當你死時的經典版本你打了邊界。問題是我的蛇在邊界之後繼續前進,我該如何解決這個問題?如何在蛇遊戲中設置邊框
這是我的代碼,當右箭頭鍵被按下的作用的部件之一:
if(right) {
for(int i = lengthofsnake - 1; i >= 0; i--) {
snakeylength[i+1] = snakeylength[i];
}
for(int i = lengthofsnake; i >= 0; i--) {
if(i == 0) {
snakexlength[i] = snakexlength[i] + 25;
}
else {
snakexlength[i] = snakexlength[i-1];
}
if(!borderGameplay) {
if(snakexlength[i] > 850) {
snakexlength[i] = 25;
}
}
else {
if(snakexlength[i] > 850) {
borderDead = true;
}
}
}
repaint();
}
borderGameplay是,你可以切換到具有開啓和關閉,並borderDead在此使用邊界變量IF聲明。
if(borderDead) {
if(score > highScore) {
highScore = score;
}
playing = false;
dead();
deadGraphic(g);
}
死()和deadGraphic(G):
public void deadGraphic(Graphics g) {
g.setColor(Color.WHITE);
g.setFont(new Font("arial", Font.BOLD, 50));
g.drawString("Game Over", 300, 300);
g.setFont(new Font("arial", Font.BOLD, 20));
g.drawString("Press \"Space\" To Restart And \"Enter\" To Toggle Borders", 160, 340);
if(borderGameplay) {
g.drawString("Borders ON", 370, 380);
}
else {
g.drawString("Borders OFF", 365, 380);
}
}
public void dead() {
right = false;
left = false;
up = false;
down = false;
dead = true;
score = 0;
moves = 0;
}
最後我的JFrame:
JFrame obj = new JFrame("Snake");
gameplay Gameplay = new gameplay();
obj.setBounds(10, 10, 905, 700);
obj.setBackground(Color.DARK_GRAY);
obj.setResizable(false);
obj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
obj.add(Gameplay);
obj.setVisible(true);
如果你需要看我的代碼的其他部分,請告訴我,因爲這個問題已經很長了,我的總代碼是550行。
這個問題可能會得到來自[遊戲開發堆棧交易所(https://gamedev.stackexchange.com/)通道更好的反應。 – Bobulous
好的,謝謝你會看到 –