我正在制作一个 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 / dayTime) * dayTime = 640(我的屏幕宽度以单位为单位)。
public void render(Graphics gr)
{
gr.setColor(new Color(r,g,b));
gr.fillRect(0, 0, TritonForge.pixel.width, TritonForge.pixel.height);
gr.drawImage(TileArt.sun,x,y, null);
gr.drawImage(TileArt.forestback,0,0, null);
gr.drawImage(TileArt.foresttree,0,0, null);
}
有人可以帮忙吗?