超级玛丽制作揭秘1

超级玛丽制作揭秘20地图切换  地图分两种,普通地图和隐藏地图(指通过水管进入的地图)。先讲普图地图的切换,再讲隐藏地图的切换。普通地图的切换:思路:很简单,用一个数字iMatch表示当前是第几关。每过一关,iMatch+1,加载下一张地图。存储: int iMatch;初始化: iMatch=0;(0表示第一关)过关检测:用一个函数不停地检测玩家是否到了地图终点,如果是,加载下一关的地图。函数:int GAMEMAP:: 阅读详情

两个版本的超级玛丽下载量已达到5000,谢谢大家支持。谁无法下载,请告诉我邮箱,我直接发。现在普遍反映两个问题,一没有帮助文档,二代码注释太少。今天起,我揭秘制作过程,保证讲解到每一行代码,每一个变量。

代码我已经发布了,可见做这样一个游戏并不难。今天讲准备工作,也就是所需要的开发工具。代码编写调试:VC 6.0,美术工具:Windows自带的画图(开始-程序-附件-画图)。这是最简陋的开发工具,但已足够。最好再有Photoshop,记事本或UltraEdit等等你喜欢的文本编辑工具。

游戏代码分两部分,图像部分,逻辑部分。先说图像部分:图像分两种,矩形图片和不规则图片。可在工程中的PIC文件夹下,看到所有图像资源

矩形图片有:

地面、砖块、水管、血条、血条背景。

不规则图片有:

蘑菇(玩家,敌人1,敌人2),子弹、旋风、爆炸效果、金币、撞击金币后的得分、攻击武器(那个从魂斗罗里抠来的东东)、火圈1、火圈2、箭头(用于开始菜单选择)、树木、河流、WIN标志、背景图片(游戏背景和菜单背景)。

所有图片都分成几个位图BMP文件存储。一个文件中,每种图片,都纵向排列。每种图片可能有多帧。比如,金币需要4帧图像,才能构成一个旋转的动画效果,那么,各帧图像横向排列。

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

图像层的基类是:

class MYBITMAP

 

 void Init(HINSTANCE hInstance,int iResource,int row,int col);
 void SetDevice(HDC hdest,HDC hsrc,int wwin,int hwin);

 void Draw(DWORD dwRop);

 HBITMAP hBm;
public:
 //按照行列平均分成几个
 int inum;
 int jnum;

 int width;
 int height;

 HDC hdcdest;
 HDC hdcsrc; 

这只是一个基类,上面是几个重要的数据成员和函数。它所描述的图片,是一个m行n列构成的m*n个图片,每个图片大小一致,都是矩形。显然,这并不能满足上面的设计要求,怎么解决呢?派生,提供更多的功能。但是,这个基类封装了足够的物理层信息:设备上下文HDC,和位图句柄HBITMAP。矩形图片的显示、不规则图片的显示、图片组织排列信息,这些功能交给它的派生类MYANIOBJ。

 

还有,我们最关心的问题是图片坐标,比如,不同位置的砖块、精灵、金币,这些由逻辑层处理,以后再讲,先到这里吧。

超级玛丽制作揭秘6时钟控制 类MYCLOCK 类说明:时间就是生命。这对于游戏来说,最为准确。游戏程序只做两件事:显示图片、处理逻辑。更准确的说法是:每隔一段时间显示图片并处理逻辑。程序中,要设置一个定时器。这个定时器会每隔一段时间发出一个WM_TIMER消息。在该消息的处理中,先逻辑处理。逻辑处理完毕,通过InvalidateRect函数发出WM_PAINT消息,显示各种图片。游戏就不停地运行下去,直至程序结束。时间表示:用一个整数iN 阅读详情

相关推荐

毕业设计/课程设计:基于java的超级玛丽游戏系统设计与实现

基于Java的超级玛丽游戏系统设计与实现的性能评估是对系统在游戏运行过程中的性能表现进行评估和分析,旨在验证系统是否能够满足玩家的性能需求和提供流畅的游戏体验。1、游戏运行速度评估:游戏运行速度是评估超级玛丽游戏系统性能的重要指标之一。通过测试游戏在不同配置的计算机上的运行速度,可以评估系统的性能表现。可以观察游戏在运行过程中的帧率和流畅度,以及在不同场景下的速度表现。通过对比不同配置下的游戏运行速度,可以找出系统的性能瓶颈和优化空间,并针对性地进行优化。

biyesheji1000的专栏 1291

ue4序列帧ui_UE4入门之路(UI篇):UI性能优化

一、序本文大部分内容是对2017 Epic Game的工程师郭春飚先生在 Unreal Open Day上演讲的进一步解释及实际案例分析,欢迎大家多多交流。二、基础介绍首先对UE4中UMG渲染结构进行简要介绍:User Widget:对应一个用户界面。Widget Tree:每一个 User Widget 都是存储成树状结构。Panel Widget:不会渲染出来,用于对 Child Widget...

weixin_36012152的博客 2217

深入探索开源超级玛丽:源代码与游戏开发揭秘

游戏引擎是游戏开发的核心框架,它提供了一系列的工具和接口来处理渲染、音频、物理碰撞检测、用户输入、网络通信等功能。游戏引擎可以看作是一套完整的中间件系统,它把底层的复杂性抽象化,从而允许开发者专注于游戏设计和内容创造。在更深层次上,游戏引擎的工作原理类似于操作系统,它负责管理游戏世界中的资源、执行游戏循环、提供图形渲染管道以及处理交互事件。游戏引擎通过预设的API和编程模型,使开发者能够以一种高效且一致的方式编写游戏逻辑代码。在获取游戏引擎的源代码之后,理解其内部结构和功能模块是至关重要的。

weixin_31749299的博客 1061

超级玛丽制作揭秘2

先说一下代码风格,大家都说看不懂,这就对了。整套代码约有3000行,并不都是针对这个游戏写的。我想把代码写成一个容易扩展、容易维护、功能全面的“框架”,需要什么功能,就从这个框架中取出相应功能,如果是一个新的功能,比如新的图像显示、新的运动控制,我也能方便地实现。所以,这个游戏的代码,是在前几个游戏的基础上扩充起来的。部分函数,部分变量在这款游戏中,根本不用,但要保留,要为下一款游戏作准备。只要理

programking的快乐生活 2006

超级玛丽opengl实现

链表 win32 opengl 实现了一个比较简易的超级玛丽 还有一个地图编辑器 想要编辑器源码的话 我再传 先传超级玛丽源码

自制超级玛丽MFC程序 附源码及文档

mfc版超级玛丽的源程序,里面有对各函数以及操作、地图等思路的说明,欢迎对游戏及贴图感兴趣的朋友下载研究

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

首先,我说说对C++的最直观的感受吧!熟悉了.net 智能提示,开始一开始发现C++根本没有提示了。后来google了一下,下载了一个visual assist 这个插件,比vs自动提示强多了。 然后,就是习惯了在.net中,把所有的声明和方法实现写在同一文件中。可是C++不是这么回事。 他一个声明在头文件中,实现 在源文件中,说实在话,一开始并怎么习惯。后来渐渐就习惯了。然后,写C++的文件就是...

6625

超级玛丽制作详细大解密

本源码资源对刚希望学习游戏开发的朋友来说是一个不错的开始,简单易懂.至少说我是这样认为的,里面没有设计多深奥的东西,希望对你是个好的开始

超级玛丽制作揭秘7字体管理 类MYFONT

类说明:游戏当然少不了文字。在超级玛丽中,文字内容是比较少的,分两类:游戏菜单中的文字,游戏过程中的文字。菜单中的文字包括: "制作: programking 2008年8月", "操作:   Z:子弹   X:跳   方向键移动  W:默认窗口大小", "地图文件错误,请修正错误后重新启动程序。", "(上下键选择菜单,回车键确认)", "开始游戏", "操作说明", "博客: http://b

programking的快乐生活 1394

超级玛丽实例程序 mfc c++编写

超级玛丽 实例程序 mfc c++编写 简单易懂 适合初学者 visual c++ 6.0 平台 有基本功能

超级玛丽制作揭秘.zip

======================================================================== WIN32 APPLICATION : mario01 ======================================================================== AppWizard has created this mario01 application for you. This file contains a summary of what you will find in each of the files that make up your mario01 application. mario01.cpp This is the main application source file. mario01.dsp This file (the project file) contains information at the project level and is used to build a single project or subproject. Other users can share the project (.dsp) file, but they should export the makefiles locally. ///////////////////////////////////////////////////////////////////////////// AppWizard has created the following resources: mario01.rc This is a listing of all of the Microsoft Windows resources that the program uses. It includes the icons, bitmaps, and cursors that are stored in the RES subdirectory. This file can be directly edited in Microsoft Visual C++. res\mario01.ico This is an icon file, which is used as the application's icon (32x32). This icon is included by the main resource file mario01.rc. small.ico %%This is an icon file, which contains a smaller version (16x16) of the application's icon. This icon is included by the main resource file mario01.rc. ///////////////////////////////////////////////////////////////////////////// Other standard files: StdAfx.h, StdAfx.cpp These files are used to build a precompiled header (PCH) file named mario01.pch and a precompiled types file named StdAfx.obj. Resource.h This is the standard header file, which defines new resource IDs. Microsoft Visual C++ reads and updates this file. ///////////////////////////////////////////////////////////////////////////// Other notes: AppWizard uses "TODO:" to indicate parts of the source code you should add to or customize. by cwc206.5d6d.com /////////////////////////////////////////////////////////////////////////////

