Re: [問題] 最近在做一個射擊小遊戲

看板Flash作者 (CJ Cat)時間17年前 (2009/05/29 16:52), 編輯推噓2(201)
留言3則, 1人參與, 最新討論串2/3 (看更多)
在生成子彈的時後用滑鼠座標當作方向 砲台名為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

05/29 17:13, , 1F
完全不知道單位向量這一招啊啊 都還老師了<0>
05/29 17:13, 1F

05/29 17:13, , 2F
太感謝了 馬上來試試看
05/29 17:13, 2F

05/29 17:44, , 3F
奇怪 我一用dx和dx來代指標位置就會出狀況...
05/29 17:44, 3F
文章代碼(AID): #1A7w8vll (Flash)
文章代碼(AID): #1A7w8vll (Flash)