作者cjcat2266 (CJ Cat)
看板Flash
標題Re: [問題] 最近在做一個射擊小遊戲
時間Fri May 29 16:52:07 2009
在生成子彈的時後用滑鼠座標當作方向
砲台名為turret,子彈名為bullet,speed為子彈速度
var dx:Number = _xmouse - turret._x;
var dy:Number = _ymouse - turret._y;
var length:Number = Math.sqrt(dx * dx + dy * dy);
//設定子彈速度X與Y分量
//(dx, dy)是方向向量,除以length是為了使其成為單位向量(長度1)
//單位向量乘以speed即成為長度為speed的向量(這就是你要的速度向量)
bullet.vx = speed * (dx / length);
bullet.vy = speed * (dy / length);
//把子彈push到子彈陣列bullets
bullets.push(bullet);
在主迴圈裡面用子彈自己的速度來更新位置
speed代表子彈的速度參數,是一個主迴圈內一個子彈的移動長度
for (var i:Number = 0; i < bullets.length; i++) {
bullets[i]._x += bullets[i].vx;
bullets[i]._y += bullets[i].vy;
}
以上code未經過測試,可能有打錯字
--
CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓
Blog
http://cjcat.blogspot.com
Gallery
http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.33.163
推 HornyDragon:完全不知道單位向量這一招啊啊 都還老師了<0> 05/29 17:13
→ HornyDragon:太感謝了 馬上來試試看 05/29 17:13
推 HornyDragon:奇怪 我一用dx和dx來代指標位置就會出狀況... 05/29 17:44