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

📄 imagex.h

📁 冰人引擎,本2d游戏引擎定位于游戏次中层引擎。他不像CDX等引擎那样
💻 H
字号:
//			Icer Game Engine v1.0
//						Http://www.ngame2000.com
//
//Author:杨冰(源代码之光)
//			E-mail:	iceryeah2000@163.com
//			QQ :	7746642
//
//Module:图片类
//
//Create:2003-2-6
//Updata:2003-4-20
//
//Describe:提供游戏中的所有图片接口函数
//Remark:	2003-2-6:Starting works	
//			2003-2-16:Completing static picture function
//			2003-2-26:Added Alpha draw function
//			2003-3-5:fixed some bugs,release v1.0 alpha
//			2003-4-20:Completed SetPixel and GetPixel functions that uses asm.These are
//						my first asm codes.

#pragma once

#define DRAW_ALPHA_SPEED		10			// 快速Alpha混合
#define DRAW_ALPHA_QUALITY		11			// 高质量Alpha混合(可指定alpha值)
#define DRAW_ALPHA_ADD			12			// 饱和叠加Alpha
#define DRAW_ALPHA_CHANNELS		13			// 饱和衰减Alpha

//自定义矩形结构(比直接用RECT方便)
struct stRectX
{
	DWORD dwX;								//顶点坐标x
	DWORD dwY;								//顶点坐标y
	DWORD dwWidth;							//宽
	DWORD dwHeight;							//高
};

class CImageX
{
public:
	CImageX(void);
	CImageX(char* file);									//通过构造直接读入图片数据
	~CImageX(void);

	bool LoadImage(char* file);								//调入自定义图片到内存
	void Free(void);										//释放内存(在构析中自动调用)

	void Draw(long x, long y,bool isTrans = false);		//无alpha,带透明选项绘制
	void DrawAlpha(long x, long y, bool isTrans,DWORD dwType = DRAW_ALPHA_SPEED,DWORD dwValue = 0);	//带Alpha,带透明选项,带alpha类型绘制

public:
	void SetRect(RECT* rect);											//设定源矩形
	stRectX* GetRect(void)		{return &m_SrcRect;}					//返回源矩形
	
	DWORD GetWidth(void)		{return m_dwWidth;}						//返回图形宽
	DWORD GetHeight(void)		{return m_dwHeight;}					//返回图形高

	void SetPixel(DWORD x, DWORD y, DWORD pixel);						//设置某点坐标
	DWORD GetPixel(DWORD x, DWORD y);									//获得某点坐标

	void SetCurrentFrame(DWORD frame);									//设定当前帧
	DWORD GetCurrentFrame(void)				{return m_dwCurrentFrame;}	//获得当前帧
	DWORD GetMaxFrame(void)					{return m_dwMaxFrame;}		//获得最大帧数

	DWORD* GetImageBuffer(void)				{return m_pImageBuffer;}	//获得图片缓冲
	DWORD GetImagePitch(void)				{return m_dwImagePitch;}	//获得图片pitch

private:
	DWORD* m_pImageBuffer;		//图片缓冲
	BYTE* m_pAlphaBuffer;		//Alpha缓冲
	DWORD m_dwImagePitch;

	DWORD m_dwType;				//图片类型
	DWORD m_dwWidth;			//图片宽
	DWORD m_dwHeight;			//图片高
	DWORD m_dwColorKey;			//关键色

	DWORD m_dwFrameWidth;		//帧宽
	DWORD m_dwFrameHeight;		//帧高
	DWORD m_dwCurrentFrame;		//当前帧
	DWORD m_dwMaxFrame;			//包含的总帧数

	stRectX m_SrcRect;			//设置draw类函数的源矩形,缺省为帧大小
	stRectX m_ClipperRect;		//裁减矩形

};

⌨️ 快捷键说明

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