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

📄 weather.h

📁 网络游戏魔域源代码 测试可以完整变异
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef _WEATHER_HEAD_KATTY
#define _WEATHER_HEAD_KATTY

#include <windows.h>
#include <Windef.h>
#include "Ani.h"
#include <deque> 
#include "firebug.h"
#include "nd_bitmap.h"
#include "cloud.h"
using namespace std;
class CAni;
const int _MAX_AMOUNT			= 512;//1024;
const int FLYING_MAX_AMOUNT		= 100;
const int LEAF_MAX_AMOUNT		= 200;
const int _LEAF_FRAME			= 24;
const int WORMTYPE				= 10;
const int CLOUDTYPE				= 11;
const int FLYINGTYPE			= 2;
const int DANDELIONTYPE			= 1;
const int FLYFLOWER_FRAME		= 24;
const int FLYFLOWER_PER_LAYER	=  6;


enum{ __RAIN = 1, __SNOW = 2, __LEAF_G = 3,__LEAF_R = 4,__LEAF_Y = 5, __LEAF_Y_R = 6, __LEAF_5 = 7,__LEAF_6 = 8,__LEAF_7 = 9, __FLOWER_1 = 10, __FLOWER_2 = 11,__FLOWER_3 = 12, __SAND = 13,__FLYING_1,__FLYING_2,__FLYING_3,__FLYING_4,__DANDELION,__WORM, __CLOUD};
enum {_RAINSTATUS_NONE	=0, _RAINSTATUS_CREATE, _RAINSTATUS_SPLASH};
enum {_LEAFSTATUS_NONE	=0, _LEAFSTATUS_CREATE, _LEAFSTATUS_SPLASH};
enum {_SNOWSTATUS_NONE	=0, _SNOWSTATUS_CREATE, _SNOWSTATUS_SPLASH};
enum {_SANDSTATUS_NONE	=0, _SANDSTATUS_CREATE, _SANDSTATUS_SPLASH};
enum {_FLYFLOWERSTATUS_NONE	=0, _FLYFLOWERSTATUS_CREATE, _FLYFLOWERSTATUS_STOP,_FLYFLOWERSTATUS_BEGIN,FLYFLOWERSTATUS_PAUSE,FLYFLOWERSTATUS_RESET};
enum {_LEAF_BEGIN = 11, _LEAF_STOP=10 , _LEAF_RESET = 13, _LEAF_NONE = 14, _LEAF_PAUSE};

class CLeaf
{	
	public:
		CLeaf();
		~CLeaf()	{Destroy();}

		BOOL	Create	(int iPosX,int iPosY,int iSceneDeepth,int fWind,int fGravity);
		void	Show	( );
		void	Process	( );	
		void	Destroy	(void);

		BOOL	IsCreated	(void) {if(m_iStatus) return TRUE; else return FALSE;}
		int		GetInt		(double fValue);
		void	GetSplashPos(int& iPosX,int& iPosY)	{iPosX=m_iSplashX;iPosY=m_iSplashY;}
		void	SetPicture	(char *pszFileName)	{strcpy(m_szFileName,pszFileName);}
	private:

		int		m_iLayerFrame;
		int		m_iStatus;
		double	m_dwElapseTime;
		DWORD	m_dwLifeTime;
		DWORD	m_dStayGroundTime;

		int		m_iSize;
		int		m_iSceneDeepth;
		
		int		m_iStartX,m_iStartY;
		int		m_iSplashX,m_iSplashY;
		int		m_iLastPosX,m_iLastPosY;
		int		m_iLastFrame;

		int		m_fGravity;
		int		m_fSpeed;
		int		m_fWind;

		int		m_ibmpFrameIndex;
		char 	m_szFileName[100];
		int		m_bLieOnGround;
	public:
		int		m_nLevel; 
		int		m_fSinA,m_fCosA;
		int		m_iScreenX,m_iScreenY;
		int		m_nLoopCount;		
		DWORD	m_dwLifeBeginTime;
		 	
};


typedef deque<CLeaf *> CLEAF;


class CLeafSys
{
	public:
		CLeafSys(void)	{m_iStatu = _LEAF_NONE; }
		~CLeafSys(void) {Destroy();}

		BOOL Create	(int nWindDir,int nLevel,int nType);
		void Process(int & nStatus);

	private:
		char 	m_szFileName[100];
		int		m_iLeafAmount;
		int		m_iTargetAmount;
		CLEAF	m_Leaf;
	
