www.pudn.com > sxdl.zip > bounce.h


#ifndef Bounce_Included  
#define Bounce_Included  
 
#include "sxdl.h" 
 
class CBall : public CEntity  
{ 
public: 
	CBall ( CBasicSprite * _Sprite , int x , int y , int cx , int cy ) ;   
	virtual ~CBall ( void ) { } ; 
	virtual void OnCollide ( CEntity * /* CollidingEntity */ ) ;  
	CBasicSprite * Sprite ;  
	float SizeRatio ;  
	Vector3 InitialScale ;  
} ;  
 
class CBrick : public CEntity  
{ 
public: 
	CBrick ( int Hits , CBasicSprite * Sprite , int x , int y , int cx , int cy ) ;  
	virtual ~CBrick ( void ) { } ; 
	virtual void OnCollide ( CEntity * CollidingEntity ) ;  
	virtual void OnDying ( ) ;  
} ;  
 
class CPad : public CEntity  
{ 
public: 
	CPad ( int x , int y , int cx , int cy ) ;  
	virtual ~CPad ( void ) { } ; 
	virtual void OnUserInput ( CInput::VirtualKeys VirtualKey , float ElapsedTime , float Value ) ;  
	void OnUpDown    ( float ElapsedTime , float Value ) ;  
	void OnLeftRight ( float ElapsedTime , float Value ) ;  
} ;  
 
class CWall : public CEntity  
{ 
public: 
	CWall ( int x , int y , int cx , int cy ) ;  
	virtual ~CWall ( void ) { } ; 
	virtual void OnCollide ( CEntity * CollidingEntity ) ;  
	Vector3 Normal ;  
} ;  
 
class Game : public SxDL 
{ 
public: 
	Game ( void ) { } ; 
	virtual ~Game ( void ) { } ; 
 
	virtual void OnStartup ( void ) ;  
	virtual void OnCreateGame ( void ) ;  
	virtual void OnNewGame ( void ) ;  
	virtual void OnEndGame ( void ) ;  
	virtual void OnNewLevel ( void ) ;  
	virtual void OnRenderText ( float ElapsedTime , float AbsoluteTime ) ;  
	virtual void OnTimer ( int TimerId ) ;  
	inline void  OnGameOver ( void ) ;  
 
	// Timers Ids  
	enum { StartGame = 1 , CreateNewBall = 2 } ;  
	// Resources used by this game  
	enum ResourceIds  
	{ 
		Null        = 0  ,  
		// Sounds 
		NewLevel    = 10 ,  
		WallHit     = 11 ,  
		BrickHit    = 12 ,  
		NewBall     = 13 ,  
		GameOver    = 14 ,  
		// Music 
		MidiMusic   = 21 ,  
		// Textures 
		Flare		= 32 ,  
		Brick		= 33 ,  
		Anna1		= 34 ,  
		Anna2		= 35 ,  
	} ;  
 
	enum FamilyIds  
	{ 
		Walls        = 10 ,  
		Bricks       = 20 ,  
		Balls        = 30 ,  
		Pads  		 = 40 ,  
		Ground       = 50 
	} ;  
	CCollider * Collider_BallsWalls    ; 
	CCollider * Collider_BallsBalls    ; 
	CCollider * Collider_BallsBricks   ; 
	CCollider * Collider_BallsGround   ; 
	CCollider * Collider_BallsPads     ;  
	CCollider * Collider_WallsPads     ;  
	CCollider * Collider_BricksGround  ;  
	CCollider * Collider_BricksPads    ;  
 
	static Resource Resources [ ] ;  
	static CBasicSprite * Sprites  [ 12 ] ;  
	static CBasicSprite * BrickSprites [ 12 ] ;  
	 
	CPad * Pad ;  
	int BricksInGame ;  
	void CreateBricks ( void ) ;  
	void BrickDying ( void ) ;  
	void CreateBall ( void ) ;  
	int Score ;  
	int Level ;  
 
	CFont * Font ;  
	CBackground * Backdrop ;  
} ; 
 
#endif