python 游戏开发 -pgzero
1. pgzero
python 在各个领域都有着丰富的第三方库,pygame 是 python 在游戏领域的应用库,可以用来开发各种不同的游戏。但是对于初学者来说,还是存在一定的门槛。
而今天要和大家分享的 pgzero(pygame zero)是在 pygame 基础上做了进一步的封装,使得设计一款游戏十分的方便,特别适合少儿编程领域的教学, 与 scratch 相得益彰。
pgzero 的安装
2. 游戏设计的过程
我们可以简单梳理下开发一款简单游戏需要的过程:
游戏的故事设计
游戏的场景绘制(背景图片和声音)
游戏的角色
如何控制角色
如何判断成功与失败
游戏的关卡设计
3. pgzero 基础
pgzero 游戏开发的过程如下:
游戏屏幕区域 screenpgzero 中游戏界面窗口设置由全局变量和内置对象 screen 来完成:
窗口外观:
WIDTH
,HEIGHT
和TITLE
窗口清楚:
screen.clear()
窗口背景颜色:
screen.fill((red, green, blue))
在窗口绘制图像:
screen.blit(image, (left, top))
在窗口绘制几何图案:
screen.draw.line
screen.draw.circle
screen.draw.rect
游戏角色 Actorpgzero 中所有以图片显示的元素都是 Actor 类来定义。
Actor 的位置:
Actor 重要属性和方法:
外观: image, 如
alien.image = 'alien_hurt'
位置: piex 坐标值:x,y, 设置位置:pos,left/right/top/bottom
角度:angle
绘制 f 方法:draw()
距离方法:
Actor.distance_to(target)
角度方法:
Actor.angle_to(target)
其他属性同pygame.Rect
游戏渲染绘制 draw
游戏状态的更新 update
游戏外部事件的触发控制 on_xxx_xxxpgzero 提供了常用的鼠标和键盘事件
键盘事件:on_key_down, on_key_up
鼠标事件:on_mouse_down, on_mouse_up, on_mouse_move
键盘的按键信息是通过
keyboard
内置对象获取的,鼠标是mouse
来获取的,如:
详见
https://pygame-zero.readthedocs.io/en/stable/hooks.html#mouse.WHEEL_DOWN
其他重要元素
声音 sounds: 支持 wav 和 ogg, 资源对象目录默认为./sounds
音乐 music: 支持 mp3, 主要是时间较长的音频文件。资源对象目录默认为./music
动画效果 Animations,如移动角色到某个位置
详见:https://pygame-zero.readthedocs.io/en/stable/builtins.html#Animations
4. pgzero 游戏例子
了解了 pgzero 的基本使用情况,下面来举一个例子,将游戏编写制作的过程串起来。
我们来模拟手机上的一款游戏 FlappyBird。游戏简单操作说明
pgzero 游戏代码结构:
5. 总结
本文分享了基于 pygame 封装版的 pgzero 开发 python 游戏的过程,希望对您有帮助。总结如下:
pgzero 开发三剑客:draw() / update() / on_xxx_xxx()
pgzero 内置对象:screen 负责窗口设置,Actor 负责图像显示,sounds 负责短音频,music 负责长音频 bgm,动画效果有 animate
pgzero 资源目录:./images/xxx.png ./music/xxx.mp3 ./sounds/xxx/wav
6. 参考资料
https://pygame-zero.readthedocs.io/en/stable/
版权声明: 本文为 InfoQ 作者【AIWeker】的原创文章。
原文链接:【http://xie.infoq.cn/article/a396d8e0a1e63dd40278b83b4】。文章转载请联系作者。
评论