我看过一些用javascript构建snake游戏的examples,他们似乎用这个算法移动snake:
把一块放在下一个滴答声的地方
把你尾巴上的最后一块去掉。
这就产生了蛇四处游动的效果。但这只在蛇是一种纯色的情况下有效。我想做一个蛇的游戏,蛇的每一部分在视觉上都是不同的,就像这样:
假设黑色是头,蓝色是尾上面的算法对这条蛇不起作用,因为去掉尾巴会改变“部分”的顺序/颜色。你的尾巴将不再是蓝色的,它将变成青色。
我能用什么算法来移动这条蛇,使它的头呈黑色,尾巴呈蓝色,并且其间的所有颜色也保持相同的顺序?

最佳答案

您仍然可以使用前面的算法,但将颜色分别存储到像素。
假设你有一个列表pixel[0..n]
包含x,y坐标。
您可以创建另一个列表color[0..n]
假设原始算法添加第一个像素,然后删除最后一个像素。
显示功能可能如下所示:

for i in 0..n:
    draw(pixel[i], "red")

现在你只要去:
for i in 0..n:
    draw(pixel[i], color[i])

假设您有一个draw函数,它接受一个pixel和一个color

关于javascript - 在蛇游戏中,如何移动具有不同碎片的蛇?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16890448/

10-14 21:05