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

📄 samplecontainer.h

📁 稿件名称:基于Symbian OS的S60手机游戏图像处理 稿件作者:王庚 程序名称:Sample 运行环境:Win XP;VC++ 6.0
💻 H
字号:
/*
* ============================================================================
*  Name     : CSampleContainer from SampleContainer.h
*  Part of  : Sample
*  Created  : 2005-09-27 by 
*  Description:
*     Declares container control for application.
*  Version  :
*  Copyright: 
* ============================================================================
*/

#ifndef SAMPLECONTAINER_H
#define SAMPLECONTAINER_H

// INCLUDES
#include <coecntrl.h>

#include "coemain.h"		// MCoeForegroundObserver

const int SCREEN_WIDTH = 176;
const int SCREEN_HEIGHT = 208;   
// FORWARD DECLARATIONS
class CEikLabel;        // for example labels

// CLASS DECLARATION

/**
*  CSampleContainer  container control class.
*  
*/
class CSampleContainer : public CCoeControl, MDirectScreenAccess, MCoeForegroundObserver
    {
    public: // Constructors and destructor

        enum TMbmImages
		{
			EMbmImagesImage1,
			EMbmImagesImage2,
			EMbmImagesImage2_mask
		};


        void ConstructL(const TRect& aRect);
        ~CSampleContainer();

        TInt CountComponentControls() const;
        CCoeControl* ComponentControl(TInt aIndex) const;

        void Draw(const TRect& aRect) const;
        
    private: 
        void InitGDI();
		///周期回调函数
		static TInt PeriodicCallBack(TAny *pAny);
		///周期回调函数具体实现即游戏主循环
		void GameCycle();
		// 继承 MDirectScreenAccess
		void AbortNow(RDirectScreenAccess::TTerminationReasons aReason);
		void Restart(RDirectScreenAccess::TTerminationReasons aReason);
		// 继承 MCoeForegroundObserver
		void HandleGainingForeground();
		void HandleLosingForeground();
		
		///处理来电,前后台切换等事件的实现函数
		void AbortNowImpl();
		void StartL();
		void RestartImpl();
		// 重置背景表面数据头指针
		void ResetBackSurfDataPtr();
		// 加载位图
		CFbsBitmap* CreateBitmapLC(const TDesC& aFileName,TInt aId);
		// 更新数据
		void Update();
		// 重置GC
		void PartialReset(CFbsBitGc& aGc) const;
			
	private:
		CFbsBitmap*			m_pBackSurface;				// 背景表面	
		CFbsBitGc*    		m_pBackGc;					// 设备环境
		CFbsBitmapDevice*	m_pBackDevice;				// 图形设备
		TBitmapUtil*		m_pBmpUtil;					// TBitmapUtil实例
		TUint16*			m_pBackSurfaceData;			// 背景平面内存入口地址
		TBool				m_bAbort;					// 程序当前状态,是否是abort状态
		TBool				m_bGainingForeground;		// 程序当前是否是前台
		CFbsBitGc*			m_pGc;						// m_pDSA->Gc()
		CPeriodic*			m_pPeriodic;				// 周期类	
		
		CDirectScreenAccess* m_pDSA;				    // 直接访屏类

		CFbsBitmap*			m_pBitmap_Ball;				// 红球图片
		CFbsBitmap*			m_pBitmap_Background;		// 背景图片
		CFbsBitmap*			m_pBitmap_Ball_Mask;		// 红球的蒙版位图

		TPoint				m_iBallPos;					// 球位置
		int					m_iXVelocity;				// X方向速度
		
    };

#endif

// End of File

⌨️ 快捷键说明

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