自己编写的一个小游戏,本来打算做贪吃蛇,结果不会使蛇的身子随蛇头方向改变而改变就换了种想法,最后变成了这样一个另类的小游戏,“笑哭“,下面是程序的主要代码,如果有兴趣也可以下载完整程序代码资源:https://download.youkuaiyun.com/download/yt201758501112/10488198。
Lessonx.h
/////////////////////////////////////////////////////////////////////////////////
//
//
//
//
/////////////////////////////////////////////////////////////////////////////////
#ifndef _LESSON_X_H_
#define _LESSON_X_H_
//
#include <Windows.h>
#include <stdio.h>
#include <vector>
using namespace std;
/////////////////////////////////////////////////////////////////////////////////
//
// 游戏总管类。负责处理游戏主循环、游戏初始化、结束等工作
class CGameMain
{
private:
int m_iGameState; // 游戏状态,0:结束或者等待开始;1:初始化;2:游戏进行中
CSprite * m_pControlSnake; //定义蛇头部精灵
CSprite * m_pSnakebody1; //定义一节蛇身
CSprite * tmpsprite; //定义两个中间变量精灵
CSprite * tmpsprite1;
vector<CSprite*> m_pSnakefood; //定义食物精灵组
vector<CSprite*> m_pzhangai; //定义障碍精灵组
CTextSprite * m_pStarttext; //定义开始文本精灵
CTextSprite * m_pgamescore; //定义分数文本精灵
CTextSprite * m_plevel; //定义级别文本精灵
CSprite * m_pgameover; //定义游戏结束时背景精灵
CSprite * m_pbeijing; //定义开始时背景精灵
CTextSprite * m_ptime; //定义游戏时间文本精灵
CTextSprite * m_pend1; //定义文本精灵
CTextSprite * m_pend2;
CSound * m_bjmusic; //定义音效精灵
CSound * m_eatmusic;
int m_foodminX; //定义食物出现的最小X坐标
int m_foodmaxX; //定义食物出现的最大X坐标
int m_foodminY; //定义食物出现的最小Y坐标
int m_foodmaxY; //定义食物出现的最大Y坐标
int m_foodcount; //定义食物出现的数目
int m_zhangaimaxY; //定义障碍出现的最大Y坐标
int m_zhangaiminY; //定义障碍出现的最小Y坐标
int m_zhangaicount; //定义障碍出现的数目
float DeltaTime; //定义时间
float speedsnake; //定义蛇移动的速度
int weizhi; //定义需要的变量
int judge;
float speedbeijing;
int t;
char foodname[1000]; //定义需要存储的数组
char zhangainame[1000];
int fenshu; //定义级别,分数
int level;
float mintime,maxtime;
float basetime;
public:
CGameMain(); //构造函数
~CGameMain(); //析构函数
// Get方法
int GetGameState() { return m_iGameState; }
// Set方法
void SetGameState( const int iState ) { m_iGameState = iState; }
// 游戏主循环等
void GameMainLoop( float fDeltaTime );
void GameInit();
void GameRun( float fDeltaTime );
void GameEnd();
void OnMouseMove( const float fMouseX, const float fMouseY );
void OnMouseClick( const int iMouseType, const float fMouseX, const float fMouseY );
void OnMouseUp( const int iMouseType, const float fMouseX, const float fMouseY );
void OnKeyDown( const int iKey, const bool bAltPress, const bool bShiftPress, const bool bCtrlPress );
void OnKeyUp( const int iKey );
void OnSpriteColSprite( const char *szSrcName, const char *szTarName );
void OnSpriteColWorldLimit( const char *szName, const int iColSide );
};
//////////////////