#経緯
個人でゲーム制作をしています。
自分の設計では少し問題があるように感じたので質問をしました。
#やりたいこと
あるオブジェクトから同一シーン内にあるほかのオブジェクトにアクセスしたいが
オブジェクトから目的のオブジェクトにアクセスする方法がわからない
#質問
例えば、下のヘッダーにあるTestSceneクラスにあるplayerオブジェクトから
gridオブジェクトへスマートにアクセスするにはどうしたらいいでしょうか。
C++
1//SceneManager.h 2#pragma once 3 4#include "BaseScene.h" 5#include "Scene_Test.h" 6#include "Scene_Title.h" 7#include "Scene_Game.h" 8#include "Scene_Result.h" 9 10class SceneManager 11{ 12public: 13 enum SceneType 14 { 15 Null = -1, //切り替え先のシーンが決まっていないとき 16 Test, 17 Title, 18 Game, 19 Result, 20 21 SCENE_NUM 22 }; 23 24private: 25 SceneType m_currentScene; //現在のシーン 26 SceneType m_nextScene; //切り替え先のシーン 27 IScene *m_scenes[SCENE_NUM]; //各シーンを一元管理する配列 28 29 //シーンの実体 30 TestScene scene_test; //デバッグ用 31 TitleScene scene_title; //タイトル 32 GameScene scene_game; //ゲーム本編 33 ResultScene scene_result; //リザルト 34 35public: 36 void Init(); //マネージャ初期化処理 37 void Update(); //マネージャ更新処理 38 void ChangeScene(SceneType); //シーンを切り替え 39 40 void InitScene(); //現在のシーンの初期化処理を行う 41 void UninitScene(); //現在のシーンの終了処理を行う 42 void UpdateScene(); //現在のシーンの更新処理を行う 43 void DrawScene(); //現在のシーンの描画処理を行う 44};
C++
1//TestScene.h 2#pragma once 3#include "BaseScene.h" 4#include "Player.h" 5#include "Grid.h" 6 7class TestScene : public IScene 8{ 9private: 10 Player player; 11 Grid grid; 12 13public: 14 void Init()override; 15 void Uninit()override; 16 void Update()override; 17 void Draw()override; 18};
#蛇足
質問からそれたことになりますが、
私の設計やヘッダーを見て、
「こうするといいよー」みたいなこと気づかれましたら、
教えてくださると嬉しいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/08 10:37