pgzero所有知识点详解 | 您所在的位置:网站首页 › pygame库的作用 › pgzero所有知识点详解 |
目录 什么是pgzero? pgzero的安装 4,正式开始! 1,调整背景色 2,导入角色 3,鼠标事件 5,按键事件 6,刷新功能 1,角色属性 2,功能介绍 7,全局变量and局部变量 1,全局变量与局部变量的区别 2,全局变量如何在功能内使用 8,角色功能及窗口功能 1,角色功能 2,窗口功能 9,结尾 什么是pgzero? python在各个领域都有着丰富的第三方库,pygame是python在游戏领域的应用库,可以用来开发各种不同的游戏。但是对于初学者来说,还是存在一定的门槛。 而今天要和大家分享的pgzero(pygame zero)是在pygame基础上做了进一步的封装,使得设计一款游戏十分的方便,特别适合少儿编程领域的教学, 与scratch相得益彰。 pgzero的安装 pip install pygame pip install pgzero这个也就是我们所说的:终端下载pgzero库 安装完后,新建一个文本文档。打开,输入下列代码: import pgzrun pgzrun go()将下面名字改为.py,编码改为UTF-8 再点击保存 找到这个文件,点击: 你就会发现: 4,正式开始! 1,调整背景色实例代码: import pgzrun def draw(): screen.fill((225,225,225)) pgzrun.go() 2,导入角色实例代码: import pgzrun zy = Actor('zy.png') def draw(): zy.draw() pgzrun.go() #也可以用draw()功能画出背景图注意:必须要在文件同一个目录下新建一个images文件夹,角色图片(必须都是png格式)都放里面! 3,鼠标事件1,基础代码: import pgzrun def on_mouse_down(): #代码 pgzrun.go()2,获取鼠标位置: import pgzrun def on_mouse_down(pos): print(pos) pgzrun.go()3,鼠标按下左键 or 右键: import pgzrun def on_mouse_down(button): print(button) pgzrun.go()而输出的结果是: mouse.LEFT#左键 #或者是: mouse.RIGHT#右键 5,按键事件1,功能 按键按下功能是on_key_down(),按键松开功能是on_key_up()(也可以写在update()(刷新游戏界面功能)里面) 2,数字按键 数字按键在pgzero的表达方式是:keyboard.K_1~8 3,字母按键 字母按键的表示方法是:keyboard.K_A~Z 4,功能按键 功能按键的表示方法是:keyboard.K_(功能键(大写)) 5,按下按键,发生事件 示例代码: import pgzrun def on_key_down(): if keyboard.K_1: #代码 pgzrun.go() 6,刷新功能 1,角色属性说刷新功能之前,先给你们讲一下角色的属性。 角色的属性有这几类:方位类,图片类等 方位类的属性有:x(x坐标),y(y坐标),bottom(底部线),top(顶部线),left(左边线),right(右边线) 图片类的属性有:image(图片) 2,功能介绍刷新功能就是update()功能。他就像while循环一样,被用于竞速类游戏的障碍移动等方面。程序调用一次update()功能就会再调用一次draw()功能哦! 代码示范: import pgzrun zy = Actor('zy.png') def draw(): zy.draw() def update(): #让角色zy上升 zy.x += 3 pgzrun.go() 7,全局变量and局部变量实例代码: p1 = '手机' def home(): p2 = '座机' home() 1,全局变量与局部变量的区别假如说一个程序里有一个def功能,那么全局变量就是在def功能外的一个变量。也就是示例代码里的p1变量。局部变量是在功能内的变量,只能在功能内使用。也就是示例代码里的p2变量。 2,全局变量如何在功能内使用如果将示例代码更改一下: p = '手机' def home(): p = ‘座机’ home() print(p) #那么输出结果是: #手机 #如何不在home功能内使用print语句也能输出 座机 呢?现在都看到要求了吧。如果功能内要使用功能外的变量,那么就要在def语句下面的一行输入: global (全局变量) 这样,全局变量p的值就被更改为 座机 了,输出的东西也是 座机 。 注意:这个知识点一定要记住,因为这个知识将会很常见。 8,角色功能及窗口功能 1,角色功能角色功能是对于角色创建的功能,比如角色碰到另一个角色以及角色碰到了游戏窗口里的一个点。 1,colliderect()功能 colliderect()功能是判断角色是否与另一个角色相撞。 示例代码: import pgzrun player1 = Actor('1.png',[400,300]) player2 = Actor('2.png',[400,250]) def draw(): player1.draw() player2.draw() if player1.colliderect(player2):#角色1.colliderect(角色2)(也可以这样:角色1.colliderect(角色2)) exit()#退出游戏2,collidepoint()功能 collidepoint()功能是判断角色是否一个点碰撞。 示例代码: import pgzrun player1 = Actor('1.png) 2,窗口功能 9,结尾分享一个用pygame做的代码吧 #友情提示:请不要更改任何代码,谢谢! import pgzrun WIDTH = 1136 HEIGHT = 640 TITLE = 'P1 VS P2' global bossX bossX = 10 global zyX zyX = 10 bg = Actor('bg.png') zy = Actor('zy.png', [200, 420]) boss = Actor('boss.png', [900, 420]) def draw(): bg.draw() zy.draw() boss.draw() # 写角色名字 screen.draw.text('P1:' + str(zyX), [180, 30],fontsize=30,color='red') screen.draw.text('P2:' + str(bossX), [850, 30],fontsize=30,color='blue') #判断胜负 if bossX == 0: print('P1玩家获胜') exit() elif zyX == 0: print('P2玩家获胜') exit() def update(): # 判断壮猿移动 if keyboard.K_A: zy.x = 200 if keyboard.K_D: zy.right = 558 # 判断boss移动 if keyboard.K_LEFT: boss.left = 548 if keyboard.K_RIGHT: boss.x = 900 # 判断壮猿攻击、防御状态时,切换图片 if keyboard.K_W: zy.image = 'zy1.png' elif keyboard.K_S: zy.image = 'zy2.png' else: zy.image = 'zy.png' # 判断boss攻击、防御状态时,切换图片 if keyboard.K_UP: boss.image = 'boss1.png' elif keyboard.K_DOWN: boss.image = 'boss2.png' else: boss.image = 'boss.png' # 判断壮猿是否和boss发生碰撞 if zy.colliderect(boss): if zy.image == 'zy1.png' and boss.image == 'boss.png': boss.x += 250 global bossX bossX -= 1 if boss.image == 'boss1.png' and zy.image == 'zy.png': zy.x -= 250 global zyX zyX -= 1 if zy.image == 'zy1.png' and boss.image == 'boss1.png': zy.x -= 250 boss.x += 250 pgzrun.go() #行数自己数! |
CopyRight 2018-2019 实验室设备网 版权所有 |