接下來修改EnemyA.java,宣告下列變數:
private LTimer timer; //計時器做更換敵軍的圖片的時間
private static LImage[] bees; //儲存敵軍角色的圖片
private int index; //指示目前要顯示敵軍角色的那一張圖片
private int size; //圖片大小
private double vx, vy; //每次移動的增量
除了上述的變數外,我們利用建構子來設定計時器的時間間隔,設定敵軍的位置及每次移動的增量,也把敵軍的各種圖片儲存在bees變數中。此外也利用draw及update函式分別來重敵軍及更新敵軍的位置和要顯示那張圖片。
再來就剩下Screen1.java的修訂,使用counterEnemy來計數何時產生一個新的敵軍,enemys 是以Barrage的泛型類別用來儲存敵軍物件,barrages 則是一個鏈結串列的集合,目前僅含敵軍的物件,未來將會再包含子彈的物件,利用這樣的寫法可以用一個迴圈把要更新重繪的物件執行完畢,move則是用來儲存迴圈所取出的物件。其宣告如下:
private int counterEnemy;
private LinkedList
private List[] barrages = { enemys };
ListIterator
使用draw來重繪精靈及敵軍,然後利用alter函式來更新敵軍的位置,並產生新的敵軍。
最後執行結果如下圖:
沒有留言:
張貼留言