📄 gameengine.h
字号:
#pragma once
#include <list>
#include "stdafx.h"
#include "Resource.h"
#include "Windows.h"
#include "Sprite.h"
#include "Fighter.h"
#include "Bullet.h"
#include "EnemyFigher.h"
#include "MusicPlay.h"
using namespace std;
class GameEngine
{
public:
// Construction function and Destruction function
GameEngine(int iWidth = 480, int iHeight = 640);
virtual ~GameEngine(void);
BOOL Initialize();
// Access Method
HWND GetWindow() { return m_hWindow; };
int GetWidth() { return m_iWidth; };
int GetHeight() { return m_iHeight; };
int GetFrameDelay() { return m_iFrameDelay; };
BOOL GetSleep() { return m_bSleep; };
BOOL IsGameOver() { return m_bGameOver; };
void SetWindow(HWND hWindow) { m_hWindow = hWindow; };
void SetFrameRate(int iFrameRate) {
m_iFrameDelay = 1000 / iFrameRate;
};
void SetSleep(BOOL bSleep) { m_bSleep = bSleep; };
// 键盘消息处理函数
void KeyDown(WPARAM);
void KeyUp(WPARAM);
// 以下是一组Sprite管理方法
// 检查两个精灵碰撞
BOOL SpriteCollision(Sprite* pSpriteHitter, Sprite* pSpriteHittee);
// 检查一个Sprite是否与其他精灵碰撞,调用SpriteCollision
BOOL CheckSpriteCollision(Sprite* pTestSprite);
// 针对3种碰撞情况,写了三个函数
void CheckFighterHitting();
void CheckFighterHitted();
void CheckFighterCollistion();
//void AddSprite(Sprite* pSprite);
Sprite* AddSprite(Bullet* pBullet);
Sprite* AddExplodeAnimation(Sprite* pSprite);
void AddBoss(void);
void AddEnemy(void);
void Draw(HDC hDC);
void Update();
void CleanUpSprite();
// 检查一个点是否在一个精灵内部
Sprite* IsPointInSprite(int x, int y);
private:
// Member variables
HWND m_hWindow;
int m_iWidth, m_iHeight;
int m_iFrameDelay;
int m_iCurrentKey;
int m_iBufferKey; // 键盘缓冲
UINT m_uCount; // 计数器
BOOL m_bHaveBoss; // 有BOSS没?没有给你一个
BOOL m_bSleep;
Fighter *m_pFighter;
Bitmap *m_pSmallFighter; // 显示战机数量的小图片
int m_iLife; // 战机数量
BOOL m_bGameOver; // 判断是否Game Over
int m_iScore; // 战机得分
MusicPlay *m_pSound; // 爆炸声
MusicPlay *m_pFireSound; // 开火声音
list<EnemyFigher*> m_listEnemy; //
list<Bullet*> m_listFighterBullets; // 战斗机子弹
list<Bullet*> m_listEnemyBullets; // 敌人子弹
list<Sprite*> m_listAnimation; // 动画列表
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -