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

📄 gamemenu.h

📁 RGA: Biowaste Game Example This C++ application demonstrates how to create a 2D mobile game for S60
💻 H
字号:
/*
* ==============================================================================
*  Name        : GameMenu.h
*  Part of     : RGA Game Example
*  Interface   :
*  Description : application menu class
*  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 __GAMEMENU_H__
#define __GAMEMENU_H__

#include "AppState.h"


// TMenuItem
struct TMenuItem
	{
	TUint32				iID;
	TBuf<64>			iText;
	};


class CGameMenu : public CAppState
	{
	public:
		CGameMenu(CExampleApplication& aApp);
		virtual ~CGameMenu();

		/**
		 * Init
		 * Initialise the state
		 * @return KErrNone if successfull
		 */
		virtual TInt Init();
		
		/**
		 * AddMenuItem
		 * add new menu item to menu
		 * @param aItem menu item
		 */
		void AddMenuItem(TMenuItem& aItem);
		
		/**
		 * SelectedMenuItemId
		 * @return ID of the currently selected menu item
		 */
		TInt SelectedMenuItemId() const;
		
		/**
		 * SelectMenuItem
		 * change current selection to given menu item id
		 */
		void SelectMenuItem(TInt aId);
		
		/**
		 * SetPosition
		 * set menu screen position (upper left corner)
		 * @param aPosition position to set
		 */
		void SetPosition(const TPoint& aPosition);
		
		/**
		 * Position
		 * @return current menu position
		 */
		TPoint Position() const;
		
		/**
		 * Size
		 * @return size of the menu with current items, including some space for margins
		 */
		TSize Size() const;
		
		/**
		 * Update
		 * Update application state
		 * @param aFrametime seconds elapsed since last frame
		 * @return state change value
		 */
		virtual EAppUpdateState Update(const TReal64& aFrametime);
		
		/**
		 * Draw
		 * Draw state graphics to given graphics context
		 * @param aContext graphics context to draw to.
		 */
		virtual void Draw(IGraphicsContext& aContext);
		
		/**
		 * KeyDown
		 * This handler is called by the main application object
		 * when any key is pressed
		 * @param aKeyCode RGA input key code of the pressed key
		 */
		virtual void KeyDown(TUint32 aKeyCode);
		
		
	private:
		RArray<TMenuItem>		iMenuItems;
		TInt					iSelectedItem;

		CFont*					iFont;
		
		TPoint					iPosition;
		TSize					iSize;
		TInt					iXMargin;
		TInt					iYMargin;
		TInt					iYStep;
		
		TReal64					iItemShakerCounter;
	};

#endif /* __GAMEMENU_H__ */

⌨️ 快捷键说明

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