【问题标题】:Snake game, increasing length in processing贪吃蛇游戏,处理长度增加
【发布时间】:2019-05-26 21:04:17
【问题描述】:

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

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

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

【问题讨论】:

标签: java processing


【解决方案1】:

我在您的代码中添加了 cmets。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多