热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

【Unity3D开发小游戏】《超级马里奥》游戏教程

【Unity3D开发小游戏】《超级马里奥》游戏教程2019年09月12日16:21:15恬静的小魔龙阅读数363文章标签:UnityUnity3d开发小游戏更多分

【Unity3D开发小游戏】《超级马里奥》游戏教程

2019年09月12日 16:21:15 恬静的小魔龙 阅读数 363 文章标签: UnityUnity3d开发小游戏 更多

分类专栏: Unity3D日常 Unity3d手游开发 Unity3D开发小游戏

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/q764424567/article/details/100773023


一、前言

超级马里奥游戏于1985年为任天堂娱乐系统发布,成为有史以来最受欢迎的电子游戏之一。

当涉及到好的游戏设计时,这个游戏是一个很好的例子。在本教程中,我们将创建游戏的一个小测试场景,并尽可能地关注核心机制。我们将使用Unity3D引擎

和往常一样,每件事都会一步地解释,并且尽可能简单,这样每个人都能理解它。


二、版本

Unity5.0.0f4


三、正文


1.主照相机设置

现在我们可以选择主照相机在Hierarchy使用典型的蓝色背景色 (红色=107, 绿色=140, 蓝色=255),调整大小而位置所以游戏看上去就像:
在这里插入图片描述


2.艺术风格

为了防止版权问题,我们不能在本教程使用原超级马里奥图片。相反,我们将画我们自己的Sprites,使他们看起来像原来的游戏。

在我们开始之前,让我们创建一个新的Sprites文件夹中的项目区:
在这里插入图片描述
== 这就是我们把Sprite放在这里的地方。这是一个花哨的游戏开发词,用来表示图像。)==


3.石头

石头的图片
我们首先画一个16x16像素石材绘图工具中的图像,如:
在这里插入图片描述
注意:右击图像,选择另存为。并将其保存在项目的Assets/Sprites文件夹。

现在,我们可以在项目区然后在Inspector修改导入设置:
在这里插入图片描述
注:Pixels to Unit值为16意味着16个像素的大小等于游戏世界中一个单元的大小。我们将使用这个值作为我们所有的纹理。因此,如果我们想将两个16x16雪碧放置在一起,我们可以使用以下位置(1, 0), (2, 0)诸若此类。

现在我们可以从项目区进入场景为了把它添加到游戏世界中:
在这里插入图片描述
让我们在Hierarchy选择这个物体,在Inspector并将其坐标改为(0, 0, 0):
在这里插入图片描述
注意:我们想制作一个2D游戏,所以我们并不真正关心Z坐标。它将是0对于我们游戏中的所有对象(除了相机)。在2D游戏中我们只关心X(水平坐标)和Y(垂直坐标)。

分选层Sorting Layer
因为我们是在一个二维游戏世界,会有一些情况下,几个图像是画在对方之上,例如,当马里奥站在灌木丛前。我们总是希望灌木丛在后台,这样马里奥就会被画在前面。(否则我们就看不到他了).

让我们告诉Unity,石头总是应该在幕后。这就是分选层我们可以更改石头的排序层,如果我们查看检查器中的Sprite Renderer组件:
在这里插入图片描述
让我们选择添加排序层.。从分选层列表,然后添加Background层,并将其移动到第一个位置,如下所示:
在这里插入图片描述
注意:Unity从上到下画层,因此背景中的任何内容都将位于列表的顶部。

现在我们可以重新选择石头并分配我们的新Background排序层:
在这里插入图片描述
石物理
现在的石头只是一个形象,仅此而已。这不是物理世界的一部分,马里奥将无法在上面行走或任何东西。我们需要添加一个Collider2D让它成为物理世界的一部分,这意味着事物将与石头相撞,而不是跌落或穿过石头。

我们可以添加一个Collider2D通过在Inspector选择添加组件->物理2D->Box Collider 2D:
在这里插入图片描述
现在石头是物理世界的一部分,就这么简单。

添加更多的石头
现在我们可以添加更多的石头到我们的场景。我们去看看Hierarchy在其中,我们右键单击当前的石头,然后选择Duplicate:
在这里插入图片描述
我们将把新的石头放置在(x=1,y=0):
在这里插入图片描述
让我们重复这个工作流程,直到我们有两排21块石头(y=0处一行,y=-1处一列)…重要的是始终将它们放置在圆角坐标上,如(2, 0)从来没有(2.003, 0.005)…如果我们按下Play:
在这里插入图片描述


3.灌木丛和云

就像在原来的超级马里奥兄弟游戏,我们也将添加一些灌木丛和云的背景。与往常一样,我们将从绘制图像开始:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:右击每个图像,选择但作为.。把它们全部保存在项目中资产/Sprites文件夹。

我们将使用以下方法导入设置对于所有图像:
在这里插入图片描述
现在我们可以把Sprites 从项目区拖入到场景中,把他们安置在我们想让他们去的地方:
在这里插入图片描述
因为它们是背景的一部分,所以我们在Hierarchy然后分配Background再次排序层:
在这里插入图片描述
注意:如前所述,背景排序层确保这些对象总是绘制在其他所有内容的后面。换句话说,马里奥总是会被吸引到他们面前。

我们的团结超级马里奥兄弟。游戏慢慢开始看起来像一个!


5.管道

图片
这些绿色管道是超级马里奥兄弟公司的重要组成部分,所以让我们画一个:
在这里插入图片描述
注意:右击图像,选择但另存为.。并将其保存在项目的Assets/Sprites文件夹。

下面是导入设置我们的管道:
在这里插入图片描述
注意:即使它是一个32x32像素的Sprites,我们仍然使用相同的像素转到单位时时刻刻都很有价值。

现在我们可以把Sprites从我们的项目区进入场景…我们将在世界的右侧增加两条管道:
在这里插入图片描述
管物理
管道应该是物理世界的一部分,这意味着马里奥不应该直接穿过它们。相反,他应该与他们碰撞。要使它们成为物理世界的一部分,我们所要做的就是在Hierarchy选择物体然后在Inspector单击添加组件->物理二维->Box Collider 2D…如果我们看看场景然后,我们可以看到绿色对撞机盒周围的每一个管道:
在这里插入图片描述
我们可以看到,管道的下部比我们的Collider要薄一点:
这没什么大不了的,但让我们慢慢来,用一个巧妙的小技巧来创造一个完美的对Collider。一种选择是只使用多边形Collider,这会带来一些负面影响。

更优雅的解决方案(至少在这种情况下)将另一个Collider添加到我们的管道中,然后对齐第一个Collider,使其适合管道的上部和第二个Collider,使其适合管道的下部:
在这里插入图片描述
现在管道的物理是完全真实的。像这样的小调整才能让游戏感觉正确晚些时候。


推荐阅读
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • 最近学习反射机制的时候Properties.load(读取本地文件流的时候怎么也找不到加载文件后面发现IDEA的默认根目录是在它的Project工程下IDEA的文件目录和Ec ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了一些好用的搜索引擎的替代品,包括网盘搜索工具、百度网盘搜索引擎等。同时还介绍了一些笑话大全、GIF笑话图片、动态图等资源的搜索引擎。此外,还推荐了一些迅雷快传搜索和360云盘资源搜索的网盘搜索引擎。 ... [详细]
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
author-avatar
郭建将_683
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有