Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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
Java 在一段时间内移动精灵_Java_Animation_2d - Fatal编程技术网

Java 在一段时间内移动精灵

Java 在一段时间内移动精灵,java,animation,2d,Java,Animation,2d,我正在制作一个2d矿工/冒险游戏,我试图让太阳在屏幕上移动 它应该如何工作是,它必须从A点(屏幕左上角)到B点(屏幕右上角),与一天中的时间对齐 我发现了如何计算,但当我运行游戏时,太阳精灵就是一动不动。我甚至等到夜幕降临,它仍然一动不动。我想弄明白它为什么不动 我验证了数学: public int dayFrame = 0; int u = 0; int x; int y = 36; public int dayTime = 7500; public void tick() { x

我正在制作一个2d矿工/冒险游戏,我试图让太阳在屏幕上移动

它应该如何工作是,它必须从A点(屏幕左上角)到B点(屏幕右上角),与一天中的时间对齐

我发现了如何计算,但当我运行游戏时,太阳精灵就是一动不动。我甚至等到夜幕降临,它仍然一动不动。我想弄明白它为什么不动

我验证了数学:

public int dayFrame = 0;
int u = 0;
int x;
int y = 36;
public int dayTime = 7500;


public void tick()
{
    x = (TritonForge.pixel.width / dayTime) * dayFrame;
    u += 1;
    if (u > 4)
    {
        dayFrame += 1;
        u = 0;
    }
    (rest of code...)
它以单位获取屏幕宽度,并将其除以一天的总时间。 然后再乘以现在的时间。我知道这是可行的,因为(TritonForge.pixel.width/day)*day=640(我的屏幕宽度单位)


有人能帮忙吗?

这与整数除法有关。您的屏幕宽度大概是
TritonForge.pixel.width
?当除以白天时,它可能总是等于零,因为屏幕不是7500像素(这里再次假设)

这是因为整数除法向下舍入到最接近的整数。假设你的屏幕是1200像素。1200 / 7500 = .16. 这四舍五入到0

所以,也要改变你的代码

double x;
x = (TritonForge.pixel.width / (double)dayTime) * dayFrame;

并根据需要将x转换为int。

1)这与JavaScript有什么关系?在将标签应用于问题之前,请确保阅读弹出窗口中的有用标签说明。”“Java”与“JavaScript”的关系就像“汽车”与“地毯”的关系一样。2) 为了更快地获得更好的帮助,请发布一条消息。假设一天的长度为10秒。调整您的程序,使其在时间范围内有10秒。开始位置为A,运行程序时,检查是否在10秒内到达B点。这是用java做的,javascript是指别的还是别的什么?
double x;
x = (TritonForge.pixel.width / (double)dayTime) * dayFrame;