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


#ifndef _CTANK_H_ 
#define _CTANK_H_ 
 
#include  
 
enum eDirection 
{ 
	LEFT_DIRECTION = 0, 
	RIGHT_DIRECTION, 
	UP_DIRECTION, 
	DOWN_DIRECTION 
}; 
 
class cTank : public CEntity 
{ 
public: 
	//Cree un tank avec les sprites TankSprites, a la position (TankX, TankY). Son ID sera TankID. 
	//Si player == 1 ou 2, il sera dirige par le 1er ou le second joueur, sinon il ne recevera pas l'input 
	cTank(CBasicSprite *TankSprites[4], int TankX, int TankY, int TankID, int Player); 
	virtual ~cTank() {} 
	 
	//Place le tank à sa nouvelle position  
	virtual bool OnAnimate(float ElapsedTime, float AbsoluteTime); 
	//Lors d'une collision 
	void OnCollide(CEntity *CollidingEntity); 
	//Deplace le tank dans la direction donnee 
	void MoveTank(int Direction); 
	//Pose une bombe 
	void DropBomb(); 
	//Tire un missile 
	void ShootRocket(); 
	//Fonction qui gere l'input 
	void OnUserInput(CInput::VirtualKeys VirtualKey, float ElapsedTime, float Value); 
	//Lorsque le tank est detruit 
	void OnDying(); 
	 
	//Le nombre de	bombes que le tank peut encore poser 
	int NbBombs; 
	//Nombre de missiles restants 
	int NbRockets; 
	 
protected: 
	//ID unique du tank 
	int m_TankID; 
	 
private: 
	//Effectue les tests de collision avec la map et modifie la position du tank si necessaire 
	void MapCollisionAndResponse(); 
	 
	//Sprites du tank 
	CBasicSprite *m_TankSprites[4]; 
	//Vitesse du tank en pixels/seconde 
	float m_Speed; 
	//La puissance des bombes du tank 
	int m_BombPower; 
	//Le nombre des differents bonus ramasses 
	int m_NbPickedUpBonus[4]; 
	//La direction de deplacement du tank suivant X et Y 
	Vector3 m_MovementDirection; 
	//L'orientation du tank (vers la gauche, la droite, le haut ou la bas) 
	int m_TankDirection; 
	//L'etat des chenilles (utile pour donner l'impression que le tank roule) 
	int m_WheelState; 
	//Le temps ou le dernier missile a ete tire 
	float m_TimeLastRocketHasBeenShot; 
	//Joueur qui dirige le tank 
	int m_Player; 
}; 
 
#endif