2013-11-02 30 views
1

在太空侵略者中,盾牌可以由玩家逐個像素地射殺。它們也可以被外星炸彈摧毀,被外星人的搖擺炸彈以鋸齒形圖案「吃掉」。太空侵略者的盾牌是如何編碼的?

這是怎麼編碼在原始版本?

它看起來相當複雜 - 無論如何它比「擊中它們三次然後它們被破壞」更復雜。

關於如何編碼這些日子的編碼論壇的一些討論建議創建對象來表示盾中的每個像素或塊,並執行單獨的碰撞檢測。但我不能相信原文是以這樣一個複雜的(暫時)面向對象的方式編寫的。

一定有一些簡單的8位技巧正在進行。它以前如何?

回答

6

對於非常古老的遊戲,屏幕緩衝區可直接訪問。你有一個網格,在屏幕上移動一個物體就是將它從舊的位置上擦掉,然後在新的位置上畫出來。你不會清除並重新繪製每一幀的整個圖像。硬件太慢了。

因此,在太空入侵者的級別開始時,掩體被繪製,然後根本不會重繪。在移動到新的位置之前檢查導彈/炸彈前端的像素是否已設置完成。這個炸彈然後「爆炸」,從屏幕緩衝區中刪除爆炸圖形,並將其與掩體的一部分一起使用。