欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

猫和老鼠》,童年的回忆|Python 主题月

最编程 2024-05-04 08:15:30
...

本文正在参加「Python主题月」,详情查看 活动链接

hello大家好,今天我又发现了个有趣的小玩意。我是专写有趣小玩意的老诗。

相信很多人都玩过猫抓老鼠的游戏,老鼠随意跑动,而猫进行拦截,只要猫抓到了老鼠,那我们就能输了,游戏结束

老规矩,先上效果图

image.png

导入包

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,那么游戏就会结束。并且弹出结束窗口。

整体而言,游戏并不是太难,也很容易就可以学会。上面的思想还是说的比较清楚的。有需要拿完整源码的话,请移步到公众号:诗一样的代码。既然进来了,原创不易。小伙伴点个赞再走呗