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

📄 sprite.h

📁 用MFC写的RPG游戏
💻 H
字号:
//
// SPRITE
//
//		Copyright (c) 2000-2001 Chihiro.SAKAMOTO (HyperWorks)
//
#ifndef	__sprite_h__
#define	__sprite_h__

class CImage;
class CSprite {
  public:
	CSprite();
	CSprite(CImage *image, CPoint pos, CSize _size);
	CSprite(CImage *image, CPoint pos, CPoint src, CSize _size);
	virtual ~CSprite();

	void Set(CImage *image, CPoint pos, CSize _size);
	void Set(CImage *image, CPoint pos, CPoint src, CSize _size);
	void Draw(CImage *image);
	void Draw(CImage *image, const CRect &rect);
	void GetRect(CRect *r) const;
	CSize GetSize() const;
	void SetDrawPos(int x, int y);
	void SetDrawPos(CPoint point);
	CPoint GetDrawPos() const;
	void SetSrcPos(int x, int y);
	CPoint GetSrcPos() const;
	BOOL PtIn(POINT pt);

  protected:
	CPoint	draw_pos;
	CPoint	src_pos;
	CSize	size;
	CImage *image;
} ;

// 构造函数
//
inline CSprite::CSprite()
{
	draw_pos.x = 0;
	draw_pos.y = 0;
	src_pos.x = 0;
	src_pos.y = 0;
	size.cx = 0;
	size.cy = 0;
	image = 0;
}

inline CSprite::CSprite(CImage *_image, CPoint pos, CSize _size)
{
	draw_pos = pos;
	src_pos.x = 0;
	src_pos.y = 0;
	size = _size;
	image = _image;
}

inline CSprite::CSprite(CImage *_image, CPoint pos, CPoint src, CSize _size)
{
	draw_pos = pos;
	src_pos = src;
	size = _size;
	image = _image;
}

// 将参数设定在构造好的对象上
//
inline void CSprite::Set(CImage *_image, CPoint pos, CSize _size)
{
	draw_pos = pos;
	size = _size;
	image = _image;
}

inline void CSprite::Set(CImage *_image, CPoint pos, CPoint src, CSize _size)
{
	draw_pos = pos;
	src_pos = src;
	size = _size;
	image = _image;
}

// 取得图像大小
//
inline CSize CSprite::GetSize() const
{
	return size;
}

// 设定图像复制源的座标
//
inline void CSprite::SetSrcPos(int x, int y)
{
	src_pos.x = x;
	src_pos.y = y;
}

// 取得图像复制源的座标
//
inline CPoint CSprite::GetSrcPos() const
{
	return src_pos;
}

// 设定图像复制目的(描绘)的座标
//
inline void CSprite::SetDrawPos(int x, int y)
{
	draw_pos.x = x;
	draw_pos.y = y;
}

inline void CSprite::SetDrawPos(CPoint point)
{
	draw_pos = point;
}

// 取得图像复制目的(描绘)的座标
//
inline CPoint CSprite::GetDrawPos() const
{
	return draw_pos;
}

// 取得图像的显示范围
//
inline void CSprite::GetRect(CRect *r) const
{
	r->left = draw_pos.x;
	r->top = draw_pos.y;
	r->right = draw_pos.x + size.cx;
	r->bottom = draw_pos.y + size.cy;
}

// 指定座标是否在图像显示的范围内?
//
inline BOOL CSprite::PtIn(POINT pt)
{
	CRect rect;
	GetRect(&rect);
	return rect.PtInRect(pt);
}

#endif

⌨️ 快捷键说明

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