わかりました、コードが実際にはちょっと大きいので、すぐにお詫びします。問題は、私はSDLを使って実際に学んでいるということです。なんとかアニメーションを作成できましたが、もう少し深く掘り下げたいと思いました。これがコードの仕組みです
App - Uses: これにはメイン ループ、Init 関数、Render 関数があり、ソフトウェア全体はここから作成されます。
アニメーション - 使用: これにはクラス アニメーションのすべての関数が含まれ、宣言されます。Running という bool 変数が true の場合にのみ機能します。
Surface - Uses: ファイルをサーフェスにロードし、特定の色を透明にし、画像または画像の一部を MainSurface に描画します。
イベント - 用途: これには、イベントに対するすべての仮想機能があります。
オブジェクト - 用途: これが大きな部分です。それは完璧に機能していました。以前は、メイン クラスに Yoshi という名前の Surface を用意し、その Surface を使用してアニメーションを操作していました。メインクラスに「キャラクター」を配置する方法は少し混乱し、画面に複数の画像があると問題が発生するだろうと思いました。そのため、独自の SDL_Surface、画面上の独自の位置を持つ Object というクラスを作成することにしました。独自の変数は、それがどのフレームであるかを決定しました。私がしたことは、APPクラスのこのクラスにオブジェクトを作成したことです...
Object MainCharacter;
そのため、そのキャラクターを単独で操作することができ、画面上に別のオブジェクトを表示する必要がある場合は、
Object *SecondCharacter;
など...そのため、OBJECT クラスはアニメーションを呼び出します。APP クラスは、このような関数によって、すべての画像をレンダリングします。
MySurface::OnDraw(Surf_Display, MainCharacter.Img_Surface, MainCharacter.RetrievePosX(), MainCharacter.RetrievePosY(), MainCharacter.RetrieveFrameByID(0), MainCharacter.RetrieveFrameByID(1), 64, 64);
ええと...しかし、問題は、コードが機能しなくなるということです。これは完成したコードにはほど遠いですが、この問題をすぐに修正したいので、ベースができてから完成させます。
すべてのファイルは次のとおりです。一部のファイルは行数が多すぎません。また、私を助けてくれるかもしれない人を助けるために、いくつかのコメントを書きました。
ヘッダー:
Animation.h - http://pastebin.com/v4REcmBd
Object.h - http://pastebin.com/KdeamZTG
Events.h - http://pastebin.com/dpQ7zwpG
CApp.h - http://pastebin.com/5zZYwDjv
Surface.h - http://pastebin.com/S66ChQ3f
ソース:
Surface.cpp - http://pastebin.com/KRgAkHpw
Object.cpp - http://pastebin.com/RtDRwVj4
Events.cpp - http://pastebin.com/dpXn8Rh3
OnRender.cpp - http://pastebin.com/AqgMTacb
OnLoop.cpp - http://pastebin.com/UAeAt7y6
OnInit.cpp - http://pastebin.com/1iiZVeyK
OnEvent.cpp - http://pastebin.com/AjRXnKC1
OnCleanUp.cpp - http://pastebin.com/cv0M11nV
CApp.cpp - http://pastebin.com/L0jhfWY8
Animation.cpp - http://pastebin.com/0BZhh6TG
よし、以上です。それらのいくつかは本当に短いです。誰かが私の間違いを見つけるのを手伝ってくれるなら、私はうれしいです. それはさておき、私は本当にソフトウェアの構造について意見を求めたいのですが、私がやっていることは実用的だと思いますか? SDL ソフトウェアまたはゲームを作成するときに、どのデザインを使用しますか???