博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从0开始用python写一个命令行小游戏(三)
阅读量:6272 次
发布时间:2019-06-22

本文共 1256 字,大约阅读时间需要 4 分钟。

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 oclass 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 jsonwith open('level.json') as fr:    self.steps = json.load(fr)

试一试!

In [1]: import game as gIn [2]: Game().stepsOut[2]:{'3': 'zombie', '6': 'zombie', '10': 'exit zombie'}

好了!我们已经获取了所有用户界面所需的数据,但现在的游戏还不能玩。今天就起步,以后,我们将使用今天采集的数据制作最终的游戏!

下集预告

至于下集讲什么,没得说,用户界面开发(第二步)!欢迎继续关注!

转载地址:http://uelpa.baihongyu.com/

你可能感兴趣的文章
android 打开各种文件(setDataAndType)转:
查看>>
补交:最最原始的第一次作业(当时没有选上课,所以不知道)
查看>>
Vue实例初始化的选项配置对象详解
查看>>
PLM产品技术的发展趋势 来源:e-works 作者:清软英泰 党伟升 罗先海 耿坤瑛
查看>>
vue part3.3 小案例ajax (axios) 及页面异步显示
查看>>
浅谈MVC3自定义分页
查看>>
.net中ashx文件有什么用?功能有那些,一般用在什么情况下?
查看>>
select、poll、epoll之间的区别总结[整理]【转】
查看>>
CSS基础知识(上)
查看>>
PHP中常见的面试题2(附答案)
查看>>
26.Azure备份服务器(下)
查看>>
mybatis学习
查看>>
LCD的接口类型详解
查看>>
Spring Boot Unregistering JMX-exposed beans on shutdown
查看>>
poi 导入导出的api说明(大全)
查看>>
Mono for Android 优势与劣势
查看>>
将图片转成base64字符串并在JSP页面显示的Java代码
查看>>
js 面试题
查看>>
sqoop数据迁移(基于Hadoop和关系数据库服务器之间传送数据)
查看>>
腾讯云下安装 nodejs + 实现 Nginx 反向代理
查看>>