ステージ間ワープを作りましたが、自信がないので見てください。検索ステージ間ワープを作りましたが、自信がないので見てください。7年前ステージ間ワープを作りましたが、自信がないので見てください。4年前お久しぶりです。言語はC++で、デモンズソウルのようなステージ間ワープを作りました。2Dの横スクロールアクションゲームです。「拠点からのワープ」1ワープポイントでメニューを開いて、ワープしたいステージを選択。2エフェクトとかアニメーションしながら、画面がフェードアウト。4フェードインして、エフェクトとかアニメーションしながら、ステージに到着。5アクション「各ステージからのワープ」1ワープポイントでメニューを開いて、「拠点に帰る」項目を選択。2エフェクトとかアニメーションしながら、画面がフェードアウト。4フェードインして、エフェクトとかアニメーションしながら、拠点に到着。5アクションまあ大体こんな感じです。その処理をコードに書き表したのがこちら。※以下のコードは簡単にまとめた疑似コードです。ありのままのコードを書くと、とんでもない量になってしまうので、そうしました。Stage(STAGE_BASE);/*DEBUG_NEWはnewです。メモリリーク確認のためこうしてます。GameMng::GameMng_WarpMenuOpen(){//ワープポイント更新warp->Update();//===========//ゲーム描画//===========stage->Draw();warp->Draw();player->Draw();/*描画だけする。一気に張るのもあれなので、ひとまず全てのベースとなるこれから。気になるというか自信のない部位が//==================//ステージロード中//==================GameMng_StageLoad()の部分で、このステージロード方法がほんとうにこれでいいのかいまいち自信が持てません。今のところ問題なく動作はしてはいますが、これからステージを追加していく前に、一度本当に問題ないかを確認したいと思い、質問しに来ました。全部追加してから問題に気づいた、となったら地獄を見る羽目になると思うので......俺ならこうするとか、これじゃロード長くなるぞとか、なんでもいいので、気軽に書き込んでください。ステージ間ワープを作りましたが、自信がないので見てください。4年前ステージロード方法についてはステージが少ないなら一応これでもいいんじゃないでしょうか。ステージが多いならハードコードではダメですね。どちらかというと他の部分が気になります。new/deleteではなくスマートポインタを使ってください。Facadeのつもりなのか知れませんが、GameMngクラスが大きすぎます。これでは大量のグローバル関数を定義しているのと同じでクラスの意味がまるでないですよね。描画処理を分離しましょう。フェードイン処理がGameMng_StageLoadにあるのはおかしいです。ステージ間ワープを作りましたが、自信がないので見てください。4年前new/deleteではなくスマートポインタを使ってください。unique_ptrをつかってみました。使ってみて、思ったのが、これをロードの部分に用いる場合。※下のコードは実際に試したものではなく軽い例です。Stage(STAGE_BASE));/*deleteせずにいきなり確保しておk*/こういう風にできるという解釈であってるんですよね?GameMngクラスが大きすぎます。最近、ゲームのベースが出来上がったおかげで、オブジェクトが当時より増え、このGameMngクラスを介してやり取りするものがものすごく多くなって、とても困ってるんです。太っちゃって、ものすごいデブです。敵、プレイヤー、ワープポイント、ステージ、ステージギミックなどなど、ゲーム上の全てのオブジェクトが、お互いの情報をここでやり取りしちゃってます。GameMngクラスというデブ駅を、各オブジェクトのゲッターセッターがぞろぞろと行き来してる感じで、朝の通勤ラッシュみたいになっちゃってます。掃除するものが多いうえに、設計の知識がほとんどないため、どこから手を付けたらいいか分からず、ものすごい戸惑っています。よろしければ、アドバイスをいただけないでしょうか。全体の設計を見直したいです。ステージが多いならハードコードではダメですね。ステージは拠点も含めて9ステージあります。メニュー画面の作り方(C++編)http://dixq.net/g/sp_06.htmlここを参考にちょっと書き換えてみようかと思いましたが、ゲームパートのベースであるGameMngクラスを書き直したい。いうか設計自体を見直したいので、いったん後回しにします。描画処理を分離しましょう。フェードイン処理がGameMng_StageLoadにあるのはおかしいです。