C++开发系列——音符游戏(1)

前言

游戏介绍:随机打印6~10个 ↑ ↓ ← → 的方向箭头,并且在规定的时间内按下相同的键,统计正确的个数,按照所有生成箭头数量与正确按键数量的百分比来算出得分。得分等级是: D:0~70 C:71~80 B:81~90 A:91~100


提示:本文基于C++面向对象(OOP)思想实现。以下是本篇文章正文内容,下面案例可供参考,撰写的时候难免有所不周,请批评指正。有问题请留言~

一、什么是面向对象(OOP)编程思想?

1.面向对象

面向对象编程的主体是对象,研究的问题也是一系列对象。这种思想认为,所有的程序都是由对象提供的功能组合完成,所以该方法首要的是抽象出能够反应客观世界统一特征或者规律的模型。简单来讲就是对某一种任务进行分类,不同的种类就是对具有共性的事物的归纳描述。
个人理解分析面向对象任务的一般流程如下:

(1) 抽象归纳阶段:
对任务需求进行“分类”,得到所有包括的类别。其实这里的每一个类别就是一种事物的描述模型。例如,狗是一个概括的类,具体的可以是黑色的狗,白色的狗等;
(2) 明确模型(类)内容阶段:
分析具备的能力与属性,这里的能力是指直接的能力,也就是能做什么,也可以讲是主动的行为。属性代表这个模型具体化后(对象)本身的特征,如宽度,高度,名称等;
(3) 添加能力与属性接口
确定能力的具体内容,确定属性的类型(int 、float、double、char…);
(4)实例化具体对象,并赋予属性特定的值
(5) 组合调用实例提供的能力,完成任务
(6) 测试

2.面向对象分析举例

这里我们看一个例子。题目是:下五子棋 。
使用OOP思想分析,按照上述面向对象分析流程,可以得到如下内容:

类(对象) 能力和属性
棋盘系统 {能力:绘制棋盘、刷新画面等} ——{属性:大小行列}
黑白双方 {能力:下棋} ——{属性:名称}
游戏规则 {能力:判定输赢,犯规} ——{属性:无}

二、音符游戏框架分析

1.分析任务

“音符游戏”在前言中已经有简单介绍,根据介绍,我们可以分析出完成该任务需要的工作有如下几个方面:

  1. 边界显示
  2. 计分板显示更新
  3. 游戏菜单栏
  4. 游戏引导箭头刷新
  5. 等待键盘输入
  6. 分析判断键盘方向与引导箭头的对应关系

按照面向对象分析思想,音符游戏可以抽象归纳的类有:游戏规则画面更新游戏玩家

2.流程与结构

通过分析每个对象的任务可以总结出下面的结构图:

3.实现流程

  1. 系统API介绍
  2. 新建项目
  3. 画面更新项目新建
  4. 游戏菜单设计
  5. 游戏背景设计
  6. 计分板设计
  7. 玩家输入判断
  8. 测试功能与总结

4.简易效果

其他内容请看下期!

