敌方坦克发射
创建AutoShot
/**
* 自动射击的能力
*/
interface AutoShot {
//自动射击的功能
fun autoShot(): View?
}
Enemy实现这个接口,重写autoShot方法(Tank中有相同代码,抄一抄)
class Enemy(override var x: Int, override var y: Int) :Moveable, AutoMoveable,Blockable,AutoShot {
......
override fun autoShot(): View? {
return Bullet(currentDirection, {
bulletWidth, bulletHeight ->
var tankX = x
var tankY = y
var tankWidth = width
var tankHeight = height
var bulletX = 0
var bulletY = 0
//计算子弹真实的坐标
//如果坦克向上:bulletX = tankX+(tankWidth-bulletWidth)/2
//bulletY = tankY - bulletHeight/2
when (currentDirection) {
Direction.up -> {
bulletX = tankX + (tankWidth - bulletWidth) / 2
bulletY = tankY - bulletHeight / 2
}
Direction.down -> {
bulletX = tankX + (tankWidth - bulletWidth) / 2
bulletY = tankY + tankHeight - bulletHeight / 2
}
Direction.left -> {
bulletX = tankX - bulletWidth / 2
bulletY = tankY + (tankHeight - bulletHeight) / 2
}
Direction.right -> {
bulletX