画像で滑らかなアニメーションさせるには?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Sakana

画像で滑らかなアニメーションさせるには?

#1

投稿記事 by Sakana » 15年前

LoadDivGraph関数で[0]~[2]に格納した画像を順次表示させ滑らかなアニメーションをさせようと試みようとしているのですが、具体的に書きますと、横スクのアクションゲーでキーが押されると攻撃モーションをするという事なのですがDrawGraph(x, y, image[n])のnの部分に+1していくという書き方だと早すぎてチカチカしてしまうのです
そこでSleep()関数等でちょっと描画を遅くしてみようとしてみたら
動作がおかしくなってしまい、上手くアニメーションさせる事が出来ません

適切な書き方があればご教示下さい

softya

Re:画像で滑らかなアニメーションさせるには?

#2

投稿記事 by softya » 15年前

DrawGraph(x, y, image[n/2];
とするだけで1/2の再生速度になりますよ。
DrawGraph(x, y, image[n/3];
なら1/3に!

Dixq (管理人)

Re:画像で滑らかなアニメーションさせるには?

#3

投稿記事 by Dixq (管理人) » 15年前

DrawGraph(x, y, image[n/4]
なら1/4n(ry



Sleep関数で止める方法はよくないです。
Sleep関数はFPS制御用だけに使った方がいい・・というかそうであるべきかと。
毎フレーム必ず制御関数に処理を返してあげる構造がベストだと思います。
マルチスレッドでは無い限り、Sleepを使うと全て止まってしまい、
背景なども止まってしまいます・・。

遅くする、早くする、などはカウンタを使っていくらでも変更可能ですから。
FPSは固定にして、動きの計算式を変えるようにすることお勧めします。

(それらを全て理解した上でSleepを使うなら良いでしょうが)

Justy

Re:画像で滑らかなアニメーションさせるには?

#4

投稿記事 by Justy » 15年前

 基本的には既に出ているアイデアでいいかとは思いますが、ちょっと別の方向から。


> 滑らかなアニメーション

 「滑らか」にするならアニメのコマ数を増やすのが無難ではないでしょうか。
 [0]~[2]を [0]~[3]とか[0]~[4]にするだけも結構違ってみえるはずです。

Sakana

Re:画像で滑らかなアニメーションさせるには?

#5

投稿記事 by Sakana » 15年前

nを割る書き方で丁度いい速度になり自然な速度でアニメーションをさせる事が出来るようになりました
Justyさんのおっしゃる通り滑らかにするなら画像の枚数増やす事ですよね
Sleepの使い方がよく分かっていなかったので、ご説明ありがとうございました

閉鎖

“C言語何でも質問掲示板” へ戻る