pgzero库介绍(一)

pgzero是pygame旗下,能够帮助初学者快速提升游戏创作而使用的库。

pgzero官方文档,可以快速浏览和学习有关pgzero的相关知识

Built-in Objects — Pygame Zero 1.2.1 documentationicon-default.png?t=N7T8https://pygame-zero.readthedocs.io/en/stable/builtins.html#rect

一、环境安装

为了加快开发进度,我们选用Thonny来快速开发,这是新手python学习的主要工具之一。


Thonny, Python IDE for beginnersicon-default.png?t=N7T8https://thonny.org/运行Thonny后,找到工具或Tools中,打开系统shell。

pip install pgzero -i https://pypi.tuna.tsinghua.edu.cn/simple/

复制上述代码将pgzero库进行安装。

二、导入库函数

import pgzrun#库函数


pgzrun.go()#启动代码

运行显示出现黑框表示pgzero安装成功。

三、框架代码

import pgzrun#库函数导入



def draw():#绘画内容
    pass


def update():#刷新内容
    pass


pgzrun.go()#启动代码

在pgzero中,def draw()函数在里面用来放置绘图内容、def update()函数用于刷新。

四、角色功能定义

角色定义

定义一个角色可以使用

变量名=Actor('图片名')

变量名.pos=x,y

变量名=Actor('图片名',(x坐标,y坐标))可以快速定义角色位置

角色绘制

1.如果想要角色的绘制,首先你需要在当前文件夹下面建立一个名为images的文件夹

名字必须为images如果更改则会出现报错,应为在上层的代码中,他是通过访问images中的图片

import pgzrun

player=Actor('tank2')

def draw():
    player.draw()
    pass


def update():
    pass

pgzrun.go()

定义角色名,添加角色图片,图片的名称为tank2

将定义好的角色在draw中进行绘制,如果不在draw函数中使用player.draw()他也是无法进行在窗口中绘制出来的。窗体默认为800x600,

pos位置改变

通过角色的私有属性pos,即可定义角色的初始位置

在pgzero中,窗体的左上角点为(0,0)

player.pos=100,100

在后续课程中将讲述角色的运动,运动过程也和角色的位置息息相关,还有x,y等属性。

五、按键功能

def on_key_dow(key)#按键按下功能,携带返回值key

def on_key_down(key):
    print(key)

打印key可以看到你的按键返回值。每次按键按下后执行一次。

keyboard.按键名

该函数一般放置在update更新函数中,用于控制人物的移动。

def player_move():
    if keyboard.w:
        player.y-=speed
    if keyboard.a:
        player.x-=speed
    if keyboard.s:
        player.y+=speed
    if keyboard.d:
        player.x+=speed

def update():
    player_move()

该函数可以放置在update函数中进行持续的不间断检测,所以当按键按下后他会持续进行判断输出。

六、背景填充

screen.fill('颜色')

screen.fill()放置在def draw函数中,用于背景颜色的绘制。

没有使用颜色填充时,会留下人物移动的路径

使用颜色填充后

颜色填充可以消除角色在移动过程中的路径,应为draw函数是一直在触发刷新的,所以背景将持续不断地进行刷新填充。

screen.blit('图片为',(x,y位置))

一般写法screen.blit('图片名',(0,0)),即可填满一个窗口。

修改窗口大小

WIDTH=1300

HEIGHT=780

源码如下:

import pgzrun

WIDHT=1300
HEIGHT=780
player=Actor('tank2')
player.pos=100,600
speed=5
def draw():
    #screen.fill('black')
    screen.blit('b2',(0,0))
    player.draw()
    pass
def update():
    player_move()
    pass


def player_move():
    if keyboard.w:
        player.y-=speed
    if keyboard.a:
        player.x-=speed
    if keyboard.s:
        player.y+=speed
    if keyboard.d:
        player.x+=speed

    
pgzrun.go()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值