我正在製作一款自上而下的射擊遊戲HTML5。我正在試圖讓我的角色面對角度射擊子彈。HTML5-JS:從子彈射擊子彈
我的角色總是面向鼠標位置(旋轉)。所以,當我發射子彈時,我需要考慮輪換。
我幾乎在那裏,唯一的問題是子彈開始我的實際鼠標位置,雖然 - 它在正確的朝向方向移動。
我相信我的數學是從我的速度變量中:
var b = new Rectangle(this.x + (this.width/2) - 4, this.y + (this.height/2) - 4, 8, 8);
var velocityInstance = new Vector2(0, 0);
velocityInstance.x = input.mouseX - (this.localX + this.width/2);
velocityInstance.y = input.mouseY - (this.localY + this.height/2);
var bulletInstance = new Bullet(velocityInstance, b, this.bullets.length + 1);
this.bullets.push(bulletInstance);
this.shotBullet = true;
「這」指的是我的球員。 localX/Y是我角色的中心位置(他總是在屏幕中央,場景在他身邊移動)。
希望如果有人能爲我檢查這個。謝謝!
------編輯------
這裏是我的子彈功能:
Bullet = function(vel, rectangle, index){
this.velocity = vel;
this.rect = rectangle;
this.index = index;
this.Update = function(){
this.rect.x += this.velocity.x;
this.rect.y += this.velocity.y;
//Collisions
for(var c = 0; c < GameObjects.length; c++){
if(this.rect.Intersects(GameObjects[c])){
console.debug("Bullet Hit: " + GameObjects[c].tag);
//Player.bullets.splice(index, 1);
}
}
};
this.Draw = function(ctx){
this.rect.Draw(ctxMap);
};
};
如果子彈始終應該來自該字符,爲什麼在計算中會提及'input.mouseX'或'input.mouseY'?這些值決定子彈的方向,而不是位置。 – jbabey 2013-02-13 15:17:59
如果子彈向正確的方向移動,那不是你的速度 - 這是你的子彈的初始位置。我認爲你將它設置爲(input.mouseX,input.mouseY)而不是(this.localX + this.width/2,this.localY + this.height/2),但是你沒有向我們展示代碼的位置。 – 2013-02-13 15:22:24
我更新了我的問題。我最初似乎沒問題?我正在使用球員的位置。 – 2013-02-13 15:27:10