C++第十一课:面向对象[敲字母游戏]

小编前面讲解的知识只是最基本的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

时间: 2024-10-31 13:27:23

C++第十一课:面向对象[敲字母游戏]的相关文章

【C++探索之旅】第一部分第十一课:小游戏,猜单词

内容简介 1.第一部分第十一课:小游戏,猜单词 2.第一部分第十二课预告:指针一出,谁与争锋 小练习 上一课<[C++探索之旅]第一部分第十课:文件读写,海阔凭鱼跃>中我们学习了读写文件的知识. 第一部分的课程也快接近尾声了,下一课我们会学习很重要的指针的知识.之后,我们就进入第二部分:面向对象编程了.哈哈哈,激动不? 目前为止,我们也学了不少内容:编译基本原理,IDE,变量,函数,条件语句,循环语句,引用,数组,文件读写,等等.你应该为自己感到自豪. 俗语说得好:实践是最好的老师.我们学了那

【C语言探索之旅】第三部分第三课:SDL开发游戏之显示图像

内容简介 1.第三部分第三课: SDL开发游戏之显示图像 2.第三部分第四课预告: SDL开发游戏之事件处理 第三部分第三课:SDL开发游戏之显示图像 上一课中,我们学习了如何加载SDL库(SDL_Init),释放SDL库(SDL_Quit),如何打开一个窗口(Window),如何使用表面(Surface). 这些都是SDL库最最基本的操作.暂时,我们只会给窗口自带的表面上点颜色,好像挺乏味的. 这一课我们来学习如何插入图片.上一课我们说过,SDL中绘制图样需要在Surface上进行.Surfa

【C语言探索之旅】 第三部分第一课:SDL开发游戏之安装SDL

内容简介 1.课程大纲 2.第三部分第一课: SDL开发游戏之安装SDL 3.第三部分第二课预告: SDL开发游戏之创建窗口和画布 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串

十一、面向对象与原型

十一.面向对象与原型 ECMAScript有两种开发模式:1.函数式(过程化),2.面向对象(OOP).面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但是,ECMAScript没有类的概念,因此它的对象也与基于类的语言中的对象有所不同.   1.学习条件 在JavaScript视频课程第一节课,就已经声明过,JavaScript课程需要大量的基础.这里,我们再详细探讨一下: 1.xhtml基础:JavaScript方方面面需要用到. 2.扣代码基础:

Python第十八课(面向对象基础)

Python第17课(面向对象基础)    >>>思维导图>>>中二青年 什么是继承? 继承是一种关系,描述两个对象之间,什么是什么的关系 例如麦兜,佩奇,猪刚鬣 都是猪啊, 在程序中,继承描述的是类和类之间的关系 例如a继承了b, a就能直接使用b已经存在的方法和属性 a称之为子类,b称之为父类,也称之为基类 为什么要使用继承 继承的一方可以直接使用被继承一方已经有的东西 其目的是为了重用已经有的代码,提高重用性 如何使用继承 语法 class 类名称(父类的名称):

【C语言探索之旅】 第三部分第二课:SDL开发游戏之创建窗口和画布

内容简介 1.第三部分第二课: SDL开发游戏之创建窗口和画布 2.第三部分第三课预告: SDL开发游戏之显示图像 第三部分第二课:SDL开发游戏之创建窗口和画布 在上一课中,我们对SDL这个开源库做了介绍,也带大家配置了SDL的开发环境.请大家按照上一课的步骤创建一个SDL工程,能够初步运行. 如果遇到问题,可以百度,Google相关平台SDL的配置.或者联系小编. 当然了,有些朋友可能会说开发C语言游戏还可以用GTK+这个库,但是个人认为GTK+没有SDL那么适合开发游戏,其创建图形界面的能

字母游戏

[问题描写叙述] peter喜欢玩字母游戏,于是他编写了一个有趣的游戏.游戏规则是在一个 (N-1) * N的表格里填写字母.规则:对于每一个输入的N,由 (N-1) * N的字母区域的左上角開始,从字母A開始逆时针填充一个字母区域,乘积若超过26继续由新一组的A.B.C??填充,不要求输出边框. [输入] 多组測试数据(数据量在100组以内). 每组測试数据仅仅有一行为一个整数N(1<=N<=30).表示表格的宽度. [输出] 对于每组输入数据.输出N-1行,为填完的表格(N-1行,每行N个

猜字母游戏

猜字母游戏 猜字母游戏——设计数据结构 猜字母游戏——设计程序结构 猜字母游戏——实现字母生成方法 猜字母游戏——实现字母检测方法 猜字母游戏——实现主方法 1 猜字母游戏——设计数据结构 1.1 问题 有猜字母游戏,其游戏规则为:程序随机产生5个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串.玩家可以猜测多次,每猜测一次,则由系统提示结果.如果猜测的完全正确,则游戏结束,计算玩家的游戏得分并输出:如果没有猜对,则提示猜测的结果,如猜对了几个字符,以及猜对了几个字符的位置等信息,并提

BeagleBone Black板第十一课: PWM子系统简介

BBB板第十一课: PWM子系统简介 查看多达4000多页的AM335X 英文手册,找到其中的15章节PWMSS,我英文学不好,翻译其中的意思真难,建议高手帮翻译一下那4000多页的手册贡献给大家. 在这里简单说下几个专业名词: PWMMSS全称Pulse-Width Modulation Subsystem 脉冲宽度调制子系统,由eHRPWM.eCAP和eQEP三个模块组成,简单的说就是三种工作模式. 下面的图为PWM子系统图(来自4000多页的手册) 1.eHRPWM全称Enhanced H