Hey, everyone! 文章迟到了一天,但我今天心情很好,因为有两个好消息,你们想先听哪个?哎,算了,反正都是好消息,一起听吧。
- 本游戏的v1.1 beta 1和beta 2先后发布了!想要帮我测试的话,之前那个GitHub链接里面就是。
- 随着游戏的不断更新,此系列SegmentFault文章有可能不断延续!
还有,如果你没看过我的前作的话,下面是链接:
好,怀着良好的心(zi wo)情(gan jue),进入正题!
BaseZombie
的子类
僵尸的行为在基础类里面定义得很充分,两行代码搞定一个基础类:
class Zombie(BaseZombie):
indicating_char = 'z'
def __init__(pos, die_to_exit=False):
super().__init__(pos, 1, 1, die_to_exit)
好了!是不是很简单呢?好,开始编写用户界面吧!
用户界面:第一步
编写用户界面是一项永无止境的工作,我到现在的大部分工作还是这个。今天就开始!由于整个游戏会有自己的一些属性和行为,所以我决定把它编写在类里。原文件改名为game_obj.py
,新文件叫game.py
。
import game_obj as o
class Game:
def __init__(self):
# 初始化游戏
o.sunlight = 50
o.board = [0] * 10
# 定义自己的属性
self.sunlight = o.sunlight
self.board = o.board
先定义这些。再想想植物大战僵尸游戏还有什么属性。对了,游戏中自动出现僵尸,这个要写在配置文件里面,我们的Game
类要读取它!嗯,先把配置文件编出来吧。我计划使用JSON
格式,以第几步出现作为键,以出现的僵尸类型(以后可能会出现不同类型的僵尸)和是否在它被消灭后结束游戏作为值。文件名:level.json
。
{
"3": "zombie",
"6": "zombie",
"10": "exit zombie"
}
Game
类的__init__
方法追加以下代码:
# 读取配置文件
import json
with open('level.json') as fr:
self.steps = json.load(fr)
试一试!
In [1]: import game as g
In [2]: Game().steps
Out[2]:
{'3': 'zombie', '6': 'zombie', '10': 'exit zombie'}
好了!我们已经获取了所有用户界面所需的数据,但现在的游戏还不能玩。今天就起步,以后,我们将使用今天采集的数据制作最终的游戏!
下集预告
至于下集讲什么,没得说,用户界面开发(第二步)!欢迎继续关注!