		int m_nWindDirection;   
		int	m_iStatu;
	 
	public: 
	
		void LeafStop();
		void Destroy();
		void SetLeaf(int nWindDir,int nLevel);
		DWORD	m_dwPauseTime;
		void Pause();
		void Continue();

};



class CRain
{	
	public:
		CRain();
		~CRain()	{Destroy();}

		BOOL	Create	(int iPosX,int iPosY,int iSceneDeepth,int fWind,int fGravity,int nLevel,DWORD dwColor);
		void	Show	();
		void	Process	();
		void	Reset	(void);
		void	Destroy	(void);

		BOOL	IsCreated	(void) {if(m_iStatus) return TRUE; else return FALSE;}
		int		GetInt		(double fValue);
		void	GetSplashPos(int& iPosX,int& iPosY)	{iPosX=m_iSplashX;iPosY=m_iSplashY;}

		void	SetRipple	(char  szFileName[2][100])	{strcpy(m_szFileName[0],szFileName[0]);strcpy(m_szFileName[1],szFileName[1]);}

	private:
		int		m_iStatus;	
		DWORD	m_dwElapseTime;
		DWORD	m_dwLifeTime;
		int		m_iSize;
		int		m_iSceneDeepth;		
		int		m_iStartX,m_iStartY;
		int		m_iSplashX,m_iSplashY;
		int		m_iLastPosX,m_iLastPosY;

		int		m_fGravity;
		int		m_fSpeed;
		int		m_fWind;
		int		m_iRippleFrameIndex;
		char	m_szFileName[2][100];
		int		m_bOnWater;
	public:
		DWORD	m_dwColor;
		int		m_nLevel; 
		int		m_fSinA,m_fCosA;
		DWORD	m_dwLifeBeginTime;

};




typedef deque<CRain *> CRAIN;
enum {_RAIN_BEGIN = 11, _RAIN_STOP=10 ,_ADD_AMOUNT=12 ,_RAIN_RESET = 13, _RAIN_NONE = 14,_RAIN_PAUSE};
class CRainSys
{
	public:
		CRainSys(void);
		~CRainSys(void) {Destroy();}

		BOOL Create	(int nWindDir,int nLevel,DWORD dwColor);
		void Process(int & nStatus);
		void Reset	(void);	
		void PlayRainSound(int iLevel);
		void	RainStop();
		void	Destroy();
		void	SetRain(int nWindDir,int nLevel);
		void	SetColor (DWORD dwColor);
		DWORD	m_dwPauseTime;
		void	Pause();
		void	Continue();
		int		RendBMP(DWORD dwColor);

	private:
	
		DWORD	m_dwColor;
		char	m_szFileName[2][100];	
		int		m_iRainAmount;
		int		m_iTargetAmount;
		CRAIN	m_Rain;
		int		m_nWindDirection;	
		int		m_iStatu;
 	
};



////////////////////////////////////////////////////////////////////////////////////////////
//snow
////////////////////////////////////////////////////////////////////////////////////////////



class CSnow
{	
	public:
		CSnow();
		~CSnow()	{Destroy();}

		BOOL	Create	(int iPosX,int iPosY,int iSceneDeepth,int fWind,int fGravity);
		void	Process	();
		void	Destroy	(void);
		void	Reset	(void);
	
		void	ShowImage	( int iPosX, int iPosY );
		void	Show		(void );

		BOOL	IsCreated	(void) {if(m_iStatus) return TRUE; else return FALSE;}
		void	GetSplashPos(int& iPosX,int& iPosY)	{iPosX=m_iSplashX;iPosY=m_iSplashY;}
		void	SetImageBmp		(char *pszFileName)	{strcpy(m_szFileName,pszFileName);}
	private:
		int		m_iStatus;
		DWORD	m_dwElapseTime;
		DWORD	m_dwLifeTime;
		int		m_iSceneDeepth;
		
		int		m_iStartX,m_iStartY;
		int		m_iSplashX,m_iSplashY;
		int		m_iLastPosX,m_iLastPosY;
		int		m_fGravity;
		int		m_fSpeed;
		int		m_fWind;
		int		m_nStayTick;
		char 	m_szFileName[100];      
	public:	
		int	   m_fSinA,m_fCosA;
		DWORD	m_dwLifeBeginTime;
};


