亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? level.h

?? RGA: Biowaste Game Example This C++ application demonstrates how to create a 2D mobile game for S60
?? H
字號:
/*
* ==============================================================================
*  Name        : Level.h
*  Part of     : RGA Game Example
*  Interface   :
*  Description : game level
*  Version     : 1.0
*
*  Copyright (c) 2007-2008 Nokia Corporation.
*  This material, including documentation and any related
*  computer programs, is protected by copyright controlled by
*  Nokia Corporation.
* ==============================================================================
*/

#ifndef __LEVEL_H__
#define __LEVEL_H__


#include "ExampleApplication.h"
#include "Tree.h"
#include "Sprite.h"
#include "RotatingSprite.h"

#include <lights.h>		// rga


// forward declarations
class CPlayer;
class CGhost;
class CLevelParser;


/**
 * MapBlock
 * structure hold information of single map block
 * bitmaps are not owned by level
 */
struct TMapBlock
	{
	TInt			iID;
	IBitmap*		iBitmap;
	};
	
	
enum ELevelState
	{
	ELevelStateRunning = 0,
	ELevelStateStarting,
	ELevelStateGameOver,
	ELevelStateComplete
	};

	
class CLevel : public CBase
	{
	public:
		CLevel(CExampleApplication& aApp);
		virtual ~CLevel();
		
		/**
		 * Init
		 * initialise level from given level file
		 * @param aFilename level filename
		 * @return KErrNone if successfull
		 */
		TInt Init(const TDesC& aFilename, TReal64 aTotalMoney);
		
		/**
		 * Update
		 * Update level objects, sprites
		 * @param aFrametime frame time in seconds
		 * @return	game running:EAppUpdateStateContinue
		 * 			game over: EAppUpdateStateInitMenu
		 * 			game over & new high score: EAppUpdateStateInitNewHighScore
		 * 			level complete: EAppUpdateStateInitGame
		 */
		EAppUpdateState Update(const TReal64 aFrametime);
		
		/**
		 * Draw
		 * draw the level map and extra objects like trees
		 * grass and buildings
		 * @param aContext graphics context to draw to
		 */
		void Draw(IGraphicsContext& aContext);
		
		/**
		 * SizeInPixels
		 * @return map size in pixels
		 */
		TSize SizeInPixels() const;
		
		/**
		 * SizeInBlocks
		 * @return map size in blocks
		 */
		TSize SizeInBlocks() const;

		/**
		 * IdFromCoordinate
		 * @param aCoordinate pixel coordinate on level
		 * @return block id at given pixel coordinate, or -1 if
		 * coordinate is out of map
		 */
		TInt IdFromCoordinate(const TPoint& aCoordinate);
		
		/**
		 * BlockIndicesFromCoordinate
		 * @param aCoordinate pixel coordinate on level
		 * @return block map indices on given pixel coordinate, or -1,-1 if out of map
		 */
		TPoint BlockIndicesFromCoordinate(const TPoint& aCoordinate);
		
		/**
		 * SpriteBlock
		 * compute block where sprite is at
		 * @param aSprite
		 * @return block map indices on given pixel coordinate, or -1,-1 if out of map
		 */
		TPoint SpriteBlock(CSpriteBase& aSprite);
		
		/**
		 * CheckCameraLimits
		 * check that camera is within the limits of level
		 * camera position is changed if necessary.
		 */
		void CheckCameraLimits();
		
		/**
		 * LevelState
		 * @return current state of the level
		 */
		ELevelState LevelState() const;
		
		/**
		 * RemainingMoney
		 * @return amount of money currently left
		 */
		TReal64 RemainingMoney() const;

		/**
		 * KeyDown
		 * This handler is called by the game state to pass keypresses to level
		 * @param aKeyCode RGA input key code of the pressed key
		 */
		void KeyDown(TUint32 aKeyCode);
		

	private:	// new functions

		/**
		 * UpdateGame
		 * update game when its running normally
		 * @param aFrametime frametime of the application
		 */
		void UpdateGame(TReal64 aFrametime);
		
		/**
		 * DrawRadar
		 * draw the level radar to application back buffer
		 * @param aRect rectangle to draw radar to
		 */
		void DrawRadar(const TRect& aRect);
		
		/**
		 * UpdateInfoAreaText
		 * @param aLevelMoney amount of level money to print
		 * @param aTotalMoney amount of total money to print
		 */
		void UpdateInfoAreaText(const TReal64 aLevelMoney,
								const TReal64 aTotalMoney);
		
		/**
		 * CreateTreeLayers
		 * create rotated layers for trees
		 * these layers are shared with all trees on
		 * the level
		 * @param aNumLayers number of layers to create
		 * @param aBitmap tree image
		 * @param aMask tree alpha mask
		 * @param aHeight	total height of the layers. This value is
		 * 					divided to the layers evenly. More height
		 * 					layer has, more perspective effect is
		 * 					used when drawing
		 * @param aLayerArray pointer to array that stores the layer
		 * @return KErrNone if successful
		 */
		TInt CreateTreeLayers(	const TInt aNumLayers,
								IBitmap* aBitmap,
								IBitmap* aMask,
								const TReal64 aHeight,
								RArray<TTreeLayer>* aLayerArray);
		
		/**
		 * ReleaseTreeLayers
		 * release layer data allocated in CreateTreeLayers function
		 * @param aLayerArray pointer to array which data is released
		 */
		void ReleaseTreeLayers(RArray<TTreeLayer>& aLayerArray);
		
		/**
		 * DeleteSpriteArray
		 * @param aArray sprite array to delete
		 */
		void DeleteSpriteArray(RArray<CSpriteBase*>& aArray);
		
		/**
		 * AddBush
		 * add new bush sprite to specified position on level
		 * @param aPos position of the sprite
		 */
		void AddBush(const TPoint& aPos);
		
		/**
		 * AddTree
		 * add new tree to specified position on level
		 * @param aPos center position of the tree
		 * @param aLayerArray pointer to array where to get tree layers
		 */
		void AddTree(const TPoint& aPos, RArray<TTreeLayer>* aLayerArray);
		
		/**
		 * AddGhost
		 * create new ghost and add to sprite list
		 * @param aStartPos starting position of the ghost
		 * @param aEndPos 'move-to' position of the ghost
		 * @param aExtraParam ghost specific value
		 * @param aBitmapIndex type of the ghost
		 */
		void AddGhost(	const TPoint& aStartPos,
						const TPoint& aEndPos,
						const TInt aExtraParam,
						const TInt aBitmapIndex);
		
		/**
		 * AddBonus
		 * add bonus items to level
		 * @param aPos position of the bonus
		 * @param aBitmapIndex type of the bonus
		 * @param aId bonus identifier
		 */
		void AddBonus(	const TPoint& aPos,
						const TInt aBitmapIndex,
						const TUint32 aId);
		
		/**
		 * LoadCoordinate
		 * load coordinate from level file
		 * @param aParser level parser object
		 * @return block coordinate
		 */
		TPoint LoadCoordinate(CLevelParser& aParser);
		
		/**
		 * LoadPixelCoordinate
		 * load pixel coordinate from level file
		 * @param aParser level parser object
		 * @return coordinate
		 */
		TPoint LoadPixelCoordinate(CLevelParser& aParser);
		
		/**
		 * BlinkBacklight
		 * set backlight blinking if not blinking already
		 */
		void BlinkBacklight();
		
	private:	// data
		CExampleApplication&	iApp;
		
		TSize					iBackBufferSize;
		
		TInt					iMapWidth;
		TInt					iMapHeight;
		
		TMapBlock*				iBlocks;
		
		TVector2				iCamera;
		
		TReal64					iWaterAnimationPhase;
		
		CPlayer*				iPlayer;
		TPoint					iGoalBlock;
		
		TReal64					iRemainingMoney;
		TReal64					iMoneyWasteSpeed;
		TReal64					iTotalMoney;
		TReal64					iTempRemainingMoney;
		HBufC*					iLevelName;
		
		RArray<CSpriteBase*>	iSprites;
		RArray<CSpriteBase*>	iGhosts;
		RArray<CSpriteBase*>	iBonuses;
		RArray<CSpriteBase*>	iTrees;
		
		RArray<TTreeLayer>		iTree01Layers;
		RArray<TTreeLayer>		iTree02Layers;
		
		IBitmap*				iTextBuffer;
		IGraphicsContext*		iTextBufferContext;

		TReal64					iInfoAreaUpdateTimer;
		
		ELevelState				iLevelState;
		
		TReal64					iStateTimer;
		
		TUint32					iCurrentBonus;
		TReal64					iBonusTimer;
		
		ILight*					iBackLight;
		TReal64					iBlinkInterval;
		TInt					iBlinkCount;
		
		TBool					iShowFPS;
		CSettings*				iSettings;
	};
	

