JavaScript类Doom射线投射游戏:FOV视角旋转实现难题
射线投射(RayCasting)游戏视角旋转问题
我正在用JavaScript开发一款类似Doom的射线投射游戏,当前首个难题是视角旋转相关的坐标计算问题。我尝试了多种公式,想要绘制两条跟随立方体边缘的线条来实现视野(FOV)效果,但this.desenho.rotate()方法不会改变点的实际坐标,导致无法直接获取立方体的坐标。
相关代码如下:
cCenter= [this.x+this.width,this.y]; //this.desenho represents my canvas context this.desenho.beginPath(); this.desenho.strokeStyle = "blue"; initX = cCenter[0] + this.width * Math.cos(this.radians()); initY = cCenter[1] + this.height * Math.sin(this.radians()); this.desenho.moveTo(initX-this.width,initY); //initX-this.width Cause i have my origin point in the top corner of the cube. //this.radians() returns the current angle my cube is in radians initX = initX + 100* Math.cos(this.radians()); initY = initY + 100* Math.sin(this.radians()); this.desenho.lineTo(initX,initY); this.desenho.stroke();
内容的提问来源于stack exchange,提问作者Dalton Gomes
相关产品推荐
相关产品推荐

