我正在用pygame在python中制作蛇游戏,但在获取程序来检测与自身的冲突方面遇到了麻烦...
我试图将其设置为可以检测Morrison.head是否可以检测到Morrison.body的位置,但这给我一个错误
p_hat
我希望程序在碰到自己的身体时会检测到碰撞,但只会返回错误
答案 0 :(得分:0)
如何使用pygame spritecollide
函数?
# In MorrisonSprite class
def hitMyself( self ):
hit_by = pygame.sprite.spritecollide( self, SPRITES, False )
# hit_by includes the head too (always), so just check the count
if ( len( hit_by ) > 1 ):
print("HIT") # debug feedback
return True
else:
return False
编辑: 将此功能整合到主循环中似乎可以跟踪匹配。
# Main loop
while not done:
...
# Did the snake hit it's tail
if ( Morrison.hitMyself() == True ):
done = True
答案 1 :(得分:0)
为什么不保持简单?假设
class Snake:
self.snake = [(200, 200), (210, 200), (220, 200), (230, 200), (240, 200)]
def self_collision(self):
"""
Return True if snake's head is in itself
"""
return self.snake[0] in self.snake[1:]