トップページ > 記事閲覧
2Dアニメーションにおける画像ファイルの扱いについて
名前:りんご 日時: 2024/01/14 00:37

お世話になります。 2Dゲームのアニメーションに使う画像ファイルの扱いについて質問があります。 フォルダー「animation」の中に下記のように100枚の画像ファイルが入っているとします。 image0.png image1.png image2.png  ・  ・  ・ image99.png これらの画像ファイルを1番から順番に読みだして描画させたいと考えています。 LoadGraphScreen(0, 0, "animation/image0.png", TRUE); LoadGraphScreen(0, 0, "animation/image1.png", TRUE); LoadGraphScreen(0, 0, "animation/image2.png", TRUE);  ・  ・  ・ LoadGraphScreen(0, 0, "animation/image99.png", TRUE); ↑のようなコードでも実現はできるのですが、コードが冗長になるほかループ上での実装が難しいなどの問題があり避けたいです。 ループのたびにファイル名の数字部分のみを変換させて読みだすことが理想なのですが、その方法があればお教えいただければ幸いです。 以下のコードは私の実現させたいコードのイメージです。あくまでイメージなので通りません。 //アニメーションの最終フレーム数 int anime_no = 100; //アニメーションの現在のフレーム int X = 0; while (true) {         //X番目の画像ファイルを描画する LoadGraphScreen(0, 0, "image/imageX.png", TRUE);         //ファイル番号を次に設定する X++;         //最終フレームになったらブレイク if (X == anime_no-1) break; } どうかよろしくお願いします
メンテ

Page: 1 |

Re: 2Dアニメーションにおける画像ファイルの扱いについて ( No.1 )
名前:管理人 日時:2024/01/14 01:48

printf という関数は使用されたことがありますでしょうか? sprintf_s という関数を使用すると printf の書式を使って文字列を作成することが出来ますので、 ファイル名の中に変数の値を入れることができます LoadGraphScreen(0, 0, "image/imageX.png", TRUE); ↓ ↓変更 ↓ char String[ 256 ]; sprintf_s( String, sizeof( String ), "image/image%d.png", X ); LoadGraphScreen( 0, 0, String, TRUE ); 上記の例では "image/image%d.png" の %d の部分が X の値に置き換わります そうして作成された文字列 String を使用して LoadGraphScreen を実行するという形です よろしければお試しください m(_ _)m
メンテ
Re: 2Dアニメーションにおける画像ファイルの扱いについて ( No.2 )
名前:りんご 日時:2024/01/14 16:14

お教えいただいた関数を使ったところ、無事解決しました。 ありがとうございました。 今後ともDXライブラリを利用させていただきますm(__)m
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存