Kotlin 坦克大戰8 敵方坦克發射

2021-10-01 12:57:55 字數 2583 閱讀 7347

建立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 設計框...