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

📄 tankframe.h

📁 疯狂坦克源代码
💻 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 + -