Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使对象面向鼠标光标_Javascript_Rotation - Fatal编程技术网

Javascript 使对象面向鼠标光标

Javascript 使对象面向鼠标光标,javascript,rotation,Javascript,Rotation,我是javascript的初学者。 我正在尝试制作一个非常基本的2d自上而下射击游戏,在这个游戏中,我想用鼠标光标旋转我的玩家。 我见过其他关于这个的问题,但没有一个对我有用。 请告诉我怎么做(我以前从未做过这种游戏。) 我已经附加了我的代码片段,我必须朝着鼠标旋转(“player1变量”) 免责声明:我是一个初学者(我想我会提到) 您可以添加一个参数来获取鼠标的坐标。根据给定的文档: myPics.addEventListener('mousemove',e=>{ x=e.offsetX; y

我是javascript的初学者。 我正在尝试制作一个非常基本的2d自上而下射击游戏,在这个游戏中,我想用鼠标光标旋转我的玩家。 我见过其他关于这个的问题,但没有一个对我有用。 请告诉我怎么做(我以前从未做过这种游戏。) 我已经附加了我的代码片段,我必须朝着鼠标旋转(“player1变量”) 免责声明:我是一个初学者(我想我会提到)

您可以添加一个参数来获取鼠标的坐标。根据给定的文档:

myPics.addEventListener('mousemove',e=>{
x=e.offsetX;
y=e.offsetY;
});
然后,您当然需要知道当前玩家的位置,但是在player变量中您已经知道了

现在可以得到x和y的差值,因为你们都知道鼠标和玩家的位置,这给了你们一个三角形。可以使用计算三角形角度,然后根据计算的角度旋转播放器(或者可能有角度,因为您希望播放器中心位于角度的中心)


你真的应该试着自己解决这个问题,因为你只能通过反复试验、阅读文档和尝试自己理解事物来提高你的编码技能。不过,我希望我能为您指明一个大致的方向。

谢谢!为了确认,我需要找到玩家和鼠标的x和y值的差异(如果玩家x pos为50,鼠标x pos为70,则为20),然后使用毕达哥拉斯定理,用它们找到斜边的值,然后找到斜边的角度,对吗?你可能甚至不需要假设,我也无法从我的头脑中判断哪种方法可以计算哪个角度,你必须研究一些数学才能找到答案,对不起;)但是,如果你把数学做对了,它会有用的。Youtube会有帮助的!好的:)我看看
//variables
var player1;
var gun1;
var gun2;


function preload(){

}

function setup(){
    //creating sprites
    player1 = createSprite(200,200,30,30)
    gun = createSprite(player1.x,player1.y-20,5,30)
    gun.shapeColor = "black"
}

function draw(){
  canvas = createCanvas(displayWidth-20, displayHeight-120);
   background("#32CD32");
   gun.x = player1.x;
   gun.y = player1.y-15;
   // functions to move
   //up
  if(keyDown("up")){
    player1.y = player1.y - 5;
  }
  //down
  if(keyDown("down")){
    player1.y = player1.y + 5;
  }
  //right
  if(keyDown("right")){
    player1.x = player1.x + 5;
  }
  //left
  if(keyDown("left")){
    player1.x = player1.x - 5;
  }

 

drawSprites();
}