暑期python学习感悟

暑假也是很快就过去了,这个暑假的事情也是比较多,额。所以我都忘了有布置作业这一说,但好在想起来了,虽然说时间比较紧,但我还是把程序完善到了差不多的层次上,虽然当时看见作业的时候我想的是这几个作业都做一份,但是事与愿违,只做了一个,虽然只有一个,但是是我比较感兴趣的一方面,用Python写小游戏,下面我讲一下我的思路及灵感。(剩下的作业会在回到学校里以后补上的)

设计思路

一天刷短视频,看见一个博主教制作小游戏,一般我看见这种类型的视频都会果断喜欢加收藏,后来这不是想起来有作业了吗,就回头找了出来,我看着一个猫和老鼠的还是比较有意思的,所以就果断选择了这个程序。

设计灵感

虽然找到了方向,但是比对着写肯定是不大好的,所以我就在想如何创新,平日里刷短视频也好,思考发呆也好都在想,一般想到什么就会写下来,写在一个文本文档里。后来程序虽然没有全部实现我的预计,但总体上来说还会不错的。

代码运行展示及错误修正

首先咱们写这个游戏需要先导入海龟游戏库

import turtle

 接着一步一步将这个程序拆分

1、首先是创建一个游戏的场所,新建一个屏幕

playground=turtle.Screen()

然后制作一个开头字幕

 

writer.color('blue')     #画笔颜色
writer.hideturtle()      #隐藏画笔
writer.penup()
writer.home()            #文字出现在中心
writer.write("重生之宇将军搁后边一直追我",align='center',font=("Comic Sans MS",40,"bold"))
#文字内容,字体,字号,加粗,位置

writer.goto(0,-50)
writer.write("游戏里你要扮演一只Dog并尽可能的躲避宇将军的飞踢",align='center',font=("Comic Sans MS",20,"bold"))
writer.goto(0,-90)
writer.write("游戏马上开始",align='center',font=("Comic Sans MS",18,"bold"))
writer.goto(0,-120)
writer.write("3,2,1,Go!",align='center',font=("Comic Sans MS",18,"bold"))

导入time库,冻结界面时间

import time

time.sleep(5)

2、创建宇将军和狗的相关信息

playground.register_shape('tom.gif')
playground.register_shape('jerry.gif')
#读取图片

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')
#宇将军更改图标,随机位置(要导入random库)

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')
#dog的

3、用键盘来控制

playground.listen()    #监听
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)
#定义位移和方向
playground.onkey(up,'Up')
playground.onkey(down,'Down')
playground.onkey(left,'Left')
playground.onkey(right,'Right')
#监听键盘按键并作出相应指令

4、宇将军进行追逐

 tom.setheading(tom.towards(jerry))    #宇将军始终朝向狗的方向
    tom.forward(5)            #宇将军速度

 

5、设置如何结束

 tom.distance(jerry)<10      #如果两者之间距离小于10游戏结束

6、游戏结束界面

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()
#整体就是展示宇将军和狗,让二者定在屏幕上,并显示结局

 

7、创新

pygame.mixer.init()
        pygame.mixer.music.load('fei.mp3')
        pygame.mixer.music.set_volume(0.5)
        pygame.mixer.music.play(1)
        while pygame.mixer.music.get_busy():
            pass

上面这段代码是为了加bgm的,游戏怎能没有bgm呢?是吧。

8、一些错误

首先是python只能读取gif格式的图片,所以需要转换格式,音乐方面我用的是MP3格式的,不知道其他的可不可以,另外图片像素最好不要超过64像素,要不然会太大。

其次是所有用到的东西都要放在一个文件夹里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值