前面两篇的pg zero编写的游戏,没有用到面向对象的方式。本篇以滑雪游戏为例,简单举例定义对象的方式。
首先,定义滑雪者类型:
class Player(Actor):
def __init__(self):
super().__init__("player", (randint(50, WIDTH), 50))
说明:以Actor为父类型,定义一个新的类型Player,初始函数__init__()定义了该对象使用的图片资源为player.png,初始位置为
(randint(50, WIDTH), 50)
然后代码中定义新对象player=Player(),之后就可以操作player对象了。
其次,定义障碍物类型:
class Obstacle(Actor):
def __init__(self,image):
super().__init__(image,(randint(0, WIDTH), randint(0, HEIGHT)))
说明:以Actor为父类型,定义一个新的类型Obstacle
,初始函数__init__()定义了该对象使用的图片资源为参数image,初始位置为
(randint(0, WIDTH), randint(0, HEIGHT))
然后代码中定义新对象tree=Obstacle("tree"),之后就可以操作player对象了。
接下来,说明一下这个游戏的玩法和处理逻辑:
初始化界面,随机生成一定数量的树木,滑雪者从界面最上端开始自动向下移动,期间