贪吃蛇6 #
- 碰撞检测
- 食物“吞食”设置
- 窗口更新
碰撞检测 #
本小节主要介绍了贪吃蛇类与食物类的碰撞检测方法
class SnakeGame():
@staticmethod
def isCollision(x1, y1, x2, y2, bsize):
if x1 >= x2 and x1 <= x2 + bsize:
if y1 >= y2 and y1 <= y2 + bsize:
return True
return False
食物“吞食”设置 #
本小节主要介绍贪吃蛇类与食物类碰撞后,下一个食物随机出现,贪吃蛇长度+1的方法。在class SnakeGame()类中添加eat()函数
def eat(self):
if self.isCollision(self.food.x, self.food.y, self.snake.x[0], self.snake.y[0], 40):
self.food.x = random.randint(2, 9)*STEP #食物随机出现
self.food.y = random.randint(2, 9)*STEP
self.snake.length += 1 # 蛇的长度加1
窗口更新 #
本小节主要介绍了碰撞、吞食的窗口更新。在class SnakeGame()类中增加“eat”更新,并通过run()函数中调用self.loop()进行窗口更新
#def loop(self):
#self.snake.update()
self.eat()#增加eat更新
小结 #
本节主要介绍了贪吃蛇游戏中贪吃蛇与食物的碰撞检测与“吞食”及相应窗口更新