跟着《游戏开发:世嘉新人培训教材》一书中推箱子游戏的逻辑写的推箱子游戏,整体代码不长,也没有特别难以理解的逻辑,后续看看自己能否进行一定的改进,增加游戏难度和代码的运行速度。
#include<iostream>
//长
const int gHeight = 5;
//宽
const int gWidth = 8;
//游戏场景
const char gStageData[] = "\
########\n\
# .. p #\n\
# oo #\n\
# #\n\
########\n";
enum Object {
OBJ_SPACE, //无物体
OBJ_WALL, //墙壁
OBJ_GOAL, //目的地
OBJ_BLOCK, //箱子
OBJ_BLOCK_ON_GOAL, //箱子到达目的地
OBJ_PLAYER, //玩家
OBJ_PLAYER_ON_GOAL, //玩家到达目的地
OBJ_UNKONW //未知,错误位置
};
//初始化函数
void initialize(Object* state, int height, int width, const char* stage);
//绘制初始游戏窗口函数
void draw(Object* state, int height, int width);
void findPlayer(Object* state, int& playerX, int& playerY, int height, int width);
//更新游戏窗口函数
void update(Object* state, int height, int width, char input);
//确认是否通关函数
bool checkClear(Object* state, int height, int width);
int main() {
Object* state = new Object[gHeight*gWidth];
initial