#endif /*__LEVEL_H__*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日本一道本在线视频| 伦理电影国产精品| 国产精品不卡在线观看| 日本一区二区三区四区| 久久精品亚洲精品国产欧美kt∨| 久久这里只有精品视频网| 日韩免费高清av| 久久精品欧美一区二区三区不卡| www久久精品| 国产精品免费视频一区| 国产精品久久久久久久午夜片| 亚洲婷婷综合久久一本伊一区| 亚洲人成精品久久久久久| 亚洲最新视频在线观看| 日韩精品91亚洲二区在线观看| 免费在线看一区| 高清国产午夜精品久久久久久| 成人精品电影在线观看| 欧美制服丝袜第一页| 91精品国产综合久久久蜜臀粉嫩| 日韩免费视频线观看| 国产精品盗摄一区二区三区| 一区二区三区四区蜜桃| 蜜臀久久久久久久| 成人午夜视频网站| 欧美精品亚洲二区| 久久精品亚洲精品国产欧美 | 日本欧美在线观看| 精品一二线国产| 91污在线观看| 日韩一二在线观看| 国产精品第五页| 美女爽到高潮91| 99精品国产91久久久久久 | 大美女一区二区三区| 色域天天综合网| 亚洲精品一区二区在线观看| 亚洲四区在线观看| 国产一区二区三区视频在线播放 | 亚洲国产毛片aaaaa无费看 | 九九视频精品免费| 成人精品免费网站| 日韩一区二区三区高清免费看看| 国产精品亲子乱子伦xxxx裸| 日本不卡不码高清免费观看| 91亚洲精华国产精华精华液| 欧美草草影院在线视频| 亚洲bdsm女犯bdsm网站| 波多野结衣的一区二区三区| 精品国产第一区二区三区观看体验| 亚洲欧美激情插| 成人午夜碰碰视频| 精品电影一区二区三区 | 国产精品美女久久久久久久久 | 色香蕉成人二区免费| 欧美精品一区二区三区蜜臀| 天堂成人国产精品一区| 在线国产亚洲欧美| 综合分类小说区另类春色亚洲小说欧美| 精油按摩中文字幕久久| 欧美丰满嫩嫩电影| 亚洲国产一区二区三区青草影视| 91麻豆蜜桃一区二区三区| 久久久久高清精品| 国产成人在线观看免费网站| 精品美女在线播放| 精品中文字幕一区二区| 欧美一区二区三区四区高清| 亚洲成av人**亚洲成av**| 色欧美88888久久久久久影院| 1000部国产精品成人观看| 福利一区二区在线观看| 国产精品看片你懂得| 波多野结衣视频一区| √…a在线天堂一区| 91欧美一区二区| 亚洲靠逼com| 欧美视频在线一区二区三区 | 国产成人精品影视| 国产精品天天摸av网| 99re这里都是精品| 亚洲国产一区二区视频| 日韩一区二区三区视频| 国产综合色视频| 国产精品狼人久久影院观看方式| 91视频国产资源| 亚洲一区二区在线观看视频| 欧美日韩专区在线| 美日韩黄色大片| 国产亲近乱来精品视频| 99r精品视频| 首页国产欧美久久| 久久婷婷国产综合精品青草| 成人午夜私人影院| 亚洲最色的网站| 精品卡一卡二卡三卡四在线| 国产一区二区三区免费在线观看| 国产精品毛片久久久久久久| 欧洲另类一二三四区| 蜜臀av性久久久久蜜臀aⅴ| 久久久国产综合精品女国产盗摄| 97精品电影院| 久久精品噜噜噜成人88aⅴ| 亚洲欧美在线高清| 欧美一区二区成人| 99久免费精品视频在线观看| 性久久久久久久久久久久| 久久一区二区三区国产精品| 欧美制服丝袜第一页| 国产一区二区在线观看视频| 怡红院av一区二区三区| 久久色视频免费观看| 一本一本久久a久久精品综合麻豆| 日韩激情一区二区| 亚洲视频你懂的| 久久精品网站免费观看| 91精品国产免费久久综合| 9l国产精品久久久久麻豆| 青青国产91久久久久久| 亚洲精品videosex极品| 久久影院视频免费| 666欧美在线视频| 日本久久一区二区三区| 成人免费va视频| 精品一区二区三区在线播放视频| 亚洲精品ww久久久久久p站| 国产女人18毛片水真多成人如厕| 欧美日韩不卡视频| 色婷婷久久99综合精品jk白丝| 国内欧美视频一区二区| 日本欧美一区二区三区乱码| 亚洲综合丝袜美腿| 亚洲人亚洲人成电影网站色| 2022国产精品视频| 欧美一级久久久久久久大片| 欧美午夜影院一区| 一本久久a久久精品亚洲| 成人h动漫精品| 成人自拍视频在线| 国产高清精品网站| 国产一区二区三区四区在线观看| 久久成人免费网| 日本不卡视频在线| 美女脱光内衣内裤视频久久网站 | 国产精选一区二区三区| 日本色综合中文字幕| 婷婷久久综合九色国产成人| 亚洲国产日韩精品| 午夜久久电影网| 亚洲aaa精品| 七七婷婷婷婷精品国产| 日本vs亚洲vs韩国一区三区二区| 视频在线观看91| 久久av资源网| 国产一区二区三区日韩 | 免费在线看成人av| 蜜桃av噜噜一区| 国内一区二区在线| 懂色av一区二区夜夜嗨| 91最新地址在线播放| 色狠狠色狠狠综合| 91精品国产一区二区人妖| 在线综合视频播放| 精品国产成人系列| 欧美国产日韩在线观看| 亚洲精品第一国产综合野| 亚洲国产一区视频| 精品在线免费视频| 成人h精品动漫一区二区三区| 99re热视频精品| 欧美人伦禁忌dvd放荡欲情| 555夜色666亚洲国产免| 久久亚区不卡日本| 亚洲欧洲日韩在线| 午夜精品福利久久久| 久久 天天综合| 成人app下载| 欧美久久久久久久久中文字幕| 欧美群妇大交群的观看方式 | 粉嫩在线一区二区三区视频| av激情成人网| 欧美高清hd18日本| 欧美国产日韩在线观看| 亚洲成av人影院在线观看网| 精品一二线国产| 色综合天天在线| 日韩一区二区电影网| 亚洲人成网站色在线观看| 日韩va亚洲va欧美va久久| 成人精品免费看| 欧美成人欧美edvon| 综合久久国产九一剧情麻豆| 日韩高清不卡一区二区| 成人自拍视频在线| 日韩免费电影一区| 亚洲国产日韩a在线播放| 国产麻豆91精品| 在线成人av网站| 最新久久zyz资源站| 国产综合色在线|