pygame zero问题汇总

最近在玩pygame zero,这个库对于学生来说容易上手,不用涉及到类就可以做出游戏。但是用的人太少,好像已经停止更新了。不管怎么说,用pgz来做学生的游戏开发入门课程是非常合适的。
这里把遇到的一些问题或者需要记录下来的知识点保存起来,方便以后查询。

pgz中的图像缩放问题

pgz中的图像导入非常简单,比如在images文件夹下有一个alien.png文件,只要用img = Actor('alien')就可以加载了,是不是非常的简单粗暴?连相对路径和文件扩展名都不用写(前提是你的目录里有images这个文件夹),看具体代码:

import pgzrun

WIDTH = 400
HEIGHT = 400

img1 = Actor('alien')

def draw():
    img1.draw() # actor只要直接draw一下就可以了

pgzrun.go()

查看一下img1的数据类型,<class 'pgzero.actor.Actor'>,一个pgz中的“演员”。
那么问题来了,这样的一个图片,pgz并没有提供直接改变大小的方法!
没办法,只能求助于pygame了。将图片作为一个pygame surface,然后用transform里的scale就可以改变尺寸了。
具体代码如下:

import pgzrun
from pygame.transform import * # 要先导入pygame.transform

WIDTH = 400
HEIGHT = 400

#img1 = Actor('alien')
#print(type(img1))

img2 = images.alien # 创建一个surface
#print(type(img2))
img = scale(img2, (20, 30))

def draw():
    screen.blit(img, (100, 100)) # 注意,surface需要用blit来绘制在屏幕上,和actor不同

pgzrun.go()

注意看pgz中创建surface的语句img2 = images.alien,还是这么无脑!


actor切换造型

很简单,actor.image = ‘新图片文件’
具体例子:

import pgzrun

WIDTH = 100
HEIGHT = 100
alien = Actor('alien')
alien.image = 'alien_hurt'

def draw():
    screen.clear()
    alien.draw()

pgzrun.go()
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值