Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 蛇类游戏,加工中增加长度_Java_Processing - Fatal编程技术网

Java 蛇类游戏,加工中增加长度

Java 蛇类游戏,加工中增加长度,java,processing,Java,Processing,我正在尝试重新创建snake游戏,现在我正在为snake添加一个新的部分,它会与苹果发生碰撞 我试图告诉程序画一个新的矩形,但是x轴稍微移动,每次我的蛇吃苹果时,这个“移动”会慢慢增加。我的蛇从两个部分开始,当我把蛇移向绿色的苹果时,它只移动第二个部分而不是画一个新的部分,我知道我没有告诉我的绘制方法每次蛇吃苹果时都画一个新的矩形,因为我不知道怎么做 public void draw(PApplet p) { // clear area p.fill(255, 0, 0);

我正在尝试重新创建snake游戏,现在我正在为snake添加一个新的部分,它会与苹果发生碰撞

我试图告诉程序画一个新的矩形,但是x轴稍微移动,每次我的蛇吃苹果时,这个“移动”会慢慢增加。我的蛇从两个部分开始,当我把蛇移向绿色的苹果时,它只移动第二个部分而不是画一个新的部分,我知道我没有告诉我的绘制方法每次蛇吃苹果时都画一个新的矩形,因为我不知道怎么做

public void draw(PApplet p) {
    // clear area
    p.fill(255, 0, 0);

    // draw snake head
    p.rect(x, y, length, width);

    // draw snake body ?
    if (upIsDown == true ) {
        p.rect(x, y - section, length, width);
    } else if(downIsDown == true) {
        p.rect(x, y + section, length, width);
    } else if(RightIsDown == true) {
        p.rect(x - section, y, length, width);
    } else if(LeftIsDown == true) {
        RightIsDown = false;
        p.rect(x + section, y, length, width);
    }
}
在my
checkCollision
方法中,节变量增加10


蛇变长了,但我的程序只画蛇的头部和尾部

我在代码中添加了注释

您在draw中编码清除整个游戏区域,然后绘制2个矩形。如果您想看到3个rectange,则需要在该方法中调用
p.rect()
3次。如果你想看到10个矩形,你需要调用它10次(所以也许一个循环会更好)。否则,请重新考虑开头对
p.fill()
的调用


对于循环,您需要在类似LinkedList的结构中存储每个体段的坐标,以及每个段的坐标,并在draw方法中绘制所有段。

由于您似乎对编程不熟悉,您可以从阅读和理解此的其他实现开始,例如:,,可能重复的