Java 在一段时间内移动精灵
我正在制作一个2d矿工/冒险游戏,我试图让太阳在屏幕上移动 它应该如何工作是,它必须从A点(屏幕左上角)到B点(屏幕右上角),与一天中的时间对齐 我发现了如何计算,但当我运行游戏时,太阳精灵就是一动不动。我甚至等到夜幕降临,它仍然一动不动。我想弄明白它为什么不动 我验证了数学: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
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;