用turtle库做游戏 笔记


之前一直在学习arcade、pygame zero和pygame,那天无意中看到麦叔视频里用turtle库来做游戏,发现作为孩子的入门课程比前几个都更友好,所以果断把游戏入门项目改为turtle库来做。感谢麦叔!


turtle加载图片的原理

其实turtle里的关键就是画笔,将画笔形状替换为图片我们就可以对图片进行操作了。在使用图片之前,首先要对图片进行‘注册’,用turtle.addsharp(file)turtle.register_shape(file),然后创建画笔之后用pen.sharp(file)即可

turtle.addshape('images/player1.gif')
player = turtle.Pen()
player.shape('images/player2l.gif')
player.speed(0)
player.up()
player.ht()
player.goto(0, -200)
player.st()

turtle.Screen()

turtle.Screen() 相当于新建一个窗口,所有的画笔都是画在这个窗口上,可以设置大小,还可以添加背景图片

game = turtle.Screen()
game.setup(800, 600)
game.bgpic('images/bg.png')

while True中的‘金句’

和Pygame一样,在while True循环中要加上update语句,不然的话无限循环很可能会让程序无响应。

while True:
    pass
    game.update()

控制刷新率

game = turtle.Screen()
game.tracer(0)

game.tracer() 参数从0~9,最慢的是1,数字越大速度越快,但最快的是0,如果输入10及以上就等于0。和pen.speed()一个样


更新:这里应该是理解错误。tracer(0)是关闭刷新,和update()配合起来使用,等于是让update()来负责刷新工作


监听键盘鼠标

turtle.listen

键盘事件

def Func():
	pass

turtle.onkey(Func, 'Left')

按下键盘是onkey,释放键盘是onkeyrelease,但是我发现在win下这两个效果都是释放以后才有效,家里的mac电脑无此问题。不知道是我的系统问题还是turtle库的bug。
另外注意,onkey()里的第一个参数是调用函数,不要加括号


加载音乐和音效

因为turtle库没有提供这个功能,所以我还是调用了pygame库来做声音这一块处理。

import pygame

# 添加音乐
pygame.mixer.init()

pygame.mixer.music.load('dingdang.wav')
pygame.mixer.music.play(-1)

bombsound = pygame.mixer.Sound('bomb.wav')
bombsound.play()

音乐和音效略有不同。
另外,加载之前别忘了先初始化,pygame.mixer.init()


碰撞检测

turtle中没有碰撞检测,所以我们只能用两者的距离来粗略的判断,例如
player.distance(gift)

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值