Javascript 字符Z旋转

Javascript 字符Z旋转,javascript,math,rotation,geometry,Javascript,Math,Rotation,Geometry,我知道这是一个非常愚蠢的问题,但我就是不知道该怎么办 var x = pressed('left') - pressed('right') // obvious (0 = nope, 1 = left, -1 = right) var z = pressed('up') - pressed('down' ) // also obvious player.rotation.y = somehowGetRotationInRadians; 问题是,我太笨了,不知道如何从这两个变量中得到角色的旋

我知道这是一个非常愚蠢的问题,但我就是不知道该怎么办

var x = pressed('left') - pressed('right') // obvious (0 = nope, 1 = left, -1 = right)
var z = pressed('up')   - pressed('down' ) // also obvious
player.rotation.y = somehowGetRotationInRadians;
问题是,我太笨了,不知道如何从这两个变量中得到角色的旋转。我打赌其中涉及到一些平均值和π,但我不知道怎么做


我不知道这些标签有多相关。

在当前状态下更具体些你的问题没有多大意义

这意味着您希望通过箭头键来控制某些对象播放器 我现在假设2D 因此,您需要的是:

对象位置和方向数据

    struct plr_object
     {
     double x,y; // position in pixels or meters or whatever
     double a;   // angle in radians
     } plr;
这必须是持久的,以便全局或静态变量。。。 局部或全局变量 或引用它 在键盘事件或某些计时器中

    double da=5.0*M_PI/180.0; // rotation speed
    double dl=5.0; // movement speed
    bool _redraw=false;
    // handle rotation
    if (pressed('left' )) { plr.a+=da; redraw=true; }
    if (pressed('right')) { plr.a-=da; redraw=true; }
    // handle movement
    if (pressed('up'   )) { plr.x+=dl*cos(plr.a); plr.y+=dl*sin(plr.a); redraw=true; }
    if (pressed('down' )) { plr.x-=dl*cos(plr.a); plr.y-=dl*sin(plr.a); redraw=true; }
    if (_redraw) redraw the scene ...
重画

在重绘中,必须处理对象的角度 所以它是旋转的 如果您的对象只是一些简单的GDI,请使用变换矩阵 圈出+线,然后画出旋转的方向。