我正在开发一款自上而下的 HTML5 射击游戏。我目前正试图让子弹从我的角色面向角度发射。
我的角色总是面向鼠标位置(旋转)。所以,当我发射子弹时,我需要考虑到旋转。
我快到了,唯一的问题是子弹从我的实际鼠标位置开始,尽管 - 它朝着正确的方向移动。
我相信我的数学在我的速度变量中是错误的:
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;
'this' 指的是我的 Player。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);
};
};