建立autoshot
/**
* 自動射擊的能力
*/inte***ce autoshot
enemy實現這個介面,重寫autoshot方法(tank中有相同**,抄一抄)
class
enemy
(override
var x: int,
override
var y: int)
:moveable, automoveable,blockable,autoshot
direction.down ->
direction.left ->
direction.right ->
}pair
(bulletx, bullety)})
}}
gamewindow中onrefresh中增加
//檢測自動射擊
views.
filter
.foreach
}
現在執行程式,敵方坦克發射速度很快,現在增加時間控制
class
enemy
(override
var x: int,
override
var y: int)
:moveable, automoveable,blockable,autoshot
//坦克的座標移動
//根據方向改變座標
when
(currentdirection)
//越界判斷
if(x <
0) x =0if
(x > config.gamewidth - width)
if(y <
0) y =0if
(y > config.gameheight - height)}..
....
override
funautoshot()
: view?
}
修改tank
class
tank
(override
var x: int,
override
var y: int)
: moveable,blockable,sufferable
....
..}
修改敵方坦克
class
enemy
(override
var x: int,
override
var y: int)
:moveable, automoveable,blockable,autoshot,sufferable
}
現在執行會發現,各種**,原因是,子彈擊中自己後,**了,現在attackable加乙個所有者的屬性
inte***ce attackable : view
bullet報錯了,修改
class
bullet
(override
var owner: view,
override
val currentdirection: direction, create:
(width: int, height: int)
-> pair
): automoveable,destroyable,attackable
tank,enemy中的autoshot方法修改為
override
funautoshot()
: view?
)}
gamewindow的onrefresh中,讓攻擊方和發射方不相同
//檢測有攻擊能力和被攻擊能力的物體間是否發生了碰撞
//1)過濾具備攻擊能力的
views.
filter
.foreach
.foreach suffertag@
}
class
enemy
(override
var x: int,
override
var y: int)
:moveable, automoveable,blockable,autoshot,sufferable,destroyable
現在執行程式,敵方坦克互相傷害,然後不戰而勝…
但這樣確實缺少了遊戲樂趣,我們讓敵方坦克不能相互傷害,修改enemy
class
enemy
(override
var x: int,
override
var y: int)
:moveable, automoveable,blockable,autoshot,sufferable,destroyable
....
..}
坦克大戰 坦克類
坦克類 class tank public void setx int x public int gety public void sety int y y表示坦克的縱座標 int y 0 public tank int x,int y 定義坦克方向 0表示向上,1右,2下,3左 int direc...
Kotlin 坦克大戰10 遊戲結束
銷毀後顯示特效,所以在destroyable中增加乙個showdestroy 方法 inte ce destroyable view 爆照效果 camp中重寫這個方法 override funshowdestroy array 遊戲結束有兩張情況,第一種是大本營銷毀,另一種是敵人被打敗 class ...
C 遊戲《坦克大戰》 坦克
這裡的各種型別,使用struct而不是enum,避免後面強制轉換。子彈資訊 public struct t bulletinfo 坦克型別 public struct t type 坦克行動方向 public struct t dir 公共引數 public struct t commpar 設計框...