我正在用pygame做一个蛇游戏(游戏中有两条蛇),我想检测蛇头何时与另一个蛇身碰撞,对两者都这样做,并且在两个蛇头碰撞的特殊情况下,我正在做蛇头与另一个蛇身之间的碰撞,如果其中一条蛇被冻结,另一条蛇在移动,那么效果很好,但是如果两条蛇都在移动,那么碰撞就不起作用了 下面是移动蛇的代码:
new_pos = None
if direction == 'DOWN':
new_pos = (snake[0][0], snake[0][1] + size)
if direction == 'UP':
new_pos = (snake[0][0], snake[0][1] - size)
if direction == 'LEFT':
new_pos = (snake[0][0] - size, snake[0][1])
if direction == 'RIGHT':
new_pos = (snake[0][0] + size, snake[0][1])
if new_pos:
snake = [new_pos] + snake
del snake[-1]
请记住,移动另一条蛇的代码是相同的,但蛇会变成snake2,new_pos变成new_pos2,等等
冲突代码:
if snake2[0] in snake[1:]:
gameOverBlue()
if snake2[0] in snake[1:]:
gameOverRed()
编辑:我想我应该把蛇的代码也放进去:
#snake
size = 15
s_pos = 60
snake = [(s_pos + size * 2, s_pos),(s_pos + size, s_pos),(s_pos, s_pos)]
s_skin = pygame.Surface((size, size))
s_skin.fill((82,128,208))
#snake2
size2 = 15
s2_pos = 195
snake2 = [(s2_pos + size2 * 2, s2_pos),(s2_pos + size2, s2_pos),(s2_pos, s2_pos)]
s2_skin = pygame.Surface((size2, size2))
s2_skin.fill((208,128,82))
您需要评估
snake
的头是否在列表snake2
中,包括snake2
的头:如果
snake2
的头在snake
中:如果要检测蛇头是否碰撞,必须分别比较
snake[0]
和snake2[0]
:相关问题 更多 >
编程相关推荐