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

📄 cscreeneffect.h

📁 网络游戏龙族 完整的登陆器 C++ 源代码
💻 H
字号:
#ifndef _CSCREENEFFECT_H_
#define _CSCREENEFFECT_H_


#define MAX_ARG_DATA_SIZE	50
#define	MAX_EFFECT_SPRITE	20
#define	MAX_SPRITE_TYPE		50	
#define	MAX_FRAME_COUNT		40

#include <list>
#include "effect.h"

struct t_FogArg
{
	char	SpriteIndex;
	POINT	Location;
	DWORD	StartTime;
	DWORD	DelayTime;
};

struct t_BreathArg
{
	char	SpriteIndex;
	POINT	StartLocation;
	POINT	DestLocation;
	int		Direction;
	int		Power;
	DWORD	StartTime;
};

struct t_CommonArg						// 酒痹刚飘甫 傍烹栏肺 静扁困茄巴.
{
	union 
	{
		char			Data[MAX_ARG_DATA_SIZE];
		t_FogArg		FogArg;
		t_BreathArg		BreathArg;
	};
};


class cParticle					// Interface Class
{
public :
	virtual cParticle*	Insert(cParticle* Arg)=0;
	virtual void		GetData(t_CommonArg* Arg)=0;
	virtual int			Draw()=0;
	virtual int			CheckAndRemove()=0;
};

typedef list<cParticle*>			tParticleList;
typedef tParticleList::iterator		tParticleListItor;

class cParticleManager
{
	tParticleList	ParticleList;
	
	cParticle*		m_pContinueParticle;
	int				m_iContinueparticleCount;
	bool            m_bDisplay; // CSD-030306
	
public:
	cParticleManager();
	~cParticleManager();
	
	void		DeleteParticle();
	void		Insert(cParticle* Particle);
	void		Draw();
	void		SetContinueParticle(cParticle* Particle,int Count);
	void		CheckContinueParticle();
public:
	void SetDisplay(bool bDisplay)
	{	//< CSD-030306
		m_bDisplay = bDisplay;
	}	//> CSD-030306
};

class cFog : public cParticle
{
	char			m_cSpriteIndex;
	char			m_cFogType;
	POINT			m_Location;
	unsigned char	m_cFrameCount;
	DWORD			StartTime;
	DWORD			DelayTime;
	
public :
	
	cFog(t_CommonArg* Arg);
	
	cParticle*	Insert(cParticle* Arg);
	void		GetData(t_CommonArg* Arg);
	void		GetArgData(cParticle* Arg,t_FogArg* ReturnArg);
	int			Draw();
	int			CheckAndRemove();
};

class cBreath : public cParticle
{
	char			m_cSpriteIndex;
	POINT			m_Start;
	POINT			m_Dest;
	char			m_cDirection;						// 规氢
	unsigned char	m_ucPower;							// 柳青 加档
	unsigned char	m_cFrameCount;						// 橇饭烙 墨款飘
	char			m_cStatus;							// 惯荤 登菌唱 救登菌唱.
	DWORD			m_uiStartTime;
	
public :
	
	cBreath(t_CommonArg* Arg);
	
	cParticle*	Insert(cParticle* Arg);
	void		GetData(t_CommonArg* Arg);
	void		GetArgData(cParticle* Arg,t_CommonArg* ReturnArg);
	int			Draw();
	int 		CheckAndRemove();
};

struct tEffectFrameList
{
	unsigned char	CheckRepeat;
	unsigned char	MaxFrame;
	unsigned char	TotalFrame;
	unsigned char*	Frame;
};

class cEffectSpriteManager
{
	char*				m_pSpriteData[MAX_EFFECT_SPRITE];
	Spr					m_Sprite[MAX_SPRITE_TYPE][MAX_FRAME_COUNT];
	tEffectFrameList	m_pEffectList[MAX_EFFECT_SPRITE];
	
public :
	
	cEffectSpriteManager();
	~cEffectSpriteManager();
	
	int		LoadEFFile(int Index);
	int		LoadSprite(int Index,int FrameCount);
	Spr*	GetSpriteData(int Index,unsigned char& Frame);
	
	void	CheckAndLoadSpriteData(int Index);
};


extern cParticleManager			g_ParticleManager;
extern cEffectSpriteManager		g_EffectSpriteManager;



/*struct FogObject
{
POINT	Location;
char	FogType;				//胶橇扼捞飘锅龋
int		FrameCount;
DWORD	StartTime;				// 矫累矫埃
DWORD	DelayTime;				// 辆丰矫埃

  FogObject(t_CommonArg* CommonArg)
  {
		FogType		=	CommonArg->FogArg.FogType;
		Location	=	CommonArg->FogArg.Location;
		StartTime	=	CommonArg->FogArg.StartTime;
		DelayTime	=	CommonArg->FogArg.DelayTime;
		FrameCount	=	0;
		}
		
};*/

/*
typedef list<FogObject*> tFogList;
typedef tFogList::iterator FogListItor;

  class cSEffectManager
  {
  char*				FogPicBuffer[3];
  Spr					FogPic[3][30];			// Fog1 : 厩飞沤祸 20橇饭烙 Fog2 : 付过沤瘤 28橇饭烙
  int					FogFrameCount[3];		// Fog狼 橇饭烙 墨款飘捞促.
  int					FogStatus[3];			//泅犁 靛肺雷牢瘤 酒囱瘤 唱鸥郴绰 函荐
  int					FogDelay[3];			// 唱鸥朝 掉饭捞蔼
  
	tFogList			FogList[3];				// 器弊 坷宏璃飘狼 肮荐 
	
	  public :
	  cSEffectManager();
	  ~cSEffectManager();
	  
		void				ClearAllFog();
		void				ClearFog(int Index);
		
		  void				ClearFogList(int Type);
		  void				ClearFogList();
		  
			
			  int					LoadFogData(char* FileName,int FogIndex);
			  void				InsertFog(int FogType,int X,int Y,DWORD StartTime,DWORD DelayTime);
			  void				PrepareForDrawing(int Type,DWORD DelayTime,POINTS* Location);
			  void				FogDraw(int Type);
			  void				FogDraw();
			  
				};
				
				  struct DragonBreath
				  {
				  POINT	Start;
				  POINT	Dest;
				  int		Direction;						// 规氢
				  int		Power;							// 柳青 加档
				  int		FrameCount;						// 橇饭烙 墨款飘
				  int		Status;							// 惯荤 登菌唱 救登菌唱.
				  
					DragonBreath(t_CommonArg* CommonArg)
					{
					Start		=	CommonArg->BreathArg.StartLocation;
					Dest		=	CommonArg->BreathArg.DestLocation;
					Direction	=	CommonArg->BreathArg.Direction;
					Power		=	CommonArg->BreathArg.Power;
					FrameCount	=	0;
					Status		=	0;
					}
					};
					
					  typedef list<DragonBreath*>	tDragonBreathList;
					  typedef tDragonBreathList::iterator	DragonBreathItor;
					  
						#define DRAGON_BREATH_FRAME_COUNT	6
						
						  class cDragonEffect
						  {
						  tDragonBreathList	DragonBreathList;
						  
							char*				BreathPicBuffer;
							Spr					BreathPic[30];			// Fog1 : 厩飞沤祸 20橇饭烙 Fog2 : 付过沤瘤 28橇饭烙
							
							  public :
							  
								cDragonEffect();
								~cDragonEffect();
								
								  void ClearAllBreath();
								  void ClearSprite();
								  
									int LoadBreathData(char* strFileName);
									void InsertBreath(POINT tStart,POINT tDest,int tDirection,int tPower);
									void BreathPrepare(POINT tStart,POINT tDest,int Count);
									void DrawBreath();
									
};*/


#endif

⌨️ 快捷键说明

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