我试图通过BASIC来了解C64游戏开发的基础知识,并且我可以针对一些非常基本但很重要的内容使用一些建议:屏幕上的所有内容实际上是什么,以及如何绘制?
屏幕上至少有9种不同的东西:
- 得分栏,具有不同的字体
- 船本身
- 附属于船的卫星,可拆卸
- 次要武器弹丸
- 初级武器弹丸
- 移动物体(可以是敌舰)
- 状态栏,显示船舶图像,生命数量和可填充的三个区域
- 主武器充电条,可以填满
- 背景中的滚动星空
- (在屏幕上未编号)作为背景一部分的坚硬物体,例如岩石或金属墙
C64每条水平扫描线仅支持8个Sprite,所以我认为屏幕中间的所有内容都不是Sprite吗?我以为任何需要碰撞的东西都将是一个精灵(因为我可以使用精灵进行硬件碰撞检测),但是即使那样我也很快达到了8个精灵的限制。而且,我的武器可以发射的弹子不止一个-我的飞船,卫星和6枚子弹已经是连续8个子弹了(看录像时约50秒)。
另外,像这样的游戏会使用哪种图形模式?《编程手册》列出了位图模式,它实际上直接修改了屏幕存储器。这是我通常应该使用的模式吗?我如何将所有非精灵元素组合在一起以使其出现在屏幕上?
分数和状态栏中的很多内容都是静态的(“ Area:01”或“ frame”),因此我猜我将在级别开始时将它们填充一次。需要更新的内容(得分,底部的充电条)是否会通过用黑色填充屏幕内存,然后在每一帧绘制新得分来进行更新?
还是我必须在每一帧上绘制整个屏幕?