//
// SPRITE
//
// Copyright (c) 2000-2001 Chihiro.SAKAMOTO (HyperWorks)
//
#ifndef __sprite_h__
#define __sprite_h__
#include "MxImage.h"
class CMxImage;
class CSprite {
public:
CSprite();
CSprite(CMxImage *image, POINT pos);
CSprite(CMxImage *image, POINT pos, POINT src);
virtual ~CSprite();
void Set(CMxImage *image, POINT pos);
void Set(CMxImage *image, POINT pos, POINT src);
void Draw(CMxImage *_image,CMxImage *image);
void Draw(CMxImage *image, const RECT rect);
void GetRect(RECT *r) const;
//
void SetDrawPos(int x, int y);
void SetDrawPos(POINT point);
POINT GetDrawPos() const;
void SetSrcPos(int x, int y);
POINT GetSrcPos() const;
BOOL PtIn(POINT pt);
protected:
POINT draw_pos;
POINT src_pos;
CMxImage *image;
} ;
// 构造函数
//
inline CSprite::CSprite()
{
draw_pos.x = 0;
draw_pos.y = 0;
src_pos.x = 0;
src_pos.y = 0;
image = 0;
}
inline CSprite::CSprite(CMxImage *_image, POINT pos)
{
draw_pos = pos;
src_pos.x = 0;
src_pos.y = 0;
image = _image;
}
inline CSprite::CSprite(CMxImage *_image, POINT pos, POINT src)
{
draw_pos = pos;
src_pos = src;
image = _image;
}
////将参数设定在构造好的对象上
inline void CSprite::Set(CMxImage *_image, POINT pos)
{
draw_pos = pos;
image = _image;
}
inline void CSprite::Set(CMxImage *_image, POINT pos, POINT src)
{
draw_pos = pos;
src_pos = src;
image = _image;
}
// 设定图像复制源的座标
//
inline void CSprite::SetSrcPos(int x, int y)
{
src_pos.x = x;
src_pos.y = y;
}
// 取得图像复制源的座标
//
inline POINT 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(POINT point)
{
draw_pos = point;
}
// 取得图像复制目的(描绘)的座标
//
inline POINT CSprite::GetDrawPos() const
{
return draw_pos;
}
// 取得图像的显示范围
//
inline void CSprite::GetRect(RECT *r) const
{
r->left = draw_pos.x;
r->top = draw_pos.y;
r->right = draw_pos.x + 53;
r->bottom = draw_pos.y + 62;
}
// 指定座标是否在图像显示的范围内?
//
inline BOOL CSprite::PtIn(POINT pt)
{
RECT rect;
GetRect(&rect);
return PtInRect (&rect,pt);
}
#endif