⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tetriscontainer.cpp

📁 Symbian开发提高的一个很好的实例,其实现了一个非常好理解的Symbian游戏开发流程
💻 CPP
字号:
#include <eikspane.h>
#include <eiktbar.h>


#include "TetrisContainer.h"
#include "Tetris.hrh"
#include "CEngine.h"
#include "TetrisDocument.h"



// construct and destruct
CTetrisContainer::CTetrisContainer(CTetrisDocument* aDocument) : iDocument(aDocument)
{}

//~CTetrisContainer()
CTetrisContainer::~CTetrisContainer()
{
	if(iEngine)
	{
		//iEngine->Stop();
		delete iEngine;
		iEngine = NULL;
	}
	
	ControlEnv()->RemoveForegroundObserver(*this);
}


// ConstructL()
void CTetrisContainer::ConstructL(const TRect& aRect)
{
    CreateWindowL();

    // Set the windows size
    SetRect(aRect);

	ActivateL();

	SetFullScreen();

	ControlEnv()->AddForegroundObserverL( *this );
	// Start the engine
	iEngine = CEngine::NewL( iDocument->Model(), SystemGc(), Window(), 
							CCoeEnv::Static()->ScreenDevice()->DisplayMode());

	//iEngine->Start();
}

///////////////////////////////////////////////////////////////
// Method from Parent

void CTetrisContainer::HandleGainingForeground()
{
	iEngine->Start();
}

void CTetrisContainer::HandleLosingForeground()
{
	iEngine->Stop();
}


// Other Method

// SetFullScreen
void CTetrisContainer::SetFullScreen()
{
	CEikButtonGroupContainer*	iToolBar;		// use
	CEikStatusPane*				iStatusPane;	// use

	MEikAppUiFactory* f = CEikonEnv::Static()->AppUiFactory();
	iStatusPane = f->StatusPane();
	iToolBar = f->ToolBar();

	if( iToolBar )
		iToolBar->MakeVisible( EFalse );

	if( iStatusPane )
		iStatusPane->MakeVisible( EFalse );

	SetExtentToWholeScreen();
}

// Command()
void CTetrisContainer::Command(TInt aCommand)
{	
	iEngine->Command(aCommand);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -