Click here for English Version
2020/01/07前排提示:pygame 1.9.6跟Python3.8有兼容问题,2.0.0.dev6据说是可以的,但是我还没测试。
还有,这个玩具级别的项目居然被各大Python营销号看上了,也是受宠若惊啊~
能被他们拿去做视频,应该也是从侧面说明这个项目还凑合吧,看来又有动力继续填坑了~
使用Python的Pygame模块制作的魔塔样板,理论上支持全平台游戏!
游戏界面
五毛特效的怪物手册
五毛特效的道具背包
五毛特效的存读档界面
电脑需要安装:
运行test.py即可进行游戏~
Demo的游戏内容取自《中秋2019:桂魄》的咸鱼难度,应该挺容易的。目前游戏内容基本完整,实现了事件流,能够解析的事件会不断增加。游戏可以不依靠背包内的初始道具通关!不过如果实在是连咸鱼难度都打不过的话,那就随便用道具吧~
当前可用的快捷键:
在例如怪物手册,存档界面等菜单中,可以通过左右方向键快速跨页面移动高亮光标。
/tools文件夹下有一个使用Tkinter写的地图数据编辑器。这个编辑器非常简陋,但是能用,而且编辑完数值后会自动保存。
/tools文件夹下还有一个”一键H5魔塔地图转Python魔塔地图“工具,目前没有写GUI。这个转换器需要使用到json5这个包,因为H5魔塔中的地图文件并不是符合规范的JSON文件(关于这个问题可以搜索”trailing comma json“来了解更多)。常规的json包无法解析这样的JSON文件,所以只能使用json5。
这个不一定开发。
使用Pygame制作编辑器,可以实现简单的可视化编辑地图
描边卡顿的罪魁祸首就是在lib/ground中通过font = pygame.font.Font(font_name, size)反复生成新的font object,这个操作非常影响效率。现在使用新增的draw_bulk_text方法,显伤层平均每帧绘制时间从90.51ms提升到2.59ms(样本为连续的30帧),效率是原来的35倍。
英文宽度计算错误这个问题就比较蠢了,get_real_len在输入一个英文字母的时候,是返回0的,所以程序一直认为当前这行还没填满,不需要换行。其实直接把换行条件改一改,就行了。
status_bar图层化之后方便管理,但是每帧渲染时间+3ms。之后看看有没有办法变化才刷新。
还有一个特别消耗时间的操作就是lib/ground的flush,仔细检查才发现君浪大佬当时写的代码居然直接遍历并刷新全部图层,怪不得fps一直很低。简单修改之后目前只刷新active状态的图层。
反正经过各种优化,终于从7fps提升到34fps,现在看起来流畅多了~
最近有点忙,已经许久没有更新了。但是,坑是一定会填的,目前这个项目还有许多不足,我认为还不能算作成品,有些地方还是需要再打磨打磨。
功能删除:
这是一个里程碑,因为在今天,Python魔塔样板跑通了测试用的《中秋2019:桂魄》咸鱼难度!
当然,目前只是跑通了测试塔,所以仍然需要继续完善Python魔塔样板的方方面面,例如UI,事件解析,特效等等。
在君浪大佬(dljgs1/虚风悠雨)和z触(zhaouv)的指点和帮助下,我作为一个非科班出身的业余爱好者,总算是做出了点成果!
最后,我想说的是:世上无难事,只怕有心人!
自定义JS语句事件(function)只能尽量去解析匹配,因为语言的不同,以及项目之间的一些结构差异,很难完全把JS语句转换成对应的Python语句。
已实现的怪物属性:0:无,1:先攻,2:魔攻,3:坚固,4:2连击,5:3连击,6:n连击,7:破甲,8:反击,9:净化,10:模仿,11:吸血,19:自爆,20:无敌,21:退化,22:固伤
未实现的怪物属性:12:中毒,13:衰弱,14:诅咒,15:领域,16:夹击,17:仇恨,18:阻击,23:重生,24:激光,25:光环
在摸鱼很久之后,我又回来啦~
当前待处理工作:
当前待处理工作:把旧有内容移植到新框架下(旧有部分除了素材目前仍然兼容)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。