将形状旋转同步到它的移动方向

时间:2014-11-15 15:34:23

标签: java slick2d

虽然练习想要创建基本的游戏类型(?) - 只有一个基本的形状(矩形),你用一个按钮向前移动,用另一个按钮向后移动,然后用另外两个按钮旋转它,那个形状因此应该根据它的旋转移动到其他方向。到目前为止我所做的是:

输入处理:

if (input.isKeyDown(Input.KEY_UP)) {
        rectX += Math.cos(Math.toRadians(rotation)) * (0.2*delta);
        rectY += Math.sin(Math.toRadians(rotation)) * (0.2*delta);
    }
    if (input.isKeyDown(Input.KEY_DOWN)) {
        rectX -= Math.cos(Math.toRadians(rotation)) * (0.2*delta);
        rectY -= Math.sin(Math.toRadians(rotation)) * (0.2*delta);
    }
    if(input.isKeyDown(Input.KEY_LEFT)){
        rotation-=(0.1*delta);
        rectangle = rectangle.transform(Transform.createRotateTransform(rotation, rectX, rectY));
        if(rotation <= 0f) {
            rotation = 360f;
        }
    }
    if(input.isKeyDown(Input.KEY_RIGHT)){
        rotation+=(0.1*delta);
        rectangle = rectangle.transform(Transform.createRotateTransform(rotation, rectX, rectY));
        if(rotation >= 360f) {
            rotation = 0f;
        }
    }
    rectangle.setCenterX(rectX);
    rectangle.setCenterY(rectY);
}

rectX,rectY显然是矩形的中心坐标(浮点数) 和旋转是......好转... 我认为,其他代码并不值得一提。 在我看来这应该有用,但事实是当运动方向以正常速度变换时,我的矩形旋转得很厉害,可能比它的运动方向快约100倍。

Delta是自上次调用update()以来的毫秒数。

0 个答案:

没有答案