📄 game.h
字号:
#ifndef GAME_H
#define GAME_H
/*
GAME.H
GAME.CPP
GAME2.CPP
*/
#include <ddraw.h>
#include <dinput.h>
#pragma comment (lib,"dinput.lib")
#pragma comment (lib,"ddraw.lib")
#pragma comment (lib,"dxguid.lib")
#define KEYDOWN(name,key) (name[key] & 0x80)
#define DINPUT_BUFFERSIZE 16
#ifdef __cplusplus
extern "C" { /* Assume C declarations for C++ */
#endif /* __cplusplus */
extern IDirectDrawSurface * DDGetSurface(IDirectDraw *pdd, int dx, int dy);
extern IDirectDrawPalette * DDLoadPalette(IDirectDraw *pdd, LPCSTR szBitmap);
extern IDirectDrawSurface * DDLoadBitmap(IDirectDraw *pdd, LPCSTR szBitmap, int dx, int dy);
extern HRESULT DDReLoadBitmap(IDirectDrawSurface *pdds, LPCSTR szBitmap);
extern HRESULT DDCopyBitmap(IDirectDrawSurface *pdds, HBITMAP hbm, int x, int y, int dx, int dy);
extern DWORD DDColorMatch(IDirectDrawSurface *pdds, COLORREF rgb);
extern HRESULT DDSetColorKey(IDirectDrawSurface *pdds, COLORREF rgb);
#ifdef __cplusplus
}
#endif /* __cplusplus */
typedef struct _OBJECT_RES_ASCII
{
char test[3];
char number[10];
char objname[10];
char filename[10];
char rright[10];
char rbottom[10];
char arright[10];
char arbottom[10];
char load[10];
char colorkey[10];
char r[10];
char g[10];
char b[10];
}OBJECT_RES_ASCII;
typedef struct _OBJECT_RES
{
long number;
char objname[8];
char filename[8];
RECT rect;
RECT apprect;
long load;
long colorkey;
COLORREF rgb;
}OBJECT_RES;
typedef struct _OBJECT_RES2_ASCII
{
char test[3];
char number[10];
char x[10];
char y[10];
}OBJECT_RES2_ASCII;
typedef struct _OBJECT_RES2
{
long number;
long x,y;
long dlgptr;
}OBJECT_RES2;
typedef struct _ACC_RES_ASCII
{
char test[3];
char fromnumber[10];
char tonumber[10];
char number[10];
char objname[10];
char filename[10];
char x[10];
char y[10];
}ACC_RES_ASCII;
typedef struct _DIALOG_RES_ASCII
{
char test[3];
char number[10];
char speaker[10];
char dlgnumber[10];
char gotonumber[10];
char stop[10];
char fillprocess[10];
}DIALOG_RES_ASCII;
typedef struct _DIALOG
{
long number;
long speaker;
long dlgnumber;
long gotonumber;
long stop;
long fillprocess;
}DIALOG_RES;
class DKEY
{
public:
LPDIRECTINPUT g_pdi;
LPDIRECTINPUTDEVICE g_pKeyboard;
char keys[256];
public:
DKEY();
~DKEY();
BOOL Create(HWND hwnd,HINSTANCE ins);
void GetInput(void);
};
class GAME
{
public:
char *aresmem;
long areslength;
char *ares2mem;
long ares2length;
char *accmem;
long acclength;
char *dlgmem;
long dlglength;
RECT screen;
int fade;
int step;
BYTE process[255];
public:
GAME();
~GAME();
void Init(LPSTR aresfile,LPSTR ares2file,
LPSTR accfile,LPSTR dlgfile,
int w,int h);
};
class OBJECT
{
public:
OBJECT_RES res;
OBJECT_RES2 res2;
DIALOG_RES dlgres;
LPDIRECTDRAW lpdd;
LPDIRECTDRAWSURFACE back;
LPDIRECTDRAWSURFACE sfc;
RECT screen;
RECT from,to;
int running;
int direction;
int step;
int get;
int spot;
public:
OBJECT();
~OBJECT();
void Init(LPDIRECTDRAW dd,LPDIRECTDRAWSURFACE bk,RECT sc,
char *aresmem,long areslength,
char *ares2mem,long ares2length,
long number);
void InitDlg(char *dlgmem,long length);
void Get();
void ReGet();
void GetAppend(BYTE *hit,int hl,BYTE *acc,int al);
bool Move(int direction,int step,LPRECT test);
bool Put(bool tr=0,BYTE percent=0,USHORT colorkey=0);
bool IsHit(BYTE *hit);
bool IsHitObj(OBJECT *other);
void SetSpot();
int GetDirection();
};
void AddString(char *to,char *from,char *first,char *last);
void ChangeRes(OBJECT_RES *res,OBJECT_RES_ASCII *ares);
void ChangeRes2(OBJECT_RES2 *res2,OBJECT_RES2_ASCII *ares2);
void ChangeAccRes(OBJECT *obj,long from,long to,
char *accmem,long acclength);
void ChangeDlgRes(DIALOG_RES *dlgres,DIALOG_RES_ASCII *adlgres);
void SearchDlgRes(char *dlgmem,long length,OBJECT *obj);
void WriteDlgAscii(char *dlgmem,long length,long objnumber,long gotonumber);
BOOL FillSurface( LPDIRECTDRAWSURFACE surf, DWORD clr, RECT* rect=0 );
bool CopySurface( LPDIRECTDRAWSURFACE to,RECT trect,RECT test,
LPDIRECTDRAWSURFACE from,RECT frect,int colorkey );
void CopySurfaceWithHdc(LPDIRECTDRAWSURFACE to,
LPDIRECTDRAWSURFACE from,
RECT rect);
void Tr(LPDIRECTDRAWSURFACE to,RECT trect,RECT ttest,
LPDIRECTDRAWSURFACE from,RECT frect,RECT ftest,
BYTE percent,USHORT colorkey,USHORT color);
USHORT TrApp(USHORT d,USHORT s,BYTE percent);
void FadeIn(LPDIRECTDRAWSURFACE to,
LPDIRECTDRAWSURFACE from,
LPRECT lprc,LPDIRECTDRAW lpdd);
void FadeOut(LPDIRECTDRAWSURFACE to,
LPDIRECTDRAWSURFACE from,
LPRECT lprc,LPDIRECTDRAW lpdd);
int Fps();
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -