C++超级玛丽制作揭秘(包含完整源文件与文档)

小编是一个有着5年工作经验的全栈开发工程师,关于C++编程,自己有做材料的整合,一个完整的C++编程学习路线,学习材料和工具,能够进我的群8254,14254收取,免费送给大家,希望你也能凭着自己的努力,成为下一个优秀的程序员。

言归正卷,说一说这个超级玛丽的游戏。先看看,我对游戏的类结构的分类,如果有不妥的地方,恳请大家指正。

从层次结构来看,分成这几个层①图像层,②逻辑层,③结构和表。

图像层包括①图像基类MYBITMAP,②游戏背景MYBKSKYàMYBITMAP,③游戏图片MYANIOBJàMYBITMAP,④魔法攻击MYANIMAGICàMYBITMA.

逻辑层包括①游戏逻辑GAMEMAP,②时钟处理MYCLOCK,③字体处理MYFONT,④跟踪打印FILEREPORT,⑥玩家控制MYROLEàMYBITMAP。

结构和表包括①精灵结构ROLE,②物品结构MapObject,③地图信息表MAPINFO。

那每个类的结构又是那么样子的,是骡子还是马拉出来溜溜。我们在往下看一看。

图像层的结构就这样简单,逻辑层只需要确定“哪个图像,哪一帧”这两个参数,就能在屏幕上绘制出所有图片。

说一说一个图片的基类。他的源代码的架构又是这个样子的。

今天先讲最基础的图像类MYBITMAP:

成员函数功能列表:

这个基类的部分函数和变量,在这个游戏中没有使用,是从前几个游戏中保留下来的,所以看起来有些零乱.这个游戏的主要图像功能,由它的派生类完成.由于基类封装了物理层信息(dc和句柄),派生类的编写就容易一些,可以让我专注于逻辑含义.

基类的函数实现上,很简单,主要是以下几点:

1.图片初始化:

下面再来说一说游戏背景类MYBKSKY

类说明:这是一个专门处理游戏背景的类。在横版游戏或射击游戏中,都有一个背景画面,如山、天空、云、星空等等。这些图片一般只有1到2倍屏幕宽度,然后像一个卷轴一样循环移动,连成一片,感觉上像一张很长的图片。这个类就是专门处理这个背景的。在超级玛丽增强版中,主要关卡是3关,各有一张背景图片;从水管进去,有两关,都用一张全黑图片。共四张图。这四张图大小一致,纵向排列在一个位图文件中。MYBKSKY这个类,派生于MYBITMAP。由于背景图片只需要完成循环移动的效果,只需要实现一个功能,而无需关心其他任何问题(例如句柄、dc)。编码起来很简单,再次反映出面向对象的好处。

实现的原理:

怎样让一张图片像卷轴一样不停移动呢?很简单,假设有一条垂直分割线,把图片分成左右两部分。先显示右边部分,再把左边部分接到图片末尾。不停移动向右移动分割线,图片就会循环地显示。

成员函数功能列表:

看一看图片显示类MYANIOBJ

类说明:这个类负责游戏中的图片显示。菜单背景、通关和游戏结束的提示图片,由MYBITMAP处理(大小一致的静态图片)。游戏背景由MYBKSKY处理。其余图片,也就是游戏过程中的所有图片,都是MYANIOBJ处理。

技术原理:游戏中的图片大小不一致,具体在超级玛丽中,可以分成两类:矩形图片和不规则图片。在位图文件中,都是纵向排列各个图片,横向排列各帧。用两个数组存储各个图片的宽和高。为了方便显示某一个图片,用一个数组存储各个图片的纵坐标(即位图文件中左上角的位置)。使用时,由逻辑层指定“哪个图片”的“哪一帧”,显示在“什么位置”。这样图片的显示功能就实现了。

看一看魔法攻击类MYANIMAGIC

类说明:玩家有两种攻击方式:普通攻击(子弹),魔法攻击(旋风)。这个类是专门处理旋风的。我最初的想法是用一些特殊的bitblt方法制造特效,例如或、与、异或。试了几次,都失败了。最后只能用“先与后或”的老方法。这个类可看成MYANIOBJ的一个简化版,只支持不规则图片的显示。

THE END
1.超级玛丽游戏C++c++超级玛丽游戏代码超级玛丽游戏C++ cheesems 于2024-10-19 11:28:12 发布 阅读量218 收藏 点赞数 1 文章标签: 游戏 c++ 开发语言 版权 #include<stdio.h> int main() { printf( " ***\n" " ***\n" " ####.\n" " #..#####\n" " ###### ### ###\n" " ## #..https://blog.csdn.net/SHIFT23456/article/details/143071353
2.超级玛丽游戏源代码VC源码¦游戏后端C++超级玛丽游戏源代码 (0)踩踩(0) 所需:1积分 安卓app开发开发项目源码 2024-12-24 16:32:15 积分:1 binary-tree-exercise 2024-12-24 16:29:13 积分:1 二叉树 2024-12-24 16:28:23 积分:1 cron-manager 2024-12-24 16:19:43 积分:1 https://www.coder100.com/index/index/content/id/2818072
3.HTML5网页版超级玛丽游戏.rarHTML5网页版超级玛丽游戏.rar HTML5网页版超级玛丽游戏,代码按文件夹,分别演示了每一个步骤的具体细节,分8个步骤来实现超级玛丽游戏,虽然功能不是太完善,不过实现了超级玛丽的基本游戏逻辑和界面动画特效,掌握这些编程技巧,对于编写更为高级的HTML5网页游戏有参考作用。https://www.iteye.com/resource/weixin_39841365-11310352
4.dkdk/SuperMario:这是一个基于QT,使用c++编写的2D超级玛丽游戏supermary超级玛丽 一个简单的超级玛丽游戏,学习Qt时编写的,需要优化的地方有很多,代码写的也不太严谨,目前只实现了第一关,后面的关卡需要在Vector中存储地图信息。实现了吃蘑菇,怪物,火球,跳跃等功能 基于QT,使用C++编写开发环境为:MacOS(Intel) + QtCreator 5.12,请使用QtCreator打开super_mary.pro文件 mac系统下https://github.com/wwwwdkdk/SuperMario
5.c++游戏下载c++游戏合集超级玛丽单机版 v2.0.31 等级: 9.6 2023-11-22 6.8MB 简体中文 查看 推荐理由: 超级玛丽单机版,在这款游戏中玩家可以控制超级马里奥进行冒险。游戏中的目标是收集金币,并在通关过程中拯救被困的公主。游戏具有丰富的关卡和道具,玩家可以通过探索和跳跃来克服各种障碍和敌人。 扫雷v1.26 等级: 9.2 2023-11-09 https://www.92sucai.com/zt/cyouxiheji/
6.超级玛丽下载超级玛丽硬盘版下载单机游戏下载· Microsoft Visual C++ 2005 SP1 6MB · 说明:必备运行库即是超级玛丽游戏运行所必须要安装的程序,如果没有这些程序,游戏可能无法正常运行。 点此下载常用运行库整合包(551M)含常见错误解决方法。 资源地址版本说明我要报错 郑重声明: 各位玩家,游侠网本身不提供下载资源,以下资源地址均为网友整理提供,并且需离开https://down.ali213.net/mini/Mario.html
7.首页洛谷创办于2013年,致力于为参加noip、noi、acm的选手提供清爽、快捷的编程体验。它拥有在线测题系统、强大的社区、在线学习功能。很多教程内容由各位oiers提供的,内容广泛。无论是初学oi的蒟蒻,还是久经沙场的神犇,均可从中获益,也可以帮助他人,共同进步。是学习noiphttps://www.luogu.com.cn/
8.c语言编程小游戏实现的超级玛丽游戏源码int game::GetCommand() { int c = 0; if (GetAsyncKeyState('A') & 0x8000) c |= CMD_LEFT; if (GetAsyncKeyState('D') & 0x8000) c |= CMD_RIGHT; if ((GetAsyncKeyState('W') & 0x8000)||(GetAsyncKeyState('K') & 0x8000)) https://www.jianshu.com/p/1fa2e23cc371
9.任天堂游戏任天堂游戏排行任天堂游戏下载推荐理由:塞尔达传说:太阳神战士之谜DX是一款铁杆粉丝自制的《塞尔达传说》同人游戏,游戏使用使用了C++开发,是一款 下载 超级玛丽摩托 11-09-022M flash小游戏 推荐理由:超级玛丽摩托一款很搞笑的超级玛丽翻版小游戏。 时代不同了,连超级玛丽都放弃了步行采集金币的日子,他用 https://www.fxxz.com/k/rentiantang/
10.游戏数值策划笔试题(精选9篇)5.《超级玛丽奥》、《上古卷轴》、《俄罗斯方块》、《脑锻炼》、《孢子》、《魂斗罗》、《生化危机》、《猎天使魔女》、《大菠萝》、《仙剑奇侠传》、《最终幻想》、《合金装备》、《星际争霸》、《DOTA》、《GTA》、《怪物猎人》、《植物大战僵尸》、《勇者斗恶龙》、《博德之门》、《使命召唤》、《星际争霸https://www.360wenmi.com/f/file1haif8tm.html
11.变态猫版超级玛丽变态猫版马里奥超级变态猫版马里奥游戏简介 传说中的《猫版超级马里奥》,又称猫版玛丽,包含了并且恶搞了几乎全部的马里奥的特色元素,《猫版超级马里奥》完全融入游戏性中,非常有难度,在屡次死亡的同时也会赞叹游戏制作者的高水平和对马里奥宅文化的了解。体验下《猫版超级马里奥》的变态之处吧! https://www.doyo.cn/game/3730
12.java超级玛丽完整源代码超级玛丽c++代码java超级玛丽完整源代码 超级玛丽c++代码 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、c++是什么? 二、实现代码 1.引入头文件 2.宏定义 3.定义类 4.主函数 5.运行效果 三、总结 一、c++是什么? C++ 被广泛用于开发各种类型的软件,包括系统软件、应用程序、游戏开发、嵌入式https://blog.51cto.com/u_106065/11208880
13.华为OD机试真题目录汇总C++代码解答版?1100 - 超级玛丽通过吊桥的走法 ?1101 - 特异性双端队列 ?1102 - 最长元音子串的长度 ?1103 - 二进制差异数 ?1104 - 简单的解压缩算法 ?1105 - 整理扑克牌 ?1106 - 计算网络信号强度 ?1107 - 简单的自动曝光、平均像素值 ?1108 - 查找重复代码 http://www.zhangshiyu.com/post/60399.html
14.2024华为OD机试真题最新题库(B+C+D卷)+OJ在线刷题(C++Java2024华为OD机试真题(C++语言)B+C+D卷 2024华为OD机试真题(JS 语言) B+C+D卷 2024华为OD机试真题(Golang语言) B+C+D卷 一、什么是华为OD,什么是华为OD机试? 华为OD是Outsourcing Dispacth模式,是华为和外企德科联合招聘的简称。目前华为大多数是OD招聘。OD模式也是华为提出的一种新https://www.jindouyun.cn/document/industry/article/179720