首页 > 解决方案 > 贪吃蛇游戏,处理长度增加

问题描述

我正在尝试重新创建蛇游戏,现在我被困在向蛇添加一个新部分,它与苹果碰撞的所有内容

我试图告诉程序绘制一个新的矩形,但 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);
    }
}

在我的checkCollision方法中,section 变量增加了 10

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

标签: javaprocessing

解决方案


我在您的代码中添加了注释。

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

对于循环,您需要将每个身体段的坐标存储在 LinkedList 之类的结构中,其中包含每个段的坐标,并在 draw 方法中绘制所有段。


推荐阅读