我想在某些遊戲中創建一種關於moving
幾何單位的組件。所以,我想以這樣的方式從而scala - 作爲類的建模方法
trait Move
case class MoveHorizontal(val velocityMvH: Int) extends Move
case class MoveVertical(val velocityMvV: Int) extends Move
case class MoveRandomly() extends Move
case class MoveDiagonally(val velocityMvDx: Int = 0, val velocityMvDy: Int = 0) extends Move
case class MoveDiagonal() extends Move
case class MoveReverseX() extends Move
case class MoveReverseY() extends Move
class Moving(gu: GeometricalUnit, mv:() => Unit) extends Move {
val velocity = 20
var xVelocity: Int = velocity
var yVelocity: Int = -velocity
if (gu.isMovable == true) {
mv match {
case MoveHorizontal(mvH) => gu.dim.x += mvH
case MoveVertical(mvV) => gu.dim.y += mvV
case MoveRandomly() => moveRandomly()
case MoveDiagonally(mvDx, mvDy) => moveDiagonally(mvDx, mvDy)
case MoveDiagonal() => moveDiagonally()
case MoveReverseX() => xVelocity *= -1
case MoveReverseY() => yVelocity *= -1
}
}
}
,我想以後調用爲properties
讓以使它們根據特殊功能的移動這些GeometricalUnits的說... 我想知道,如果一個更好的組織可以比我的似乎無聊?!
我的解決辦法: 這是我在通用的解決方案:
def initiatePieces(s: Movable, x: Int, y: Int) = {
nrInitiations += 1
s.dimM.x = x
s.dimM.y = y
s match {
case _: BBall => randomMvmBB()
case _: WBall => randomMvmWB()
case _: PBall => randomMvmPB()
case _ => "nothing"
}
}
這是怎麼了發起件,以同樣的方式,我用另一種方法,移動他們,正在調用基於可移動部件類型的功能
不完全知道你想要做什麼,但這些案例似乎相當多餘。 – acjay 2014-11-15 00:46:29
'Move'特質應該以任何一種方式密封 – 2014-11-15 02:45:16
如何從'case class Direction(x:Int,y:Int,z:Int)開始' – 2014-11-15 02:51:22