作業中のプログラムの基本構造に問題があります。私は、複数の状態を使用するプログラムの基本を自分自身に教えようとしている、非常に経験の浅いプログラマーです。
現在、イベント、ロジック、レンダリングをStateManagerクラスにリダイレクトするゲームループを備えた非常にシンプルなゲーム風のプログラムがあります。このクラスは、状態をにプッシュおよびポップします。次に、StateManagerクラスは、イベント、ロジック、およびレンダリングを、ベクターのback()にある状態にリダイレクトします。アイデアは、プログラムのフェーズごとにさまざまな状態を用意することです(この場合、スプラッシュスクリーン、メニュー、ゲームプレイ、デススクリーンなどを備えたシンプルなゲーム)...
しかし、私は非常に初心者のコーダーであり(最善を尽くして学習しようとしています)、最初の州のクラスからプログラムで根本的な問題に遭遇しました...
私が作成した最初のクラスはSplashScreenStateです。そして、基本的な考え方は、基本的に一連の「スプラッシュ画面画像」(例として3つ)を表示するだけの状態にすることでした。ユーザーがキーを押すたびに、次の画像に切り替わり、最後に(スプラッシュ画面の画像が表示されていない場合)、次の状態(menustate)に切り替わります。
私の問題は、これをどのように構成するかを理解するのに苦労していることです。もともと、私はそれぞれの異なるスプラッシュ画面画像をSplashScreenStateのインスタンスとして扱うという間違いを犯しました。ただし、3つのスプラッシュ画面はすべて技術的に同じ「状態」の一部であるため、これは正しくないと考えました。
だから今私は2つの主要な問題があります:
最初の問題は、すべてのスプラッシュスクリーン画像をどのように/どこに保存するかがわからないことです。プログラムの起動時に3つの異なる画面イメージを循環させたい場合、それらをすべてSplashScreenStateクラスのメンバーにする必要がありますか?または、「currentImage」に1つのクラスメンバーを設定し、ユーザーがキーを押すたびにload()関数を実行して、次の画像をcurrentImageポインターにロードする方が賢明ですか?画像の配列またはベクトルを作成し、それらを循環させる方が良いですか?よくわかりません...
2番目の問題は、SplashScreenStateのeventhandling()に関するものです。画面上の画像を次のように変更したいことはわかっています。* image1-> image 2-> image 3-> changeState(menuState)..ユーザーがキーボードのキーを押すたびに、最後のスプラッシュ画面まで次のスプラッシュ画面に切り替わり、そこで変更されます。メインメニューに状態します。これを行うための最良の方法もわかりません。各スプラッシュ画面に列挙型を作成し、それらをインクリメントする必要がありますか(状態が変化する最後の画面まで)?また、さまざまな画面をすべて配列に格納すると、簡単にインクリメントできると思いますが、すべての画面を常にメモリに格納する必要があるため、最適化されていないのでしょうか。
とにかく、私はこの質問が非常に基本的で無愛想であるかもしれないことを知っています、しかしそれは残念ながら私が今いるところです!私はプログラミングの正式な教育を受けておらず、自分自身を教えてきたので、このサイトにあるすべての助けと専門知識に本当に感謝しています!^^
ありがとう!