Exemple #1
0
void GameFrame::DelFromeParent()
{
    GameFrame* parentFrame = dynamic_cast<GameFrame*>(getParent());
    if(parentFrame)
    {
        parentFrame->DelChildFrame(this);
    }
}
Exemple #2
0
// エントリーポイントを作成
INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, INT){

	// コンソールウィンドウが表示される
	ConsoleWindow::Create();

	// このクラスがメインループを持っているクラス
	GameEntry* entry = new GameEntry();

	// 独自に作成したフレームオブジェクトのオブジェクトを作成
	GameFrame* frame = new GameFrame();

	// 初期化
	entry->Initialize(false, L"Palm of God");
	frame->Initialize(*entry->GetWindowHandle(), POINT{800,600},false,1000000);

	// この関数を呼び出すことによって、画面の背景色の変更ができる
	// デフォルトの設定では黒が設定されている
	frame->BackgroundColor(Color(0.0f, 0.0f, 0.0f, 1.0f));
	
	// エントリークラスにメインループに使うFrameオブジェクトを設定
	entry->SetGameFrame(frame);

	// 最初のシーンのオブジェクトを作成
	GameScene* firstScene = new SceneTitle();


	// 最初のシーンの設定
	GameSceneManager::SetCurrentScene(firstScene);

	// 実行するロードオブジェクトの作成
	LoadScreen *loadobj = new LoadObj;
	GameSceneManager::SetLoadScreen(loadobj);
	// メインループの開始
	// この関数の内部で,GameFrameオブジェクトのFrameRunningが呼ばれる。
	entry->GameRun();

	// フレームオブジェクトの破棄
	delete frame;
	frame = nullptr;

	// エントリーオブジェクトの破棄
	delete entry;
	entry = nullptr;

	// コンソールウィンドウを破棄したいときはこの関数を呼ぶ
	//ConsoleWindow::Close();
	return 0;
}
Exemple #3
0
bool FrameManager::CreateToScene(string name)
{
    GameFrame* frame = CreateFrame(name);
    if(!P_VALID(frame))
    {
        return false;
    }
    
    if(!frame->LoadUI())
    {
        return false;
    }
    frame->RegisterEvent();
    mCurScene->addChild(frame);
    DWORD dwId = Util::Crc32((LPBYTE)name.data(), name.length());
    mFrames[dwId] = frame;
    frame->retain();
    return true;
}
Exemple #4
0
GameFrame* GameFrame::AddChildFrame(string className, string name)
{
    DWORD dwId = GT_INVALID;
    if(name == "")
        dwId = UtilTool::Crc32((LPBYTE)className.data(), className.length());
    else
        dwId = UtilTool::Crc32((LPBYTE)name.data(), name.length());
    
    if(!GT_VALID(dwId))
        return nullptr;
    
    FrameMapItor itor = mFrames.find(dwId);
    if(itor != mFrames.end())
        return nullptr;
    
    GameFrame* frame = FrameManager::Shared()->CreateFrame(className);
    if(!P_VALID(frame))
    {
        return nullptr;
    }
    
    if(!frame->LoadUI())
    {
        return nullptr;
    }
    frame->RegisterEvent();
    if(dwId == FrameManager::Shared()->GetMsgBoxID())
    {
        //todo
        this->addChild(frame, 9999999);
    }
    else
        this->addChild(frame);
    mFrames[dwId] = frame;
    frame->retain();
    return frame;
}