2

我正在尝试查找有关如何缩放精灵速度/运动/坐标的信息。

我的意思是如何让精灵以相对于屏幕尺寸/ DPI 相同的速度移动,以便从屏幕的一侧到另一侧需要相同的实时时间?

我可以在各种论坛上找到的所有与精灵缩放有关的帖子都与精灵的大小有关,但这部分我到目前为止还可以,只是当我移动精灵时,它有点根据设备的 dpi / 分辨率以不同的速度出现。我希望我说得通。

这是我到目前为止的代码,而不是使用明确的数量,如 1,我使用的是如下内容:

    platSpeedFloat= (1 * (dpi/160)); //Use '1' so on an MDPI screen, the sprite will move by 1 physical pixel

然后基本上我正在做的事情是这样的:(之前声明的所有变量)

    platSpeedSave+=platSpeedFloat; //Add the platSpeedFloat value to the current platSpeedSave value

    platSpeed=(int) platSpeedSave; //Cast to int so it can be checked in the following statement

    if (platSpeed==platSpeedSave) //Check the casted int value to float value stored previoiusly

    {floorY=floorY-platSpeed; //If they match then change the Y value

    platSpeedSave=0;} //Reset

如果有人可以提供帮助将不胜感激 - 希望我说得通。以上似乎不起作用,精灵在较低 DPI 屏幕上移动得“更快”。

谢谢

4

0 回答 0