之前的小问题:写Camera类时把己方坦克加入了
pygame.Surface.scroll()
复制并移动 Surface 对象

来自 https://blog.csdn.net/qq_62789540/article/details/124274028?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166253810716782412522727%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=166253810716782412522727&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-5-124274028-null-null.142^v47^body_digest,201^v3^control_1&utm_term=pygame键盘持续按下时间&spm=1018.2226.3001.4187

来自 https://blog.csdn.net/qq_62789540/article/details/124274028?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166253810716782412522727%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=166253810716782412522727&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-5-124274028-null-null.142^v47^body_digest,201^v3^control_1&utm_term=pygame键盘持续按下时间&spm=1018.2226.3001.4187

也可以不做滚动地图,而是当玩家出边界时,就刷新地图(相当于出边界了就进入另一个地图)

2000行代码是基本的,500050000行代码算中型项目,5000010万就算大型项目
写10000行代码蛮好了,50000行就很牛了
同时代码要有很好的可拓展性

参考Q版泡泡堂和铁锈战争!
做成微信小游戏,说不定能火

实现物理引擎的时候,可能需要多项式求导,多项式相加

3.0:完成碰撞。增加怪物,子弹等
Ai可以用行为树

3.5:要实现换弹和散弹枪,则需要clip类

4.0:完善怪物的各种属性。❤捡到会+1生命

4.5:游戏屏幕要显示怪物和方块的生命值
重新写button类
完成游戏说明书

5.0:增加怪物种类,且有各自技能
增加道具,更多的属性,给玩家增加更多武器

5.0版本完成应该有2000行代码

6.0:添加英雄和小兵机制,英雄有特殊技能
6.5:游戏中可以捡起经验,捡起经验到一定数量会让怪物升级。高级怪物会有更多技能,武器,属性值更高

7.0:添加了流体:坦克碰到流体会减速,流体会向四周无障碍的地方扩散,子弹碰到流体消失

8.0:有火焰可以烧掉一些方块,还可以引燃TNT
8.5:有稿子可以挖开方块

9.0:区块能打乱地图中方块的顺序

10.0:箱子可以存放东西,还可以设置密码

11.0:可以占领领地什么的(参考polytopia)
有了领地机制就可以像围棋那样,或者像战棋那样

12.0:参考铁锈战争。并且增强代码的可拓展性

完善刚体
基础的刚体:不与任何物体重叠
人物/方块可以赋予刚体速度,刚体可以有多个速度进行矢量相加

完善地图滚动
地图滚动本质上是摄像机的移动,摄像机移动导致屏幕上画面移动
可以利用“盒子模型”:玩家离屏幕边缘较远时,屏幕不移动
在屏幕边缘,玩家原来的移动速度会分为两部分:一部分是当前玩家速度,另一部分是屏幕移动速度

最后:
实现游戏解释器。命令方块能执行解释器指令
实现敌人的Ai,怪物会追逐玩家,会躲避Ai
socket联机,开房间

之后应该不更新pygame了