大一C语言期末作业制作记录-利用EasyX开发小游戏

  1. 1. 一、主题确定
  2. 2. 二、前置准备和学习
    1. 2.1. 1.EasyX的安装
    2. 2.2. 2.EasyX的学习
    3. 2.3. 3.图片的绘制
  3. 3. 三、代码逻辑的构建
    1. 3.1. 2.基本思路
    2. 3.2. 3.遇到的问题与解决的办法
      1. 3.2.1. (1)关键函数的逻辑实现
      2. 3.2.2. (2) 可视化移动时出现的bug

期末到了,在C语言期末众多作业选择中选择了比较有趣的利用EasyX开发小游戏
第一次和别人一起开发程序,故作记录。

一、主题确定

在决定用EasyX进行小游戏开发后我们开始考虑制作的方向
鉴于使用EasyX图形库,我们打算开发一个像素游戏
商量过后决定做一款类似(抄袭)地城迷踪(Dungeon and Puzzles)的游戏

二、前置准备和学习

1.EasyX的安装

EasyX 是针对 C/C++ 的图形库,可以帮助使用C/C++语言的程序员快速上手图形和游戏编程,可以用来做些简单的演示2d类游戏,没有cocos2d-x那样重量级,学习起来也比较简单。

EasyX官网进行下载并安装即可

2.EasyX的学习

EasyX图形库的学习,在B站上找了一个EasyX教学视频进行观看和学习。讲的还是不错的。

安装也可参照此视频。

3.图片的绘制

图片的绘制是在写代码中顺便一起完成的,这里使用像素画软件aseprite进行绘制,对地城迷踪(Dungeon and Puzzles)与网络上的一些图片进行临摹。画出了一系列的像素图片。

groundwallchestchest_on_groundchest_openedkeykey_on_groundherohero_on_groundsword

updownleftright

三、代码逻辑的构建

游戏主要代码在test.cpp中

函数、全局变量声明在game.h中

自定义函数的逻辑实现在game.cpp中

2.基本思路

先不用EasyX库,利用已有的C语言知识对最基本的逻辑利用二维数组模拟实现游戏过程,再加入二维图形数组利用EasyX库进行可视化的开发。

3.遇到的问题与解决的办法

没有对代码经行过多的优化,算法上有许多不足甚至可能有错误QAQ

(1)关键函数的逻辑实现

首先是关键函数move的逻辑编写,遇到拿了钥匙打不开箱子和未到箱子附近就直接打开了箱子的问题。前者定义了一个全局变量flag解决,后者用移动前先用变量i、j 记录开始移动时位置判断解决。

(2) 可视化移动时出现的bug

一开始是打算用键盘进行的移动操作,但是每次会一下接受到很多的键盘请求,出现一堆bug,最后我们选用了利用图片鼠标点击的形式进行解决。