📄 tankframe.h
字号:
#if !defined(AFX_TANKFRAME_H__33468DA0_D876_11D5_9F84_006C50E5E777__INCLUDED_)
#define AFX_TANKFRAME_H__33468DA0_D876_11D5_9F84_006C50E5E777__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <mmsystem.h>
#include <ddraw.h>
#include <dsound.h>
#include "sprite.h"
#define TANK_XL 10
#define TANK_XR TANK_XL+552
#define TANK_YU 40
#define TANK_YD TANK_YU+432
#define FRAME_RATE 100
#define WAVEVERSION 1
#ifndef ER_MEM
#define ER_MEM 0xe000
#endif
#ifndef ER_CANNOTOPEN
#define ER_CANNOTOPEN 0xe100
#endif
#ifndef ER_NOTWAVEFILE
#define ER_NOTWAVEFILE 0xe101
#endif
#ifndef ER_CANNOTREAD
#define ER_CANNOTREAD 0xe102
#endif
#ifndef ER_CORRUPTWAVEFILE
#define ER_CORRUPTWAVEFILE 0xe103
#endif
#ifndef ER_CANNOTWRITE
#define ER_CANNOTWRITE 0xe104
#endif
// TankFrame.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CTankFrame window
class CTankFrame : public CWnd
{
// Construction
public:
CTankFrame();
// Attributes
public:
// Operations
public:
void End();
void Active();
void Update();
void Go();
void Init();
BOOL window_active;
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CTankFrame)
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CTankFrame();
// Generated message map functions
protected:
DWORD FrameTime;
DWORD Frames;
DWORD FrameCount;//当前帧速
DWORD mapupdate;//地图更新时间
DWORD txtupdate;//主题页面更新时间
int spd;//字体上升控制变量
LPTANK top;
LPTANK end;//敌方坦克链表头、尾
OTANK players[2];//我方坦克
LPSHOT tops;
LPSHOT ends;//子弹的链表头、尾
LPTREE topt;
LPTREE endt;//地图中树林的链表头、尾
LPAPPL topa;
LPAPPL enda;//爆炸效果的链表头、尾
APPL bons;//宝物
LPDIRECTDRAW lpDD;//DDraw对象
LPDIRECTDRAWSURFACE lpDDSPrimary;//主页面
LPDIRECTDRAWSURFACE lpDDSBack;//后备页面
LPDIRECTDRAWSURFACE lpDDSGround;//地图页面
LPDIRECTDRAWSURFACE lpDDSExplo;//爆炸页面
LPDIRECTDRAWSURFACE lpDDSAppl;//物品页面
LPDIRECTDRAWSURFACE lpDDSOtank;//我方坦克页面
LPDIRECTDRAWSURFACE lpDDSTank;//地方坦克页面
LPDIRECTDRAWSURFACE lpDDSShot;//子弹页面
LPDIRECTDRAWSURFACE lpDDSMap;//地图的元素页面
LPDIRECTSOUND lpDS;//DSound对象
LPDIRECTSOUNDBUFFER lpDSBFire;//发炮声音缓冲区
LPDIRECTSOUNDBUFFER lpDSBExplo;//爆炸声音缓冲区
LPDIRECTSOUNDBUFFER lpDSBBem;//奖励出现
LPDIRECTSOUNDBUFFER lpDSBBon;//吃到奖励
CONFIG config;//当前设置
MAP mp;//当前地图
MODE mode;//游戏状态
MCIDEVICEID wDeviceID;//背景音乐MCI设备ID
char fname[128];//背景音乐文件名
HRESULT DDCreateFlipper(LPDIRECTDRAW,LPDIRECTDRAWSURFACE*,LPDIRECTDRAWSURFACE*,DWORD);
IDirectDrawSurface* DDLoadBmp(IDirectDraw *,LPCSTR,int,int,DWORD);
HRESULT DDCopyBitmap(IDirectDrawSurface *,HBITMAP,int,int,int,int);
void PlayMid();
void Cls(LPDIRECTDRAWSURFACE,DWORD);
LPTANK CreateTank(int,int,BYTE);
BOOL CreateOtank(LPOTANK,BYTE);
BOOL InitOtank(LPOTANK,BYTE);
LPSHOT CreateShot(int,int,int,int,BYTE,int);
LPAPPL CreateAppl(int,int,BYTE);
void Add(LPTANK);
void Add(LPSHOT);
void Add(LPAPPL);
void Remove(LPTANK);
void Remove(LPSHOT);
void Remove(LPAPPL);
void DestroyLink();
BOOL LoadMap();
void DisMap();
HRESULT DrawOtanks(LPDIRECTDRAWSURFACE);
HRESULT DrawTanks(LPDIRECTDRAWSURFACE);
HRESULT DrawShots(LPDIRECTDRAWSURFACE);
HRESULT DrawAppls(LPDIRECTDRAWSURFACE);
HRESULT DrawWater(LPDIRECTDRAWSURFACE);
void UpdateShots();
void UpdateOtank(LPOTANK);
void UpdateTank();
void UpdateAppl();
void GetnewSpeed(LPTANK);
BOOL CheckIn(RECT&,RECT&);
void ReleaseObjects();
void Fail(LPSTR);
BOOL InitDdraw();
BOOL InitDsound();
void InitStage();
void Cleanup();
BOOL LoadStatic(LPDIRECTSOUND,LPSTR,LPDIRECTSOUNDBUFFER&);
int WaveOpenFile(TCHAR *,HMMIO *,WAVEFORMATEX **,MMCKINFO *);
int WaveStartDataRead(HMMIO *,MMCKINFO *,MMCKINFO *);
int WaveReadFile(HMMIO,UINT,BYTE *,MMCKINFO *,UINT *);
int WaveCloseReadFile(HMMIO *,WAVEFORMATEX **);
int get(double);
//{{AFX_MSG(CTankFrame)
afx_msg void OnActivateApp(BOOL bActive, HTASK hTask);
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnMciNotify(WPARAM wFlags,LONG lDevID);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_TANKFRAME_H__33468DA0_D876_11D5_9F84_006C50E5E777__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -