?? cscreeneffect.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 + -