这要看你的代码,一般来说,你会用一个二维数组来定义蛇的吧,你的初始化的时候是不是就有身子
有身子其实是合理的,因为完全没有身子玩家不容易找到蛇在哪里,不太好操作。
不发代码,怎么知道啥原因
发下代码
不知道你这个问题是否已经解决, 如果还没有解决的话:package com;
/**
* @Classname Father
* @Description TODO
* @Date 2020/8/12 5:36
* @Created by SunZhiQiang
*/
public class Father {
// 私有静态变量
private static int a = 1;
// 私有成员变量
private int b = 2;
// 私有成员常量
private final int C = 3;
// 保护成员变量
protected int d =4;
// 公共静态变量
public static int e = 5;
public static int getA() {
return a;
}
public static void setA(int a) {
Father.a = a;
}
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
public int getC() {
return C;
}
}
在贪吃蛇游戏中,每当重新开始游戏时,蛇的旁边会多出一个初始化长度的身体部分的原因是在重新开始游戏时,没有对蛇的身体进行重置。
解决方法是在重新开始游戏时将蛇的身体也进行重置:
以下是示例代码来实现上述解决方案:
// 在 SnakeGame 类中添加一个 reset 方法来重置蛇的身体
private void reset() {
snake.clear(); // 清空蛇的身体
// 添加初始长度的身体部分
int snakeX = startX;
int snakeY = startY;
for (int i = 0; i < initialLength; i++) {
snake.add(new SnakeBody(snakeX, snakeY));
snakeX++;
}
// 重新设置蛇的方向为初始方向
direction = Direction.RIGHT;
}
// 在 GamePanel 类中调用 SnakeGame 的 reset 方法,并在重新开始游戏的逻辑中添加以下代码
private void restartGame() {
// ...
// 重置蛇的身体
game.reset();
// ...
}
这样,当重新开始游戏时,蛇的身体将会被重置为初始长度,解决了多出一个初始长度的身体部分的问题。