作者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
1F:推 HornyDragon:完全不知道单位向量这一招啊啊 都还老师了<0> 05/29 17:13
2F:→ HornyDragon:太感谢了 马上来试试看 05/29 17:13
3F:推 HornyDragon:奇怪 我一用dx和dx来代指标位置就会出状况... 05/29 17:44