セル単位でプレイヤーを動かす。十字キーで上下左右に移動。 http://dl.dropbox.com/u/5435697/Unity/2011-11-28/2011-11-28.html
var player : GameObject; var cell : int = 160; var moveTime : float = 0.3; private var state : String = "stop"; private var timer : float = 0; private var px : int = 0; private var py : int = 0; private var vx : int = 0; private var vy : int = 0; function Start () { iTween.MoveTo(player, {"x":(px+0.5)*cell, "y":(py+0.5)*cell, "time":0}); } function Update () { if (state == "stop") { vx = vy = 0; if (Input.GetKey("left")) vx = -1; else if (Input.GetKey("right")) vx = 1; else if (Input.GetKey("down")) vy = -1; else if (Input.GetKey("up")) vy = 1; if (vx != 0 || vy != 0) { px += vx; py += vy; state = "move"; timer = moveTime; } } if (state == "move") { timer -= Time.deltaTime; iTween.MoveTo(player, {"x":(px+0.5)*cell, "y":(py+0.5)*cell, "time":moveTime+0.1}); if (timer <= 0.0) { vx = vy = 0; state = "stop"; } } Debug.Log(player.transform.position.x + ", " + player.transform.position.y); }
[amazonjs asin="4797347090" locale="JP" title="パズルゲームアルゴリズムマニアックス"]