热门标签 | 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的基本知识有一个全面的了解。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 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社区 版权所有