C++游戏系列——音符游戏(1)相关推荐

  1. WPF编游戏系列 之四 用户控件

    在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2.2中使用的C#代码过多,其实我在写这些代码时也有同感, ...

  2. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):目录

    本系列教程的示例代码下载(感谢 银光中国 提供资源分流): 第一部分源码:WPFGameTutorial_PartI(1-20节) 第二部分源码:WPFGameTutorial_PartII(21-2 ...

  3. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二)让物体动起来②

    第二种方法,CompositionTarget动画,官方描述为:CompositionTarget对象可以根据每个帧回调来创建自定义动画.其实直接点,CompositionTarget创建的动画是基于 ...

  4. 游族网络:已获得《三体》系列小说游戏开发、改编等权利

    7月29日,游族网络在互动平台回答投资者提问时表示,公司已获得<三体>系列小说游戏开发.发行.改编以及衍生产品等权利,现相关项目处于立项前期. 6月17日,游族网络发布公告称,与三体宇宙( ...

  5. 【C++】2048游戏系列---优化模块第一稿【加载图片】

    [C++]2048游戏系列---优化模块第一稿[加载图片] (更新中--) 参考博客: https://blog.csdn.net/qq_39151563/article/details/104283 ...

  6. 什么样的恐怖才是真恐怖?由最近所看的一部电影以及最喜欢的游戏系列想到的。

    春节长假即将结束,想想已经有好久没更新自己的blog了,正在等Arsenal和Crystal Palace的比赛转播,也睡不着,就写写最近的一些感想吧. 这些天除了走亲访友.合家团聚.请客吃饭之外,也 ...

  7. HTML5开发 页游/手游动画及游戏系列教程(Game Tutorial):(一)物体动起来吧

    前言 所谓高手,也就是熟悉别人制定的游戏规则.并且能在规则内跳舞的人.(随笔,转自王哲的博客) 09年的时候,为了跳槽和兴趣,转型游戏行业,因此去网上找资料学习各种游戏相关的资料.也是缘分吧,看到了深 ...

  8. 【元宇宙系列】游戏与元宇宙(下)——拉动上游产业发展并引领传统产业数字化转型

    博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 文章目录 游戏,拉动上游产业发展 游戏如何带动5G产业发展 游戏如何带动VR产业发展 游戏与数字货币 传统产业数字化发 ...

  9. Threejs系列--9游戏开发--沙漠赛车游戏【基础场景渲染】

    Threejs系列--9游戏开发--沙漠赛车游戏[基础场景渲染] 序言 准备工作 目录结构 代码一览 index.js代码 index.css代码 Camera.js代码 Sizes.js代码 App ...

最新文章

  1. 字节跳动凌晨发半个月奖金,网友:我酸了,又是别人家的公司!
  2. Lucid Sight宣布即将推出“VR云霄飞车之星际之旅”
  3. 【PC工具】Windows 上编辑树莓派(linux EXT)分区文件工具——Ext2Fsd
  4. 想成为全栈工程师,要做到哪几点?
  5. Hadoop实例之利用MapReduce实现日志清洗(附源代码)
  6. 分布式内存数据库---redis配置文件常用配置介绍
  7. 如何搭建socks5和ss节点_redis cluster搭建实践(非常详细,值得收藏)
  8. qtablewidget 选中不改变背景_C4D制作不一样的核壳结构
  9. 极光推送---安卓Demo
  10. 【英语学习】【Level 07】U01 Making friends L4 Meet your new colleague
  11. c语言实现一个编译器生成语法树,运用JavaScript构造C语言子集的编译器
  12. Java中构造函数,静态代码块,构造代码块的执行顺序
  13. Python助力性能测试——报文批量生成
  14. 自动生成html_python自动化测试中pytest的使用
  15. mysql 占比函数_MYSQL 八大优化方案
  16. robotframework的测试登陆界面代码
  17. 文件及文件夹删除失败的解决方法
  18. 最全的WiFi速率对应表(802.11b、802.11g、802.11a、802.11n、802.11ac、802.11ax)及速率计算方法
  19. QQ\微信等聊天记录备份与恢复
  20. 计算机术语输入的英文缩写,计算机术语英文缩写

热门文章

  1. 全球与中国高压泵市场现状及未来发展趋势
  2. 分享几个下载应用的网站
  3. mysql启动时报错Can't read from messagefile errmsg.sys
  4. PHP生成迅雷、快车、旋风等软件的下载链接代码实例
  5. python朋友圈表白_python表白神器你值得拥有
  6. 天猫图书采集 php,采集天猫商品详情页信息
  7. 5G+AI数字化智能工厂建设解决方案
  8. Darknet53网络结构及代码实现
  9. 谈谈CMDB,ITIL和ITSM概念和简史
  10. TV盒子大图浏览优化