私の質問を説明するには:
敵のオブジェクトを保持する、敵という名前の単純なベクトル配列があります。ゲーム内のレベルのレベル選択メニューで、プレーヤーがレベルをクリックすると、その特定のレベルのすべての敵をベクトル配列に押し戻します。
現在、私はすべての敵に対して3つのレベルしか完全に実行していません。今日、4番目のレベルを実行しようとすると、スタックオーバーフローが発生し続けます。そして、なぜこれが起こっているのかわかりません。つまり、最初にレベル選択メニューに到達してからキーボードの何かを押したときにのみ、配列に何かが割り当てられることは確かですが、すぐにクラッシュすることはありません。
したがって、pseduoコードに関しては、次のようにします。
switch(keyboardInput)
//ALL keyboard button specific input
default:
if (levelSelected == 1)
//push back level 1 enemies into vector
elseif (levelSelected == 2)
//push back level 2 enemies into vector etc. etc.
ベクトル配列にプッシュされている数値に関して:
レベル1=26人の敵
レベル2=113人の敵
レベル3=204人の敵
レベル4=38人の敵(このレベルの作成が途中で終わっていない)
合計=381人の敵。
4レベルに追加したばかりのベクトルプッシュバックのいくつかをコメントアウトすると、ゲームは正常に実行されます。しかし、明らかにこれは、レベルに敵を割り当てることができるようにするために克服する必要がある問題です。
参照用にファイル" chkstk.asmでクラッシュします。これで少し混乱します。なぜこれが私の主な質問なのですか?そしてうまくいけば、この問題をどのように克服する必要がありますか?
どんな助けでも大歓迎です!
編集:いくつかの質問に答えるために、コードで再帰を使用していません。エラーをより詳しく理解するために、ここにスクリーンショットを示します。
合計86枚の画像と3つのフォントを読み込んでいます。しかし、それらのいくつかをコメントしても、上記と同じエラーメッセージが表示されます。注目に値する他の唯一のものは、実際には敵のクラス自体です。しかし、具体的には、いくつかの変数といくつかのアニメーションだけが当てはまります。敵ごとに利用できるアニメーションは全部で4つあり、アニメーションがあるものとないものがあります。以下にアニメーションクラスを投稿します。 http://pastebin.com/X3GUgJiJ-ヘッダー
http://pastebin.com/pL1iEkiy-.cppコンテンツ。
それでも、そこにかなりの記憶が詰まっているものがあるかどうかはわかりませんが。
編集2: それで、ここに私のレベル選択コードへのリンクがあります、それはかなり大きいです。コード自体のほとんどは、レベル選択画面にゲームに関連しており、正しい画像をレンダリングします。 http://txtup.co/YLVRo
編集3: ベクトル配列に押し戻されているすべての敵をコメントアウトすると、驚くべき結果が得られます。レベルの読み込みコードはエラーをスローします。これは、スタックを台無しにしている他の何かの結果である可能性がありますか、それとも実際に読み込みコードである可能性があります。それはスタックを台無しにしていますか?わからない。しかし、ここにレベルエラーの画像があります:http: //imgur.com/2fySY
編集4: それで、コードを調べるという長いタスクの後、私が理論を持っているかもしれないと思う問題を引き起こしている可能性があるものを見てください。したがって、各Enemyオブジェクトには、4つの異なるアニメーションを使用する可能性があります。5本当に、しかしそれは長い話です、異なるサイズの敵のための1つのアニメーションの基本的に2つの異なるバージョンがあります。したがって、それをいくつかの図に入れると、これらのアニメーションは、Animationというタイトルの独自のクラスになります。アレイにプッシュバックされたすべての敵オブジェクトには、使用可能なすべての特定のアニメーションの独自のインスタンスが含まれるため、時間が経つにつれて、私が知らない問題が増えている敵を追加してきました。ますます悪くなった。
つまり、合計で1524のアニメーションインスタンスになります。現在、ほとんどのコードをコメントアウトしています。私が考えた大きなことのほとんどが問題を引き起こしている可能性があります。ゆっくりと私は物事を試みている行のコメントを外し、これが実際に正しいことを確認しています。何をすべきかという問題が残っていますか?