python皮卡丘编程代码_儿童Python代码编程库Pygame Zero介绍

1e47cff41a77929a6265f1589bd8b755.png

现如今,随着人工智能的兴起,Python语言随之大热起来,而由于浙江和山东高考把Python语言纳入以后,Python自然而然就有了在儿童阶段进行教学的一些需求。

大部分Python儿童编程的入门会选择turtle或者pygame库来进行,但是这两个库其实都不太适合儿童编程的特点。

turtle本质上算是画图工具,只不过把这个画图过程用Python指令来进行,不太适合做一些高交互的游戏,而游戏化教学本来就是儿童编程必须具备的特性,不然很多孩子可能一上来就放弃了。而且turtle本身只是能画图,缺少声音、精灵、事件处理等,必须结合其他库才行,这个局限性就差多了。

而pygame则难度过高一些,pygame可以开发一些正式的大型游戏了,他里面的编程接口比较复杂,有些还比较底层,对于孩子来讲,有些概念不太适合过早接触,或者说暂时理解上有难度。让孩子一上来就用pygame,势必事倍功半。

pygame zero则不然,他一开始就是为了教育出发而进行设计,它是由pygame构建的,并针对教育目的进行了封装和简化,孩子们学习的时候就不需要去做一些跟学习编程、快速搭建游戏无关的代码工作,也不需要去了解复杂的api及事件处理。

现在让我们来了解一下:


游戏的程序结构

一个游戏的程序结构一般是

1、判断及处理输入的数据(来自键盘、鼠标、传感器、网络等等)

2、进行逻辑的处理,更新游戏角色的数据

3、进行游戏场景、角色等的绘制、声音的播放

4、不断循环第1步到第3步,除非程序退出

如果用pygame来做游戏,就要做很多额外的工作,在上面的基础之上还需要包括初始化pygame、主循环逻辑、处理事件等等,而pygame zero就简单多了,都被它实现的pgzrun程序封装掉了。

Pygame Zero的主要结构

所有的Pygame Zero程序都通过pgzrun来运行,比如我们写的game.py程序,需要这么启动运行:

pgzrun game.py

也可以通过代码进行直接运行,这个时候就是个普通python程序了,程序需要引入pzrun模块,并书写代码:

pgzrun.go()

Pygame Zero的主要结构跟游戏的通用结构类似:

  • draw()函数,在这里实现的就是游戏结构中的第三步
  • update()函数,在这里实现的就是游戏结构中的第二步
  • 输入判断则封装成事件函数,不需要自己关联事件

on_mouse_开头的鼠标事件函数

on_key_开头的键盘事件函数

一个简单的Pygame Zero程序

这个程序在一个500x500的上部,出现一个小人(pygame zero内置的角色alien)不断的从左边跑到右边,如果到了最右边,则会从最左边出现,循环反复。中途如果点了鼠标,则会打印输出"点击了鼠标了!",如果有键盘输入,则显示"敲了键盘了!"。整个程序非常简单,我们可以对着pygame zero的api进行扩展,加入更多角色,游戏音效等。

import pgzrun alien = Actor('alien')alien.topright = 0, 10 WIDTH = 500HEIGHT = 500 def draw():    screen.clear()    alien.draw() def update():    alien.left += 2    if alien.left > WIDTH:        alien.right = 0def on_mouse_down():    print("点击了鼠标了!") def on_key_down():    print("敲了键盘了!")       pgzrun.go()
54c632b4ff13cb81303f23bef4a31bf8.gif

专注儿童编程,敬请关注,谢谢!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值