超级玛丽制作揭秘9精灵结构struct ROLE

两个月过去了,还有人关注超级玛丽的制作。正如郭老师所说,我很欣慰。我的代码中,注释很少。有的网友提醒我,没有注释的情况下,时间长了,自己也看不懂了。我认为代码的评价标准是:功能正确,扩展方便,结构清晰。为了感谢大家支持,我继续讲代码。现在我是公务员,工作很忙,讲解要慢一些。今天开始讲逻辑层:struct ROLE这个结构用来存储两种精灵:敌人(各种小怪)和子弹(攻击方式)。敌人包括两种蘑菇

programking的快乐生活 934

Blender图解教程:马里奥食人花三部曲(一)建模和贴图

教程《Blender图解教程:马里奥食人花三部曲(一)建模和贴图》的源文件,教程地址:https://orzgame.blog.youkuaiyun.com/article/details/105821426

超级玛丽

MARIO CODE INSIDE超级玛丽制作揭秘制作 programking  博客 http://blog.youkuaiyun.com/programking  目  录 一、       超级玛丽制作揭秘1工程开始... 2二、       超级玛丽制作揭秘2图片基类MYBITMAP. 4三、       超级玛丽制作揭秘3游戏背景 类MYBKSKY. 7四、 

lipu13314601878的专栏 3087

flash actionscript3 as3编写的 超级玛丽 超级马里奥 游戏 源代码.zip

flash actionscript3编写的 超级玛丽 超级马里奥 游戏 源代码.zip

马里奥素材包

马里奥素材图片包,共有88张,包括人物,墙体,怪物等的素材图片!

超级玛丽制作揭秘19视图

 怎样把所有东西都显示在窗口中,并随着玩家移动呢?思路:玩家看到的区域称为视图,即12格高,16格宽的窗口(每格32*32像素)。先把整个地图则绘制在一个DC上,然后从这个地图DC中,截取当前视图区域的图像,绘制到窗口中。修改视图区域的坐标(横坐标增加),就实现了地图的移动。初始化:函数:BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)代

programking的快乐生活 1107

基于RK3588与FPGA的SDI视频处理系统:从MIPI CSI-2输入到DSI输出的全链路解析

本文深入解析了基于RK3588与FPGA的SDI视频处理系统全链路。系统利用FPGA作为高速接口转换与流管理核心,将SDI信号转换为MIPI CSI-2数据流送入RK3588进行智能图像处理与AI分析,处理结果再通过MIPI DSI回传,最终由FPGA控制编码为SDI输出,实现了专业视频接口与强大算力的高效协同。

s1t2u3的博客 667

超级玛丽制作揭秘3 游戏背景类MYBKSKY

类说明:这是一个专门处理游戏背景的类。在横版游戏或射击游戏中,都有一个背景画面,如山、天空、云、星空等等。这些图片一般只有1到2倍屏幕宽度,然后像一个卷轴一样循环移动,连成一片,感觉上像一张很长的图片。这个类就是专门处理这个背景的。在超级玛丽增强版中,主要关卡是3关,各有一张背景图片;从水管进去,有两关,都用一张全黑图片。共四张图。这四张图大小一致,纵向排列在一个位图文件中。MYBKSKY这个类,

programking的快乐生活 2077

Qt6安装保姆级教程:从国内镜像下载到配置避坑指南(附清华/中科大源)

本文提供详细的Qt6安装与配置指南,重点介绍如何利用清华大学、中国科学技术大学等国内镜像源解决下载速度慢的问题。内容涵盖在线安装器获取、组件选择策略、环境变量配置以及常见编译与部署问题的排查方法,旨在帮助国内开发者高效、顺畅地完成Qt6开发环境搭建。

weixin_29281915的博客 633

避坑指南:将大华官方Java SDK无缝迁移到SpringBoot 2.x项目的完整流程

本文详细介绍了如何将大华官方Java SDK无缝迁移到SpringBoot 2.x项目,重点解决内存管理、连接池设计和异步处理等核心问题。通过设备连接池化、异步非阻塞接口改造和内存管理优化,实现刷卡、刷脸等认证功能的高效整合,提升Web服务的稳定性和性能。

weixin_42557830的博客 417
上一篇: 超级玛丽增强版新鲜出炉,源码发布
下一篇: 超级玛丽制作揭秘2
programking
博客等级 码龄23年 450粉丝 140原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值