typedef deque<CSnow *> CSNOW;
enum { _SNOW_STOP = 0,_SNOW_BEGIN = 1, _SNOW_NONE=2,_SNOW_RESET = 3,_SNOW_PAUSE};
class CSnowSys
{
	public:
		CSnowSys(void)	{Init();}
		~CSnowSys(void) {Destroy();}
		void Pause();
		void Continue();

		void Init	(void);
		void Destroy(void);
		BOOL Create	(int iWindDir, int iLevel,DWORD dwColor);
		void Process(int & nStatus);
		void Reset	(void);
		void SnowStop();
		void SetSnow(int nWindDir,int nLevel);
	
	private:	
		char		m_szFileName[100];	
		int			m_iSnowAmount;
		CSNOW		m_Snow;
		int			m_iStatu;
		int			m_iWindDir;
		int			m_iTargetAmount;	
		DWORD		m_dwPauseTime;
};



//------------------------------------------------------------------
//沙
//------------------------------------------------------------------

class CSand
{	
	public:
		CSand();
		~CSand()	{Destroy();}

		BOOL	Create	(int iPosX,int iPosY,int iSceneDeepth,int fWind,int fGravity,int nLevel);
		void	Show	();
		void	Process	();
		void	Reset	(void);
		void	Destroy	(void);

		BOOL	IsCreated	(void) {if(m_iStatus) return TRUE; else return FALSE;}
		int		GetInt		(double fValue);
		void	GetSplashPos(int& iPosX,int& iPosY)	{iPosX=m_iSplashX;iPosY=m_iSplashY;}
 
	private:
		int		m_iStatus;
		DWORD	m_dwElapseTime;
		DWORD	m_dwLifeTime;
		int		m_iSize;
		int		m_iSceneDeepth;
		int		m_iStartX,m_iStartY;
		int		m_iSplashX,m_iSplashY;
		int		m_fGravity;
		int		m_fSpeed;
		int		m_fWind;
		int		m_ibmpFrameIndex;
 	public:
		int		m_nLevel;
		int		m_fSinA,m_fCosA;
		int		m_nDir;
		DWORD	m_dwLifeBeginTime;
	
};


typedef deque<CSand *> CSAND;
enum {_SAND_BEGIN = 11, _SAND_STOP=10 ,_SAND_ADD_AMOUNT=12 ,_SAND_RESET = 13, _SAND_NONE = 14,_SAND_PAUSE};
 
class CSandSys
{
	public:
		CSandSys(void)	{m_iStatu = _SAND_NONE;}
		~CSandSys(void) {Destroy();}

		BOOL Create	(int nWindDir,int nLevel);
		void Process(int & nStatus);
		void Reset	(void);	
		

	private:
 
		int		m_iSandAmount;
		int		m_iTargetAmount;
		CSAND	m_Sand;

	 	int		m_nWindDirection; 
		int		m_nLevel;    
		int		m_iStatu;	 
	 
	public:	
		void	SandStop();
		void	Destroy();
		void	SetSand(int nWindDir,int nLevel);
		void	Pause();
		void	Continue();
		DWORD 	m_dwPauseTime;

};




//--------------------------------------------------------------
//
//烟花.
//------------------------------------------------------------------------

enum {_YINFASTATUS_NONE	=0, _YINFASTATUS_CREATE, _YINFASTATUS_FALL , _YINFASTATUS_START, _YINFASTATUS_END};
enum {_YINFA_BEGIN = 10, _YINFA_STOP=11 , _YINFA_RESET = 13, _YINFA_NONE = 14};

 
const int _YINFA_FRAME	= 8;

class CYinFa
{	
	public:
		CYinFa(){ m_iStatus	= _YINFASTATUS_NONE;}
		~CYinFa()	{Destroy();}

		BOOL	Create	(int iOrigPosX,int iOrigPosY,int nMarginX, int nMarginY, int nRadiuint);
		void	Show	();
		void	Process	();
		void	Reset	(void);
		void	Destroy	(void);

		int 	IsCreated	(void) {return m_iStatus;}
		int		GetInt		(double fValue);
		void	SetPicture	(char *pszFileName)	{strcpy(m_szFileTitle,pszFileName);}

	private:
		int		m_iShowNum;
		int		m_iStatus;
		int		m_nPathCount;    // 粒子向四周散开的已用的贞数	  
		int 	m_nPathLength;   //向四周散开要用的贞数

		POINT	m_nCenterWorldPoint;
		POINT	m_nMarginWorldPoint;
		POINT	m_nFallWorldPoint;

⌨️ 快捷键说明

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