小编前面讲解的知识只是最基本的C语言部分,代码很乱也很臃肿,很难看,如果没有基础的朋友就有可能看不懂。
下面就正式融入C++面向对象的理念,让代码变得更加通俗易懂,逐步带入高逼格的操作。
总体来说,代码部分没怎么变化过,只是加入类的运用:
1.想要加入类的知识,我们首先得学会分析全程,这里需要什么对象?
2.其次,分析代码的构成,怎样才能让代码变得更清晰,一目明了。
3.每个人都有一套自己的代码思维,最后剥析面向对象的样式,不至于以后还是使用c语言的代码构成一个程序。
既然是游戏,就应该有一个地图的对象,还有个操作者(玩家)。因为是最简单的游戏,所以小编只用两个对象,来完成游戏的制作。
首先还是得创建一个主文件:TypeTheLetterGame.cpp、MyGameMap的class和一个GamePlayer的class。
前面说到,既然代码没怎么变化,那么就将所有关于地图用到的变量全部写到私有属性之中,回想起前端需要哪些变量:
1、IMAGE 对象
IMAGE background;
IMAGE LB1;
IMAGE LB2;
2、地图的宽度和高度坐标
int m_Xpos;
int m_yPos;
3、保存字母的变量
char Letter;
........
既然知道了这些,就可以初始化游戏界面了,记住,能用到什么操作时,再添加变量,头文件也同样如此,想要用哪些函数时,再添加头文件!
这里用到图形,所以在MyGameMap这个类上添加
#include <graphics.h>
在InitGame()函数内加载图片资源,和初始化图形界面。
void MyGameMap::InitGame() { loadimage(&background,"images//background.jpg",600,600); loadimage(&LB1,"images//LB1.jpg",50,50); loadimage(&LB2, "images//LB2.jpg", 50, 50); initgraph(this->background.getwidth(),this->background.getheight()); }
如果不确定自己写的代码是否有问题,就带入主文件调试运行下:
小编编写的没有问题。
然后就是初始化萝卜图掉下来的那一瞬间:
再将UpdateGame()函数调到主文件之中运行看看。
最后就是让字母显示和敲打字母的操作了:
我们得用到随机机制,所以需要再引用time.h的头文件到MyGameMap上。
#include <time.h>
这里为什么在构造函数内写,因为类的构造函数,有个规则,只要这个类被实例化(初始化)首先调用的便是构造函数,小编将x和y坐标全部初始化为0;
显示字母:
操作:打字母,萝卜图消失,需要用到敲击键盘的状态的函数,再次引用conio.h
#include <conio.h>
玩家的操作,将GamePlayer的对象作为MyGameMap一个priavate私有指针属性,因为只需要用到很多次玩家的操作,但在无限循环下,只要实例化一次即可,请放在MyGameMap构造函数内:
别忘记了调用这个自定义的类!!!
最后主体源文件无限循环:
原文地址:https://www.cnblogs.com/VisiousDragon/p/12141647.html