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

📄 animation.h

📁 一个自己写的游戏引擎,用DirectX 写成
💻 H
字号:
//--------------------------------------------------
//  Desc: Base Animation
//  Date: 2006.12.7 /update
//  Author: artsylee
//
//  Copyright (C) 2006 artsylee
//
//--------------------------------------------------

#ifndef _ANIMATION_
#define _ANIMATION_

#include "FrameManager.h"

enum ANI_STATE
{
	ANI_STOP = 0,
	ANI_PAUSE,
	ANI_PLAY,
};

enum LOOP_TYPE
{
	ANI_ONCE = 0,
	ANI_LOOP,
	ANI_LOOPBACK,
};

class ASE_DLL CAnimation
{
public:
	CAnimation();
	virtual ~CAnimation();

	virtual void	Release();
	virtual void	Play();
	virtual void	Stop();
	virtual void	Pause();
	virtual void	Replay();
	virtual void	Update();
	virtual	void	Render();
	
	bool	LoadFromFile(const char *szFile, MemoryMode mode = MM_AUTO);
	bool	LoadFromFrame(CFrames *pFrame);
	void	Render(int x, int y, float xScale, float yScale, RECT *rcSrc = NULL) const;
	void	Render(RECT *rcDst, RECT *rcSrc = NULL) const;
	void	RenderFrame(const DWORD &index) const;

	void	SetPosition(int x, int y)		
	{ 
		m_ptPosition.x = x;
		m_ptPosition.y = y;
	}
	void	GetPosition(POINT *ptDst) const	{ *ptDst = m_ptPosition;}
	int		GetWidth() const				{ return m_FrameInfo.m_Width;		}
	int		GetHeight()	const				{ return m_FrameInfo.m_Height;		}
	DWORD	GetFrameCount()	const			{ return m_FrameInfo.m_FrameCount;	}
	void	SetDelay(DWORD dwDelay)			{ m_FrameInfo.m_Delay = dwDelay;	}
	DWORD	GetDelay() const				{ return m_FrameInfo.m_Delay;		}
	DWORD	GetCurrentFrame() const			{ return m_dwCurrFrame;	}
	void	SetCurrentFrame(DWORD index);

	void	Show(bool bShow)				{ m_bShow = bShow;		}
	bool	IsVisual() const				{ return m_bShow;		}

	void	SetColor(DWORD dwColor)			{ m_dwColor = dwColor;	}
	DWORD	GetColor() const				{ return m_dwColor;		}
	
	LOOP_TYPE	GetLoopType() const				{ return m_eLoopType;	}
	void		SetLoopType(LOOP_TYPE type)		{ m_eLoopType = type;	}
	ANI_STATE	GetState() const				{ return m_eAniState;	}
protected:
	// Control
	FrameHandle		m_hAnimation;
	LOOP_TYPE		m_eLoopType;
	ANI_STATE		m_eAniState;
	DWORD			m_dwCurrFrame;
	POINT			m_ptPosition;
	DWORD			m_dwColor;
	bool			m_bShow;
	// Time
	DWORD			m_dwStartTime;
	DWORD			m_dwPauseTime;
	// Information
	FrameDesc		m_FrameInfo;
};

#endif // _ANIMATION_

⌨️ 快捷键说明

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