私は 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...)
画面の幅を単位で取得し、それを 1 日の合計時間で割ります。次に、それを現在の時刻で乗算します。(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);
}
誰か助けてくれませんか?