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

📄 sprite.h

📁 战场登陆器vc++源代码很好用的哦精彩精彩
💻 H
字号:
// Sprite.h: interface for the CSprite class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SPRITE_H__0089D9E2_74E6_11D2_A8E6_00001C7030A6__INCLUDED_)
#define AFX_SPRITE_H__0089D9E2_74E6_11D2_A8E6_00001C7030A6__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#include <windows.h>
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>

#include "DXC_ddraw.h"
#include "Mydib.h"

typedef struct stBrushtag
{
	short sx;
	short sy;
	short szx;
	short szy;
	short pvx;
	short pvy;
} stBrush;

class CSprite  
{
public:

	void * operator new (size_t size) 
	{
		return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
	};
	
	void operator delete(void * mem)
	{
		HeapFree(GetProcessHeap(), HEAP_NO_SERIALIZE, mem);
	};

	//沥柳堡 眠啊 积己磊 坷滚肺靛
	CSprite(HANDLE hPakFile, class DXC_ddraw * pDDraw, char * cPakFileName, short sNthFile, bool bAlphaEffect = TRUE);
	virtual ~CSprite();
	void PutSpriteFast(int sX, int sY, int sFrame, DWORD dwTime);
	void PutShiftSpriteFast(int sX, int sY, int shX, int shY, int sFrame, DWORD dwTime);
	void PutShiftTransSprite2(int sX, int sY, int shX, int shY, int sFrame, DWORD dwTime);
	void PutSpriteFastFrontBuffer(int sX, int sY, int sFrame, DWORD dwTime);
	void PutSpriteFastWidth(int sX, int sY, int sFrame, int sWidth, DWORD dwTime);
	void PutSpriteFastNoColorKey(int sX, int sY, int sFrame, DWORD dwTime);
	void PutSpriteFastDst(LPDIRECTDRAWSURFACE7 lpDstS, int sX, int sY, int sFrame, DWORD dwTime);
	void PutSpriteFastNoColorKeyDst(LPDIRECTDRAWSURFACE7 lpDstS, int sX, int sY, int sFrame, DWORD dwTime);
	void PutTransSprite(int sX, int sY, int sFrame, DWORD dwTime, int alphaDepth = 30);
	void PutTransSprite2(int sX, int sY, int sFrame, DWORD dwTime);
	void PutTransSprite_NoColorKey(int sX, int sY, int sFrame, DWORD dwTime, int alphaDepth = 0);
	void PutTransSpriteRGB_NoColorKey(int sX, int sY, int sFrame, int sRed, int sGreen, int sBlue, DWORD dwTime);
	void PutTransSpriteRGB(int sX, int sY, int sFrame, int sRed, int sGreen, int sBlue, DWORD dwTime);
	void PutTransSprite70(int sX, int sY, int sFrame, DWORD dwTime);
	void PutTransSprite50(int sX, int sY, int sFrame, DWORD dwTime);
	void PutTransSprite25(int sX, int sY, int sFrame, DWORD dwTime);
	void PutTransSprite70_NoColorKey(int sX, int sY, int sFrame, DWORD dwTime);
	void PutTransSprite50_NoColorKey(int sX, int sY, int sFrame, DWORD dwTime);
	void PutTransSprite25_NoColorKey(int sX, int sY, int sFrame, DWORD dwTime);
	void PutShadowSpriteClip(int sX, int sY, int sFrame, DWORD dwTime);
	void PutShadowSprite(int sX, int sY, int sFrame, DWORD dwTime);
	void PutRevTransSprite(int sX, int sY, int sFrame, DWORD dwTime, int alphaDepth = 0);
	void PutFadeSpriteDst(WORD * pDstAddr, short sPitch, short sX, short sY, short sFrame, DWORD dwTime);
	void _SetAlphaDegree();
	BOOL _bCheckCollison(int sX, int sY, short sFrame, int msX, int msY);
	void _GetSpriteRect(int sX, int sY, int sFrame);
	void PutFadeSprite(short sX, short sY, short sFrame, DWORD dwTime);
	void PutSpriteRGB(int sX, int sY, int sFrame, int sRed, int sGreen, int sBlue, DWORD dwTime);
	void _iCloseSprite();
	bool _iOpenSprite();
	void iRestore();
	IDirectDrawSurface7 *  _pMakeSpriteSurface();
		
	RECT	m_rcBound;
	DWORD	m_dwRefTime;
	bool	m_bIsSurfaceEmpty;
	bool	m_bOnCriticalSection;
	bool	m_bAlphaEffect;
	short	m_sPivotX, m_sPivotY;
	class	DXC_ddraw * m_pDDraw;
	WORD*	m_pSurfaceAddr;
	DWORD	m_dwBitmapFileStartLoc;
	short	m_sPitch;
	int		m_iTotalFrame;
	char	m_cAlphaDegree;
	WORD	m_wBitmapSizeX, m_wBitmapSizeY;
	WORD	m_wColorKey;
	char	m_cPakFileName[16];
	stBrush* m_stBrush;
	LPDIRECTDRAWSURFACE7 m_lpSurface;
};

#endif // !defined(AFX_SPRITE_H__0089D9E2_74E6_11D2_A8E6_00001C7030A6__INCLUDED_)

⌨️ 快捷键说明

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