猫和老鼠》,童年的回忆|Python 主题月
最编程
2024-05-04 08:15:30
...
本文正在参加「Python主题月」,详情查看 活动链接
hello大家好,今天我又发现了个有趣的小玩意。我是专写有趣小玩意的老诗。
相信很多人都玩过猫抓老鼠的游戏,老鼠随意跑动,而猫进行拦截,只要猫抓到了老鼠,那我们就能输了,游戏结束
老规矩,先上效果图
导入包
import turtle
import time
import random
首先先导入包。这个游戏用到了turtle画图包。之前很多篇文字都已经说过这包了,这里面句不重复描述。
动作监听
def up():
jerry.setheading(90)
jerry.forward(20)
def down():
jerry.setheading(270)
jerry.forward(20)
def left():
jerry.setheading(180)
jerry.forward(20)
def right():
jerry.setheading(0)
jerry.forward(20)
这里面是让老鼠上下左右移动,然我们可以控制角色。其实只是控制转向,然后再执行forward(20)先前就行了。
动作注册
playground=turtle.Screen()
playground.register_shape('tom.gif')
playground.register_shape('jerry.gif')
playground.onkey(up,'Up')
playground.onkey(down,'Down')
playground.onkey(left,'Left')
playground.onkey(right,'Right')
#监听
playground.listen()
上面的代码是注册猫和老鼠的图像,这个gif是因为他们是一直跑动的状态,我们直接用gif展示他们的动作。然后onkey是最动作的注册,最后执行到up,down,left,right上面去了。
设置画笔
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(3)
上面这些都是对画笔属性的基本设置
猫和老鼠的绘图
tom=turtle.Turtle()
tom.shape('tom.gif')
tom.penup()
tom.goto(random.randint(-200,200),random.randint(-200,200))
tom.pendown()
tom.pensize(3)
tom.color('blue')
jerry=turtle.Turtle()
jerry.shape('jerry.gif')
jerry.speed(0)
jerry.penup()
jerry.goto(random.randint(-200,200),random.randint(-200,200))
jerry.color('brown')
完整逻辑
while True:
tom.setheading(tom.towards(jerry))
tom.forward(5)
if tom.distance(jerry)<10:
end=time.time()
playground.clear()
jerry.goto(0,0)
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()
break
最后是逻辑的更新,猫是电脑控制,所有这里面是控制猫走向老鼠,并且当老鼠和猫的距离小于10,那么游戏就会结束。并且弹出结束窗口。
整体而言,游戏并不是太难,也很容易就可以学会。上面的思想还是说的比较清楚的。有需要拿完整源码的话,请移步到公众号:诗一样的代码。既然进来了,原创不易。小伙伴点个赞再走呗。