大致效果图:

python猫抓老鼠双人版小游戏_ide

1.导入所需模块

import turtle
import time
import random

2.创建游戏开场文字画面

#创建画图对象
writer = turtle.Turtle()
writer.color('brown')
writer.hideturtle() #隐藏画图线路
writer.penup()
writer.home()
writer.write("Tom & JERRY", align='center', font=("Comic sans MS", 50, "bold"))
writer.goto(0, -50)
writer.write("READY?3,2,1,GO", align='center', font=("Comic sans MS", 20, "bold"))
time.sleep(1)

writer.clear()

3.定义猫和老鼠移动上下左右的方法

#键盘控制向上的方法,设置90度方向向上
def up():
   jerry.setheading(90)
   jerry.forward(10)
   over() #计算猫和老鼠之间的距离,下面会有定义

#键盘控制向下的方法,设置270度方向向上
def down():
   jerry.setheading(270)
   jerry.forward(10)
   over()

#键盘控制向左的方法,设置180度方向向上
def left():
   jerry.setheading(180)
   jerry.forward(10)
   over()

#键盘控制向右的方法,设置0度方向向上
def right():
   jerry.setheading(0)
   jerry.forward(10)
   over()

def up2():
   tom.setheading(90)
   tom.forward(10)
   over()

#键盘控制向下的方法,设置270度方向向上
def down2():
   tom.setheading(270)
   tom.forward(10)
   over()

#键盘控制向左的方法,设置180度方向向上
def left2():
   tom.setheading(180)
   tom.forward(10)
   over()

#键盘控制向右的方法,设置0度方向向上
def right2():
   tom.setheading(0)
   tom.forward(10)
   over()

4.创建屏幕找把猫和老鼠显示上去并绑定事件

猫和老鼠其实就是小海龟,并且把海龟的形状改成了猫和老鼠

猫使用w、s、a、d按键,   老鼠使用上、下、左、右按键

playground = turtle.Screen()
playground.register_shape('cat.gif')
playground.register_shape('mouse.gif')
playground.onkey(up, 'Up')
playground.onkey(down, 'Down')
playground.onkey(left, 'Left')
playground.onkey(right, 'Right')
playground.onkey(up2, 'w')
playground.onkey(down2, 's')
playground.onkey(left2, 'a')
playground.onkey(right2, 'd')
# 监听
playground.listen()

5.随机显示猫的位置

tom = turtle.Turtle()
tom.shape('cat.gif')
tom.penup()
tom.goto(random.randint(-200, 200), random.randint(-200, 200))

6.随机显示老鼠的位置

jerry = turtle.Turtle()
jerry.shape('mouse.gif')
jerry.speed(0)
jerry.penup()
jerry.goto(random.randint(-200, 200), random.randint(-200, 200))

7.定义函数计算猫和老鼠的距离并判断

def over():
   # print(tom.distance(jerry)) #计算tom和jerry之间的距离
   if tom.distance(jerry) < 15: #当它们距离小于15时,则结束
      end = time.time()
      playground.clear()
      jerry.goto(0, 0)
      #写入game over文本
      jerry.write("GAME OVER", align='center', font=("Comic sans MS", 50, "bold"))
      jerry.goto(0, -50)
      jerry.write("YOU SURVIVED {:.1f} SECONDS".format(end - start), align='center', font=("Comic sans MS", 20, "bold"))
      tom.pu()
      tom.goto(-50, -70)
      tom.stamp()
      jerry.pu()
      jerry.goto(50, -70)
      jerry.stamp()

python猫抓老鼠双人版小游戏_Turtle_02