javaでキャラクターをジャンプさせるタイルベースゲームを作っているのですが、思うようにいきません。
ジャンプキーを押したらboyJumpメソッドを実行し、キャラクターが滑らかにジャンプして見えるようにしたいと考えています。
現時点では以下のようにしているのですが、これを滑らかに動かそうとするとtaskを無数に作る事になってしまうため別の方法にしようとしています。
ですが、taskを繰り返し文で繰り返したり、ネットで見つけたthread.sleepを使ってみたりしても上手く動きません。どんな形でもいいので、改善方法を教えていただきたいですm(__)m
ソースコード
java
1 2 public void boyJump() { 3 SimpleDateFormat sdf = new SimpleDateFormat(); 4 Timer timer = new Timer(false); 5 TimerTask task1 = new TimerTask() { 6 @Override 7 public void run() { 8 //boyYはキャラクターのY座標を表す変数 9 boyY -= 0.2; 10 } 11 }; 12 TimerTask task2 = new TimerTask() { 13 @Override 14 public void run() { 15 boyY -= 0.1; 16 } 17 }; 18 19 TimerTask task3 = new TimerTask() { 20 @Override 21 public void run() { 22 boyY += 0.1; 23 } 24 }; 25 26 TimerTask task4 = new TimerTask() { 27 @Override 28 public void run() { 29 boyY += 0.2; 30 timer.cancel(); 31 } 32 }; 33 timer.schedule(task1, 500); 34 timer.schedule(task2, 1000); 35 timer.schedule(task3, 1500); 36 timer.schedule(task4, 2000); 37 38 } 39
(別の部分に描画用の関数があります)
試したこと
taskを繰り返し文で実行する→同じtaskを繰り返そうとするとエラー
timertaskの代わりにthread.sleepをつけて実行する→見た目上はキャラクターが動かない
回答2件