商道如狼道 发表于 2024-12-3 06:15:34

GameSalad IOS 游戏开发学习手册(一)

原文:Learn GameSalad for iOS Game Development for iPhone, iPad, and HTML5
协议:CC BY-NC-SA 4.0
零、简介

2007 年,苹果推出了 iPhone,彻底改变了我们的生活方式,但最重要的是 iOS 的诞生。本日,iOS 被用于 iPhone、iPad 和 iPod Touch。通过 App Store,出现了一种新的贸易模式,提供超过 50 万个应用和游戏,导致 250 亿次下载。这种新的贸易模式对于游戏创业者和爱好者来说是一个巨大的时机,由于 App Store 中有超过 100,000 款游戏。
GameSalad 的使命是资助你成为这场革命的积极到场者。GameSalad 是一款功能强大的 iOS 图形 2D 游戏开发引擎。据 GameSalad 称,App Store 中超过 3%的游戏是用其开发工具 GameSalad Creator 创建的。自 2009 年以来,该创作者已被下载超过 15 万次。
GameSalad 的强大之处在于它不需要任何编程知识。你没看错:根本没有编程!你专注于你的游戏逻辑,通过一个直观的所见即所得的界面,你用一些拖放动作来计划你的游戏。忘记面向对象编程(OOP)和 Objective-C 的漫长学习曲线;GameSalad 不再需要如许做。
然而,这种力量不是没有一些约束的。比方,你只能开发 2D 游戏。别的,您只能利用一组特定的功能,这些功能很重要,但与 iOS SDK 相比并不完备。不要担心——这些限制仍然会给你留下无限数目的游戏来创作!
GameSalad 有两个版本:免费版和专业版。免费版显然是免费的,而专业版每年需要 299 美元。我在第一章中先容了这两个版本的区别。
这本书分为三部门。第一部门为你提供 GameSalad 的基本技能。第一章提供了在电脑上安装 GameSalad 所需工具的分步指南。在第二章和第三章中,你计划了一个功能齐全的经典游戏 Pong,你认识了场景、演员、属性和活动。然后你在第四章中创造一个新版本的 Arkanoid,巩固你的技能并第一次利用加速度计。第五章结束了这本书的第一部门,你翻拍了《太空入侵者》并在你的武器库中添加了新的工具。
第二部门在 GameSalad 中加入更复杂的功能和项目。在第六章和第七章中,你创建了一个全功能的雷同愤怒的小鸟的游戏,学习所需的物理知识并创建了一个非常先辈的菜单体系。在第八章中,你将音乐和声音添加到你的项目中,并用一个迷宫游戏实现一个非常强大的视觉结果。
第三部门将你的游戏带到苹果市肆,完成路程。在第九章中,你通过在游戏中心打磨和添加特性来完成在第四章中开始的雷同 Arkanoid 的项目。第十章举例说明白一些带有 GameSalad 的非游戏应用。您还将相识设备时钟功能。在第十一章中,你通过一个非常详细的分步教程在 App Store 上发布你的游戏。第十二章对第十二章中的游戏推广进行了简朴先容。你学习的主要策略,让你的游戏能见度,使它有大概成为下一个大击球手!
一、预备您的计划情况

对于任何游戏计划师来说,工作情况都是一个非常重要的方面。你不仅会在合适的情况中获得效率,还会获得乐趣。假设您即将完成游戏,并盼望立即在您的设备上测试它,但随后您意识到您还没有安装测试情况。固然这大概只需要几分钟,但这难道不令人沮丧吗?假如这个故事引起了你的共鸣,花适当的时间遵照本章讨论的步骤。
在开始利用 GameSalad 之前,您需要预备好计划情况。本章将引导您设置所需的工具。
GameSalad 要求

以下是利用 GameSalad 开发 iOS 游戏的最低硬件和软件要求:
   

[*]Intel-based Mac with 1gram
[*]Mac x 10.6 (snow leopard) or later
[*]AniOS devices (ideally one device per target platform)
[*]Xcode 4.2 or higher
[*]GameSalad Creator 0.9.91 或更高版本
[*]GameSalad Viewer 0.9.91 版拜占庭·阿列诺·阿列诺维奇·阿列诺维奇·阿列诺维奇·阿列诺维奇·阿列诺维奇·阿列诺维奇·阿列诺维奇·阿列诺维奇·阿列诺维奇·阿列诺维奇·阿列诺维奇
尽管运行 Snow Leopard 的任何基于英特尔的 Mac 电脑都充足了,但我猛烈发起你买一台屏幕为 15 英寸或更大、内存为 2GB 的电脑。这将减轻你的生活,由于编译时间会变得更短。
在这一章中,我将在以下几个方面引导你:
   

[*]哦,天啊加米沙拉
[*]Register for the iOS Developer Program
[*]Install Xcode
[*]Install GameSalad creator
[*]Install GameSalad Viewer
注册到 GameSalad

要利用 GameSalad,你实际上不需要在 GameSalad.com 上注册,但我猛烈发起你这么做,原因有几个。首先,这会让 GameSalad 知道你是用户。由于 GameSalad 是一家非常年轻的初创公司,相识他们的开发者社区对他们来说非常重要。用户越多,平台越有吸引力。第二,这将允许你在论坛上发布消息或题目。当你需要支持时,可以或许利用社区是一种无价的资源。第三,你将有资格获得 GameSalad 的标准技术支持。第四,你需要它来发布你的游戏。发布游戏和复制本书的大部门示例并不逼迫要求注册为 Promember,但是要访问 Promember 功能,您必须拥有一个有效的 Pro 帐户(每年 299 美元)。我将在第九章中先容 Promember 的一些特性。当你感觉更熟练时,你可以决定注册。
要注册,请打开您最喜好的网络欣赏器并转到(http://gamesalad.com/download/getCreator)。
您需要:
   

[*]Provide a valid email address.
[*]Select a user name.
[*]Select a password.
[*]Agree to the terms of use and privacy policy.
图 1-1 表现了极轻注册表单。
https://i-blog.csdnimg.cn/blog_migrate/a40d20ce3e27383e09da2b00f140a851.png
图 1-1。??【GameSalad】登记表
您可以在(http://gamesalad.com/terms)查看条款和条件。您可以在(http://gamesalad.com/privacy)查看隐私政策。
填写所需信息后,您将被引导至 GameSalad Creator 下载和安装说明页面。
假如还不想注册,可以在(http://gamesalad.com/download/latestCreator)直接进入下载页面。
下载文件时,您可以继续阅读本章。我将在本章后面提供安装说明。
关于 GameSalad Pro

成为职业玩家有几个好处,尤其是假如你打算从游戏开发中获得一个严肃的业务。
一个专业帐户将使你可以或许在没有 GameSaladsplashscreen 的情况下在 iOS 上发布(把你的改为!),将外部链接放入您的应用(在精简版中实现“购买完备版”链接),访问 GameCenter 和 iADs 功能,实现应用内购买和 Kiip 货币化,以及访问优先技术支持。
别的,固然超出了本书的范围,专业会员资格将使您可以或许在 Android 平台上发布。你的埋伏市场瞬间扩大了。
图 1-2 总结了成员资格的特征。
https://i-blog.csdnimg.cn/blog_migrate/3d8bd2bf80e2f6c66505ac00f77ef240.png
图 1-2。 Pro 会员功能
在 Pro 计划中注册非常容易。利用您的免费会员帐户登录 GameSalad 网站。假如您跳过了本章的注册部门,现在返回并注册也不迟。然后你需要去(http://gamesalad.com/membership/join)。您必须再次提供您的暗码。您可以通过 PayPal 或亚马逊支付。
在 iOS 开发者计划中注册

假如您已经注册了 iOS 开发者计划的付费版本,您可以跳过这一部门,直接安装 Xcode。
你不需要在任何 iOS 开发者程序中注册就可以利用 GameSalad,但一旦你想在应用市肆中发布应用或访问一些 GameCenter 和 iADs 功能,这将成为逼迫性的。为了在你的设备上安装 GameSaladiOS Viewer 和测试你的游戏的暂时版本,这也是必须的。
别的,iOS 开发者计划非常实惠。个人访问每年只需 99 美元,你可以访问成千上万的教程和视频,注册访问 WWDC,预览将来的 iOS 版本,以及在 App Store 上的发布权。
别的,为了在 iOS 设备上安装任何 iOS 应用,必须在开发者计划中注册。要安装 GameSalad Viewer,您需要直接从 Xcode 安装到您的 iOS 设备。这称为暂时安装。开发者计划使您可以利用多达 100 台设备来完成这项工作。
所以让我们开始吧。打开您的网络欣赏器并转到(http://developer.apple.com/programs/ios/.)
然后单击“立即注册”按钮。
单击继续按钮。
根据您的情况选择一个选项,拜见图 1-3 。
假如你是苹果的新开发者,
a)而且您还没有 Apple ID(或者您盼望为开发创建一个特定的 ID),那么您需要选择:
我需要为苹果开发者计划创建一个新账户和苹果 ID。
b)而且您有一个 Apple ID,那么您需要选择:
我有一个 Apple ID,我想用它来注册 Apple 开发者计划。
**注意:**Apple ID 是您的帐户,您大概已经利用它在 iTunes 上购买、注册 Apple 产物或访问 Mac 应用市肆。
假如你是现有的苹果开发者,
a)但未在付费程序(iOS 或 Mac)中注册,则您需要选择:
我是苹果公司的注册开发者,我想加入苹果公司的付费开发者计划。
b)您已经注册了一个付费计划,但您想添加另一个套餐,请选择:
我目前注册了 iOS 开发者计划或 Mac 开发者计划,我想在现有帐户中添加一个额外的计划。
假如您注册了 Mac 开发职员计划并盼望添加 iOS 开发职员计划,或者您注册了 iOS 开发职员计划并盼望升级为公司注册,则属于后一种情况。
https://i-blog.csdnimg.cn/blog_migrate/d78a47b0f28987178422a343c6bacc50.png
图 1-3。 新的或注册的苹果开发者页面
出于本书的目标,我将向您展示为注册 iOS 开发者计划而创建新的 Apple ID 的步骤。
下一步是选择个人订阅还是公司订阅。我猛烈发起您选择个人订阅。但是,假如你是一个公司,你应该注册一个。有了个人订阅,这个过程非常快速和简朴。不到一天你就可以开始工作了。公司认购需要你提交许多法律文件,如公司注册,证明你有权注册公司等。苹果公司,验证过程需要几天时间。
下面就以个人为单位,如图图 1-4 所示。
https://i-blog.csdnimg.cn/blog_migrate/d54d1de11a78a69881d71ede7ac9ad2c.png
图 1-4。 个人或公司认购
下一步是创建一个 Apple ID。利用表 1-1 预备您需要在苹果开发者计划登记表上提供的信息。
https://i-blog.csdnimg.cn/blog_migrate/07d3053fbbb489614ed4b91fd78d478f.png
https://i-blog.csdnimg.cn/blog_migrate/1040a462732eb6c96275bdd57aacf761.png
接下来,你需要提供一些关于你作为苹果开发者的运动的额外信息。苹果想知道你在哪个平台上开发:iOS、Mac OS X 还是 Safari。
这还没有结束;苹果确实很好奇你的意图。您需要根据表 1-2 中的选择选择您的主要目标市场。
https://i-blog.csdnimg.cn/blog_migrate/e147eb700a47205b0df81d99ad1703de.png
然后,Apple 会扣问您打算开发的应用领域,并根据表 1-2 提供相同的选择(但您可以选择多个)。
然后,您必须指出您的应用的主要种别。
   

[*]Free application
[*]business application
[*]Enterprise (internal) application
[*]Web application
你还必须提供你多年的开发履历和在其他平台上的开发履历的信息(图 1-5 )。
https://i-blog.csdnimg.cn/blog_migrate/7d3c86377c8a64be7d139faa4842edac.png
图 1-5。 开发者体验题
正如你刚刚履历的,苹果喜好相识他们的开发者社区。
下一页要求您同意注册苹果开发者协议。您可以在以下所在以 PDF 文件的情势查看该协议(在撰写本文时有效):
(http://developer.apple.com/programs/terms/registered_apple_developer_20100301.pdf)
阅读协议,勾选页面底部的方框体现同意。下一步是输入刚刚发送到您之前提供的电子邮件所在的验证码,如图图 1-6 所示。
https://i-blog.csdnimg.cn/blog_migrate/d423ccffd9e5bf655434488531d79907.png
图 1-6。 验证码页面
输入验证码后,您将被引导至付费信息页面。你需要在你的光荣卡上输入准确的信息。
选择 iOS 开发者项目,代价为 99 美元(或者 128 新元,假如你像我一样住在新加坡的话)。
https://i-blog.csdnimg.cn/blog_migrate/96de787eada9ebad902df37779e40ffc.png
图 1-7。 iOS 开发者计划费用
在提交之前,您偶然机末了一次查看您的注册信息。过细查看信息。
接下来,担当 iOS 开发者计划许可协议(这么多协议要看)。您可以通过以下所在获取该协议(停止 2011 年 10 月):
(http://developer.apple.com/programs/terms/ios/standard/ios_program_standard_agreement_20111004.pdf)
通过选中页面底部的协议框并单击“我同意”来确认您担当
你快完成了!这是末了一英里。您必须根据图 1-8 将 iOS 开发者程序添加到购物车中。
https://i-blog.csdnimg.cn/blog_migrate/efd8222600906642d29f1abf46fcef2f.png
图 1-8。 将 iOS 开发者计划加入购物车
市肆结账并进行实际付款。这部门我会把它留给你和你的光荣卡。确保光荣卡上的名称与创建开发职员帐户时利用的名称相同。假如您选择了公司注册,您将需要向苹果公司传真许多法律文件。
末了一步是激活您的帐户。这大概需要几分钟到几天的时间。一旦完成,Apple 将向您发送一封电子邮件,关照您您的 iOS 开发者计划帐户已预备就绪。
这些步骤总结在图 1-9 中。
https://i-blog.csdnimg.cn/blog_migrate/8f67afee934b46efc731645122fd13ab.png
图 1-9。 iOS 注册流程
安装 Xcode

Xcode 是来自苹果的开发情况。Xcode 的安装相称简朴,只需几个步骤就可以完成。
1.安装 Xcode 需要您前往 Mac 应用市肆。
2.在 App Store 应用的搜刮地区键入“Xcode”。图 1-10 表现了 Xcode 页面。
https://i-blog.csdnimg.cn/blog_migrate/b43d5977a72bb27797734d2cdd741031.png
图 1-10。【xcode app store page】
3.点按 Xcode 图标下方的按钮。这将开始下载 Xcode 安装文件。
这大概需要一点时间,由于文件是 1.68GB。请耐心等候。
4.下载完成后,打开Install Xcode.app,如图图 1-11 所示。它位于应用文件夹中。这将启动安装过程。在开始安装 Xcode 之前,您必须退出所有其他应用。
https://i-blog.csdnimg.cn/blog_migrate/f9b27af5be7a149a6836fa3c6799c690.png
图 1-11。 安装 Xcode 图标
5.根据图 1-12 ,点击安装按钮确认您要安装 Xcode。
https://i-blog.csdnimg.cn/blog_migrate/9d50b7c2d9a8dcf559c3ccdf1c48458c.png
图 1-12。 Xcode 安装程序页面
6.根据图 1-13 阅读并担当 Xcode 许可协议。
https://i-blog.csdnimg.cn/blog_migrate/ae2fe3b4d99f6cacf1bb2563f9ab0a92.png
**图 1-13。**Xcode 许可协议
一旦您同意协议,Xcode 安装过程将开始,如图 1-14 所示。根据您的呆板,大概需要 10 到 20 分钟。关闭其他应用将加快安装速度。
https://i-blog.csdnimg.cn/blog_migrate/d4640813cc2d0dc8a90c84c9df04cae1.png
图 1-14。 工作中的 Xcode 安装程序
安装完成后,将表现 Xcode 欢迎页面,如图图 1-14 所示。Xcode 图标会自动添加到 dock 中。
https://i-blog.csdnimg.cn/blog_migrate/8f3575187bb8ba245942c8dd08847742.png
图 1-15。 Xcode 欢迎页
安装 GameSalad Creator

安装 GameSalad Creator 非常容易。假如您尚未注册和下载安装文件,请转到(http://gamesalad.com/download/latestCreator)。

[*] 双击。您下载的文件。
[*] Read and agree to the GameSalad.com Terms of Service, as per Figure 1-16. https://i-blog.csdnimg.cn/blog_migrate/8be792782bf949debe7b8d78e4685909.png
***图 1-16。*服务条款
[*] Drag the GameSalad icon into the Application folder, as per Figure 1-17. https://i-blog.csdnimg.cn/blog_migrate/ececbd02d79cf9d1dc2ec0cf320388df.png
图 1-17。 安装屏幕
[*] Open GameSalad.app in the Application folder and you are ready (see Figure 1-18). https://i-blog.csdnimg.cn/blog_migrate/0d51e2d0001a6a98636b23d305c94811.png
**图 1-18。**GameSalad 起始页
这比注册苹果开发者项目简朴多了!
安装 GameSalad iOS 欣赏器

GameSalad 查看器是一个 Xcode 项目。这意味着你下载一段代码,你将编译并安装在你的 iPhone 或任何其他 iOS 设备上。这是你之前安装 Xcode 的主要原因之一。
为什么 GameSalad iOS Viewer 是一段代码?

嗯,如许 GameSalad 就可以安装一个欣赏器,而不需要通过 App Store 发行版。GameSalad Creator 将通过 Wi-Fi 将您的项目发送给查看者,而不大概获得 GameSalad 生成的代码。这保护了 GameSalad 的贸易模式。
获取 GameSalad iOS 查看器

你可以从(http://gamesalad.com/download/getViewer)下载 GameSalad iOS 欣赏器。
您将利用最新版本的 iOS Viewer 下载一个.zip文件。但是,在匆忙解压缩文件之前,让我们来看一下在您的 iOS 设备上创建预置形貌文件的过程。
在您的钥匙串中安装开发者证书

开发者证书是安装 iOS 查看器或任何其他暂时游戏的关键要素。它用于签订您的应用,以便您可以将它们安装在您的 iOS 设备上。
首先,你需要找到你的钥匙链。钥匙串位于“实用工具”中。
1.打开 Finder 窗口并导航到“实用工具”文件夹(在您的应用文件夹中)。
2.连按钥匙串访问应用。
在“钥匙串访问”中,您将利用“助理”向 Apple 哀求开发者证书。
3.导航到钥匙串访问https://i-blog.csdnimg.cn/blog_migrate/5f8657389db2d7eec05708b89da84ef1.png证书助理https://i-blog.csdnimg.cn/blog_migrate/5d80e07c900d3a2b36ff623edb4a117a.png向证书颁发机构哀求证书。
一个窗口窗体将会打开,如图 1-19 所示。
https://i-blog.csdnimg.cn/blog_migrate/f93bfd27f702d2b4c6d4a127642a4bf6.png
图 1-19。 哀求证书
利用您在 iOS 开发者计划中注册时利用的电子邮件所在填写电子邮件所在,然后选择“生存到磁盘”
单击继续按钮。
选择生存证书的位置。你可以选择把它生存在你的桌面上,如许你就可以很容易地找到它。您刚刚下载的文件是一个证书签名哀求(CSR ),您将利用它来生成证书。
4.前往钥匙串访问https://i-blog.csdnimg.cn/blog_migrate/651b18a0862788aaafd0a19c491f5a0d.png退出钥匙串访问,关闭钥匙串访问应用。
退出“钥匙串访问”应用有助于减少安装证书时大概出现的错误。
5.打开您的网络欣赏器,进入开发者会员中心((http://developer.apple.com/membercenter/)),然后点击 iOS 供应门户。
在这个阶段,你应该没有任何证书。通过单击左侧的证书菜单检查这一点,并验证没有开发或分发证书。
点击图 1-20 中所示的链接,下载 WWDR 中级证书,由于该证书需要安装在您的钥匙串中。
https://i-blog.csdnimg.cn/blog_migrate/d3c6b4abaaf701da337d37a31e6b2f4a.png
图 1-20。 链接下载 WWDR 中级证书
6.在证书中的开发选项卡下,单击申请证书选项。
您将被引导至标题为创建 iPhone 开发证书的页面(图 1-21 )。选择您在步骤 3 中创建的证书签名哀求(CSR)。
https://i-blog.csdnimg.cn/blog_migrate/6285e9eb390e3bc53cc0fdf2acbdeee4.png
图 1-21。 创建 iPhone 开发证书
选择文件后,单击提交按钮。
7.转到 Distribution 选项卡,执行完全相同的操作。
等候 1 到 2 分钟,然后革新页面。您的开发和分发证书应该可以下载了。
8。通过单击证书旁边的下载按钮,下载分别位于开发和分发选项卡下的开发和分发证书。
现在,您的下载文件夹中应该有三个文件:
   

[*]【苹果园】。cer
[*]IOs _ 开发。条件性感情反应
[*]IOs _ 发行版。条件性感情反应
9.将证书安装在您的钥匙串中。
您需要安装这三个证书,从 AppleWWDRCA.cer 开始。要安装每个证书,只需双击每个文件。这将打开“钥匙串访问”。通过在“我的证书”窗口中检查证书,验证证书是否已精确安装。然后完全退出 KeychainAccess,然后对下一个证书重复该操作。
现在,您的计算机上已经安装了证书。
为 iOS 查看器创建预置形貌文件

在安装 iOS 查看器之前,您首先需要为 GameSalad iOS 查看器创建一个预置形貌文件。
打开您的网络欣赏器,进入开发者会员中心((http://developer.apple.com/membercenter/)),然后点击 iOS 供应门户。
1.在您的配置门户中注册您的设备。
转到设备https://i-blog.csdnimg.cn/blog_migrate/3e5b338b837e6baf327b78176c2a3505.png添加设备。根据图 1-22 键入名称和设备 ID,并点击提交按钮。
https://i-blog.csdnimg.cn/blog_migrate/0838002ff0396c6ae58d3c6e7cc30a12.png
图 1-22。 向供应门户添加 iOS 设备
若要获取设备 ID,请通过 USB 电缆将 iOS 设备毗连到 Mac 电脑,然后打开 Xcode。在 Xcode 中,导航到窗口https://i-blog.csdnimg.cn/blog_migrate/bac7adffa45e5c4140ec5b7514ef76e8.png管理器。标识符字段中的 40 个十六进制字符串是您设备的 ID。假如这是您第一次利用您的设备进行开发,请单击本页上的“用于开发”。
2.为 iOS 查看器创建一个 AppID。
单击应用 ID 并选择新的应用 ID。对于形貌,请利用全附加字符串,如 iOSViewer。不要修改团队 ID 选项。并选择唯一的包标识符。这个标识符必须是世界上唯一的。Apple 发起您反向利用 web 域名,并添加一个唯一的应用名称。点击提交按钮(图 1-23 )。
https://i-blog.csdnimg.cn/blog_migrate/75af1c19bd4176cc1f6dfcd2207047a5.png
***图 1-23。*新应用 ID
3.为 iOS 查看器创建预置形貌文件。
点击供应https://i-blog.csdnimg.cn/blog_migrate/4b5d3078d51b8712b38fc3f5bb51df54.png开发https://i-blog.csdnimg.cn/blog_migrate/99d89a4125c352c8b10d5f6a44ef2f21.png新建个人资料。您将创建一个新的开发预置形貌文件,允许您在 iOS 设备上安装 GameSalad Viewer。
提供雷同“iOSViewer”的配置文件名称勾选您证书的复选框。根据图 1-24 ,选择您刚刚创建的应用 ID 并选择您之前注册的设备。
https://i-blog.csdnimg.cn/blog_migrate/03b2b4566b2c6fa3f25669d6f6d1bfb3.png
图 1-24。 新的配置文件
4.下载预置形貌文件。
通过点按“下载”来下载新创建的预置形貌文件。假如状态仍然是挂起,点击革新按钮,它应该在几秒钟内确定。
5.安装预置形貌文件。
双击下载文件夹中的预置形貌文件。这将自动在你的呆板上安装它。要确认形貌文件的精确安装,请打开 Xcode 并通过导航到窗口https://i-blog.csdnimg.cn/blog_migrate/77a464365d0fe9c7b12c8982b0efb3bb.png管理器来启动管理器。在管理器的左侧,选择预配配置文件,并检查您的配置文件是否出现在主窗口的列表中。假如不是如许,请通过双击您的预置形貌文件来重复安装。
安装 iOS 欣赏器

现在是时候回到 iOS 查看器了。zip文件。经过这么长时间的等候,你的耐心得到了回报。你现在可以解压了。
双击iOSViewer<version>.xcodeproj文件(此中<版本>是你的 iOS 欣赏器的版本号)。这将自动启动 Xcode。
1.更改包标识符。
点按 Xcode 左侧面板上的 GameSalad 检视器。这将表现项目摘要信息,如图 1-25 所示。
https://i-blog.csdnimg.cn/blog_migrate/e4dbe5aae71d360e3aa91f766daaa9f6.png
图 1-25。 配菜查看器信息
将 Identifier 字段更改为您在步骤 3 中利用的值,作为您的惟一包标识符。
2.更改代码签名。
在 GameSalad viewer 项目页面中,进入构建立置,并根据新的预置形貌文件“iOSViewer”更改代码签名,如图 1-26 所示。
https://i-blog.csdnimg.cn/blog_migrate/8d9b03937c635c26700e6ff852a0be0f.png
图 1-26。 改码签约
你预备好运行 iOSGameviewer 了吗?
将 iOS 设备毗连到 Mac,选择 iOS 的目标平台,确保从 Stop 按钮旁边的下拉栏中选择了您的设备,数到三,然后按 Run 按钮。
编译和安装大概需要 1 到 2 分钟。Xcode 会在状态面板中表现进度
然后你会在你的 iOS 设备上看到图 1-27 中的屏幕。
https://i-blog.csdnimg.cn/blog_migrate/38a4a50ebdb70b92da36b3f8604a7fd3.png
图 1-27。 配菜查看器
你可以通过打开一个 GameSalad 模板来测试欣赏器,比如“Basic Shoot Them Up”,然后根据你的 iOS 设备点击“在 iPhone 上预览”或“在 iPad 上预览”(拜见图 1-28 )。
https://i-blog.csdnimg.cn/blog_migrate/7e0782a6798c962b5f2bed1f4a5cf2ec.png
图 1-28。 GameSalad 欣赏器启用
恭喜你!您已经设置了您的计划情况。你现在可以继续游戏的乐趣了。让我们创造一些游戏!
总结

好了,最无聊的部门做完了。GameSalad 的发展需要这个小小的牺牲。从现在开始,事情会有趣得多。
本章涵盖了:
   

[*]Registration and installation of salad
[*]Registration on iOS developer program
[*]Xcode installation
[*]Installation of GameSalad Viewer
在接下来的章节中,当你学习 GameSalad 的基础知识时,你将会创造一些真正有趣的游戏。
二、你从头开始的第一个游戏:乒乓游戏

现在您已经精确地设置了您的情况,让我们利用 GameSalad 来创建一个真正的游戏。在这一章中,我将引导你创建一个完备的游戏:Pong。这一章涵盖了 GameSalad 的基础知识;下一章将先容游戏的更多特性。
本章具体涵盖:
   

[*]Game project creation
[*]Create scenes, actors, attributes, behaviors
[*]Introduction to collision
为了看看你将在本章中实现什么,你可以打开文件MyFirstPong_step6.gameproj,它位于(http://www.apress.com)的Chapter_1_File文件夹中。打开此文件将启动 GameSalad。然后你只需要点击 GameSalad 中的预览按钮。
关于乒乓球的一点历史

七十年代见证了电子游戏产业的诞生。Pong 为许多其他游戏开发者指明白门路。当然,其时的技术并不像本日如许先辈,所以游戏非常有限。最重要的限制之一是图形。作为最早的街机游戏之一,Pong 也不破例。用户界面非常简朴,正如你在图 2-1 中看到的。尽管云云,它是云云具有革命性,以至于公众大量接纳了它。
https://i-blog.csdnimg.cn/blog_migrate/f278e59634fd38ebf8f8e65ecab6be98.png
图 2-1。 原 Pong 游戏截图
Allan Alcorn 于 1972 年在 Atari 工作时创建了 Pong。但是世界险些没有相识这个游戏。作为一名实习生,Allan 被分配了创建一个游戏的训练,以发展他的技能。他带着 Pong 回来了。雅达利的管理团队被终极的结果彻底吓住了,他们决定将游戏贸易化。这大概是他们最好的决定之一。Pong 作为一款街机游戏的首次发布获得了巨大的乐成,并催生了视频游戏行业。图 2-2 表现的是街机版 Pong。
https://i-blog.csdnimg.cn/blog_migrate/f06423c8a102fccadd91c2fe325b4814.png
图 2-2。 原 Pong 街机
Pong 后来开发了几个版本,包括一个家庭游戏。Pong 的家庭版,如图图 2-3 所示,创建于 1974 年,但由于难以找到发行渠道,直到 1975 年才发布。随着时间的推移,已经发布了几个版本(和克隆版本)。
https://i-blog.csdnimg.cn/blog_migrate/34fd057166ad30c493f91d84fa6de218.png
图 2-3。 批量生产的乒乓游戏
我记得我在雅达利家用游戏机上玩了几个小时的乒乓球。原来父亲给本身买了一台雅达利 2600。这是 1982 年发行的“达斯·维达”特殊版,全玄色,有四个开关。这是最早的视频游戏机之一。有了游戏机,你就有了一个可以运行几个游戏的设备(通过一个卡带体系)——而不像 Home Pong 那样只能运行一个游戏。那时我只有五岁,但我清楚地记得我玩得很疯,让我父亲很生气,由于几天后我就不可战胜了。
指定游戏概念和规则

当你开始一个新的游戏项目时,一个好的做法是从指定游戏概念和在纸上写下游戏规则开始。这为你的工作提供了结构。
游戏概念

这个游戏的目标是通过第一个达到 11 分,在模拟乒乓球比赛中击败你的对手。这是一个二维游戏,玩家垂直控制球拍。
游戏规则

人类玩家 1 在屏幕左侧与人类玩家 2 对战。(CPU 播放器将在下一章先容。)球员用球拍来回击球。
创建新的 GameSalad 项目

你预备好玩乒乓球了吗?
首先,让我们创建一个新的 GameSalad 项目。在应用中点击 GameSalad 图标,如图 2-4 所示,打开 GameSalad Creator。
https://i-blog.csdnimg.cn/blog_migrate/7d56f27dd07853771a9e841d68c8d2fb.png
**图 2-4。**GameSalad 应用 logo
选择加号按钮(新建),选择“我的伟大工程”,然后点击“在 GameSalad 中编辑”这将在 GameSalad 中打开一个新项目(图 2-5 )。
https://i-blog.csdnimg.cn/blog_migrate/506e6ffd22b505d5ae75c77042a0dbb6.png
**图 2-5。**GameSalad 启动画面
您将到达图 2-6 所示的页面。
https://i-blog.csdnimg.cn/blog_migrate/13bd82c1b11c7f4aadcba5afe80493ba.png
图 2-6。 项目信息页面
此页面是项目信息页面。它包含项目标一般信息,如项目标题、游戏平台、形貌和说明。输入表 2-1 中表现的信息。
你的屏幕应该看起来像图 2-7 。
https://i-blog.csdnimg.cn/blog_migrate/5e8dd991ca0b95dd96b8451bd7c21077.png
图 2-7。 我的第一个乒乓游戏项目信息页面
所有这些信息都只是草稿。在您提交作品供 App Store 验证之前,您将偶然机对其进行审核。
生存项目。在文档中创建一个文件夹,并将其定名为LearnGameSalad_chap2。
现在生存项目标副本。如许你可以经常生存你的进度。点击文件https://i-blog.csdnimg.cn/blog_migrate/178a343e80bd311c6d623dac7fafc417.png另存为,将文件定名为MyFirstPong.gameproj,生存到新建的文件夹中(图 2-8 )。
https://i-blog.csdnimg.cn/blog_migrate/b48eca88b0b807870fe7253efe8ee32c.png
图 2-8。 拯救游戏
你已经预备好开始你的项目了。
关于分辨率独立性:
分辨率独立是 GameSalad 的一大特色。简而言之,它可以让你计划一个高分辨率版本的游戏,可以顺应 iOS 设备的各种分辨率。这增加了游戏中埋伏目标的数目。
它是如何工作的?GameSalad 会自动调整所有作品的巨细,通过创建较低分辨率的作品副原来顺应 iOS 设备的分辨率。
要享受此功能,请选择分辨率独立性,并为 retina 表现屏分辨率计划您的游戏作品。
有一个小秘密让它很好地工作。你所有的作品必须有一个像素巨细,你可以除以 4。为什么是 4?由于,为了更好地展示你的作品,它必须是一个偶数(比如 20×20)。GameSalad 会自动调整到较低的分辨率(即除以 2),所以需要是偶数!因此 4!
告诫:图像的巨细限制为 1024×1024。
假如你正在计划一个低分辨率的游戏(480 ×320),没有须要检查分辨率独立性。另一个取消选择此选项并计划低分辨率游戏的好来由是,旧设备(如第一代 iPod touch)将难以处理这些图形。一如既往,最好的发起是:测试,测试,再测试。
到目前为止,你阅读的页面提到了演员、场景和项目。所以你大概会很天然地问本身,“我读的书对吗?我以为我读的是游戏创作,齐备看起来都像影戏制作。我没钱请布鲁斯·威利斯来拍我的作品!”
是的,你正在看一本关于游戏计划的书。但是,把游戏创作想象成一部影戏,有一个情节(游戏机制)、一些演员(脚色或物体)和一个方向(活动和属性),不是更容易吗?
GameSalad 允许你像计划影戏一样计划你的游戏。您将利用场景(闪屏、菜单、关卡、游戏)和演员在这些场景中进行交互。
添加演员

预备好扮演影戏导演…呃…游戏导演的脚色了吗?我们来捏造一些演员吧!
什么是演员?

演员是一个具有特定活动和属性的对象,您将把它放在场景中。通常,在乒乓球比赛中,球是一个演员。至于具体的活动,你会告诉球和一些球拍碰撞,和墙壁碰撞时该如何反应。球也将具有一些属性,这些属性将定义球本身;比方,它将是可移动的。
演员编辑器的视图如图 2-9 所示。
https://i-blog.csdnimg.cn/blog_migrate/2466166b87555b9e1e433a233cac247e.png
图 2-9。??【办法家】
创造演员

创建执行元有两种方式:
   

[*]Through project editing
[*]Via scene editing
就我个人而言,我在创建场景时主要利用场景编辑器来创建新的演员,但是假如你是一个非常好的规划者,你可以在创建项目时利用项目编辑器来创建大多数(假如不是全部)演员。我将在这里用场景编辑器来创建一个演员。
点击图 2-10 中所示的场景图标。
https://i-blog.csdnimg.cn/blog_migrate/b7cbe456b2553f6259c2aae4834ade90.png
图 2-10。 场景图标
选择“初始场景”将打开场景编辑器。根据图 2-11 定位左侧的演员检查窗口。点按“执行元检查器”窗口下方的+号。
https://i-blog.csdnimg.cn/blog_migrate/a0cf03b3b8b65676048bdabfc177b75f.png
图 2-11。 演员督察窗口
就如许!你刚刚创造了你的第一个演员!
修改演员属性

演员的属性可以通过活动来修改。但是首先你需要理解一个重要的概念。
实例或原型

在您继续之前,我需要先容一个非常重要的概念(VIC ),即 actor 原型和 actor 实例。
actor 原型是您定义主 actor 的地方。您将定义到场者、其属性及其活动。
然后,每当您将这个演员放置在游戏的一个场景中时,就会自动创建这个演员的一个实例。实例将自动继承原型的属性(特性和活动)。
关于面向对象编程:
面向对象编程(OOP)是一种以对象为中心的编程概念。对象是一种数据结构,它包含关于对象以及操作(称为方法)的形貌性信息。OOP 超出了本书的范围,但是也许你已经注意到了 OOP 和 GameSalad 之间的相似之处。到场者是对象,属性是形貌信息,活动是方法。事实上,这并不希奇。GameSalad 只隐藏了 iOS 开发的编程方面!iOS 开发语言是 Objective-C,你猜怎么着?Objective-C 是一种面向对象的编程语言。
假如需要修改特定实例的某些属性或活动,必须解锁该实例才能访问其属性和活动。场景属性,如拍照机或方向属性,只能从位于场景中的演员处访问。因此,您需要编辑执行元实例。
演员属性

为了更好地理解到场者属性的概念,您需要将属性视为形貌到场者的项目。比方,要形貌一个人类演员,你会提到头发的颜色(金发、棕色、灰色、深色或没有)、眼睛的颜色(蓝色、棕色、绿色)等。因此,属性是项目及其值的特征。
那么这在 GameSalad 中意味着什么呢?假设你有一个演员叫鲍尔。它可以是可移动的(是或否),它有高度和宽度,颜色等。
常用属性

让我们快速回首一下一个演员最重要的属性。这些属性可从图 2-9 所示的到场者编辑器中访问。
名字

该字段包含执行元的姓名。利用特定的名称;假如你的项目中有很多演员,这一点尤其重要。
尺寸

你可以指定演员的巨细。假如您计划利用图像,请输入图像的巨细。
不要忘记关于尺寸的提示(要能被 4 整除!)
颜色

假如不利用图像,可以在演员中填充颜色。
标签

标签是一种将演员分组并让他们以相似的方式活动的方法。比方,您可以将一些到场者分组为可聚合的。然后,您可以定义一个规则,使一个特殊的对象(比方,一个球)与所有可碰撞标记的对象发生碰撞。
物理学/密度

位于物理学之下,密度代表一个演员的重量。GameSalad 实现密度的方式非常接近实际生活。根据 GameSalad 支持,GameSalad 的单位等于标准密度(千克/立方米)。
物理学/摩擦

位于“物理”下,该属性用于模拟摩擦力,摩擦力是两种质料打仗产生的力。摩擦力的值越低,模拟反应就越柔和。值为 0 将模拟冰。
物理/可移动

位于“物理”下,该属性让您决定对象是否可以移动。假如不可移动,物体将处于固定位置。但是,演员将可以或许通过更改属性和插值活动进行移动。
这个列表并不详尽。更多的属性将在接下来的章节中先容,您将学习如何创建一些自定义属性。
修改属性

要修改演员,请在场景编辑器的演员窗口中双击该演员。这将在 actor 编辑器中打开 Actor 原型。然后,您只需要访问 Actor 编辑器中的每个属性。让我们训练一下。
双击您之前创建的演员(演员 1),如图图 2-12 所示。
https://i-blog.csdnimg.cn/blog_migrate/d8e90e63fbf76edcb774c83ed7a489ad.png
图 2-12。 检查员中的演员 1
双击 Actor 1 打开 Actor 编辑器,如图图 2-13 所示。
https://i-blog.csdnimg.cn/blog_migrate/8715ff56932710b5f29a44a955dc98b1.png
图 2-13。 演员编辑为演员 1
现在让我们更改以下属性:
   

[*]名称:Rack Player 1
[*]Size/width: 16
[*]Size/Height: 120
[*]Color: white
[*]Physical/density: 500
[*]Physical/friction: 3
[*]Physical/Recovery: 0
[*]Physical/Fixed Rotation: checked (this will prevent the actor from rotating after colliding with the ball. )
现在生存您的项目。
关于归还属性:
恢复属性定义反弹度。零体现没有反弹!渺茫?为什么不消弹力呢?球弹不起来怎么归去?嗯,球会弹起来,不是球拍!(想象一下球拍弹到墙外。不太会玩。)恢复值为 1 意味着碰撞中没有能量损失(因此它是完全弹性的)。
添加活动

可以打开MyFirstPong_step2.gameproj从这个点开始。
为了向到场者添加动作,您需要添加活动。利用活动,您可以更改到场者的表面,为一些特定的动作设置一些条件,或者让他们根据计时器执办法作。因此,你利用活动来增加游戏的逻辑性。
什么是活动?

为了理解 GameSalad 中的活动,让我们继续类比人类演员。作为一名影戏导演,你引导你的演员执行某些任务(比如当警察看到坏人时,警察会向他们开枪)。
在游戏中,活动引导你的演员。你可以指示一个演员,假如一个条件被满足,它会自动销毁本身。这是一个活动的例子。
你可以有动作的活动(如碰撞时如何反应)或检查特定条件的活动(假如分数低于 11,继续玩)。
有三种范例的活动:

[*]出现一次的活动(这些活动的名称旁边有一个赤色方框,里面有一个“A”字母)。
[*]持续的活动(这些活动的名字后面有一个绿色方框中的字母“B”)。
[*]利用条件来执行其他活动的规则(这些规则在其名称旁边的蓝色框中有一个“G”字母)。
添加活动

从 Actor 编辑器添加活动相称容易。在左下角,您可以访问活动库。您可以通过将目标活动拖放到活动地区来选择它。
假如需要创建规则活动,可以从活动列表中拖拽规则活动,也可以点击脚色编辑器右上角的创建规则按钮,如图图 2-14 所示。
https://i-blog.csdnimg.cn/blog_migrate/cd96a3ec26a497205a5921d151610532.png
图 2-14。 演员编辑
关于规则活动:
规则活动用于定义活动的条件。它可以是到场者或属性上的条件。它可以是一个条件,同时是几个条件,或者在给定时间是几个条件中的任何一个。
现在我们来训练。从上下运动开始。为此,创建一个规则,当一个键被按下时,一个活动(运动)被触发。
1.单击新建规则按钮。
2.单击“开”按钮旁边的“规则”,将规则重定名为“向下”
一条规则有三部门,如图图 2-15 所示。
https://i-blog.csdnimg.cn/blog_migrate/8ffc9ff61baa23babd2df4335b00817b.png
图 2-15。 一个规则的三个组成部门
规则条件位于规则的顶部。由于您大概有多个条件,因此您可以选择满足所有条件以触发活动,或者满足任何条件以触发操作。
   3.将条件修改为“执行元吸收事件”同样,选择“向下”键,如图图 2-16 所示。
https://i-blog.csdnimg.cn/blog_migrate/eee1ed988ee577f19c9fb8c0d319d9b2.png
图 2-16。?? 降服的条件
   4.假如满足条件,从“活动”库中,拖动移动活动(不是“移动到”活动)并将其放入规则的活动地区。修改方向为 270°的移动活动。
完备的规则如图 2-17 所示。
https://i-blog.csdnimg.cn/blog_migrate/92e6ba8547352a72ab2ed04fa2f41004.png
图 2-17。 降格的活动
关于搬家活动:
移动活动有几个边界。
方向:您可以输入一个以度数体现的值或一个数学等式来定义演员将要采取的方向。比方,0 将使一个演员移动到他的运动参考点的东方(见下文)。
相对于:这定义了移动的参考点。你有两个选择:演员本身或者场景。相对于场景是在场景的绝对参照中的运动。假如相对于场景放置 0,演员将移动加入景的右边。假如相对于演员放置 0,演员将移动到他的右边,假如演员颠倒,这大概是场景的左边。
移动范例:您可以选择添加或堆叠。“相加”将累加其他“移动”或“移动到”活动的速度和方向,而“堆叠”将仅应用最近一次“移动”或“移动到”活动的速度和方向。
速度:你可以输入一个值或者打开公式编辑器,方法是点击数值框右边带“e”的小框,输入一个数学公式来定义运动的速度
试着本身创造向上的规则。这里有一些提示:
   

[*]You can copy down rules by holding down the option, dragging down rules, renaming rules, and changing settings. Or, you can choose the downward rule, copy (Command+C), and then paste (Command+V). Another way is to create a new rule, just like you did with the Down rule.
[*]The name of this rule is upward.
[*]The condition of the rule is “Actor receives event”, and the key is “up”
[*]Drag and drop a movement behavior, and change the setting according to the downward rule, but the direction is set to 90.
您可以打开MyFirstPong_step3.gameproj文件从这一点进行跟进。
在将该演员放加入景中之前,为每个架子再添加一个活动。将其位置约束在水平轴上。这意味着球拍会上下移动,但会在一个固定的水平位置(X 轴上的恒定值)。为此,请利用约束属性活动。
在活动库(图 2-14 )中,找到“约束属性”活动,并将其放入刚刚创建的“向上”规则下的“执行元活动”窗格中。若要选择要约束的属性,请利用属性欣赏器。点按值输入栏右侧带有三个点的按钮。欣赏至机架玩家 1 https://i-blog.csdnimg.cn/blog_migrate/dc44c20535dfad0f5647fd6b9fd0b290.png位置https://i-blog.csdnimg.cn/blog_migrate/f7c6d5137f42885a9c1befffaeafa450.png X,如图图 2-18 所示。
https://i-blog.csdnimg.cn/blog_migrate/21c27b574ecad368222fc255d3fd3dce.png
图 2-18。 属性欣赏器
双击 X 属性进行验证。将该约束的值指定为 20,这会将球拍约束在距离屏幕左侧 20 个像素的垂直轴上。完备的活动如图 2-19 所示。
https://i-blog.csdnimg.cn/blog_migrate/6b0771e093b66bee4b097b8366d1e341.png
图 2-19。 约束属性
现在,您已经预备幸亏场景中定位演员了。
向场景中添加演员

你已经为 1 号玩家创造了球拍。现在让我们把它放在现场。
回加入景编辑器,将演员放加入景中。位置只需要是近似的,由于你已经将球拍约束在 x 轴上,如图图 2-20 所示。
https://i-blog.csdnimg.cn/blog_migrate/beb741ec988ead12f25670183c5da129.png
图 2-20。 现场摆放球拍
点击预览!你在现场有一个球拍,可以用键盘的箭头键上下移动。
你可以通过打开fileMyFirstPong_step3.gameproj进入这个阶段。
创建其他演员

我已经带你通过一个非常详细的方法来为玩家 1 创建球拍。现在,您将创建一些剩余的演员。您将为玩家 2 定义球拍、球和墙,以获得定义的游戏地区。你还会增加一点力度,如许你就可以有快速的发挥。
我会更快地引导你,但我会突出一些新的项目,由于他们出现了。
球拍手 2

要为玩家 2 创建球拍,请创建一个新演员。双击这个新演员,在演员编辑器中对其进行编辑。按照以下方式更改属性:
   

[*]Name: Luggage rack player 2
[*]Size/width: 16
[*]Size/Height: 120
[*]Color: white
[*]Physical/density: 500
[*]Physical/friction: 3
[*]Physical/Recovery: 0
[*]Physical/Fixed Rotation: Checked
然后创建以下两条规则:

[*]一个名为 Down 的规则。当“A”键被按下时,它将被触发(条件)。该活动将是一个方向为 270°的移动。
[*]一个名为 Up 的规则。当“Q”键被按下时,它将被触发(条件)。该活动将是一个方向为 90°的移动。
末了,添加一个名为 Constrain Attribute 的活动,actor X 被约束为 460。
现在,把你的球拍放在现场。您可以近似放置它,由于位置约束会自动精确定位它。你的 Rack Player 2 编辑器屏幕应该看起来像图 2-21 。
https://i-blog.csdnimg.cn/blog_migrate/2d52a5917db846954e6ddb43b1ab55a1.png
图 2-21。 Rack Player 2 编辑屏幕


现在,您将创建球。为了简朴起见,您将创建一个 16 × 16 像素的方形球。这个 actor 将从另一个 actor 生成:Rack Player 1 或 Rack Player 2。在 GameSalad 词汇表中,我们说这个演员是衍生的。
像往常一样,创建一个新的执行元,并在执行元编辑器中更改以下属性:
   

[*]Name: Ball
[*]Size/width: 16
[*]Size/Height: 16
[*]Color: red
[*]Physical/Recovery: 1
[*]Physical/fixed rotation: checked.
[*]Physical/collision shape: circle
您有两个选项来定义演员将如何碰撞。形状可以是矩形或圆形。
球将从货架玩家 1 或货架玩家 2 中产生,这取决于哪个玩家为游戏服务。默认情况下,玩家 1 先发球开始游戏。得分的胜者将发球。要定义哪个玩家发球,利用一个关于玩家 1 是否发球的布尔属性。假如为真,玩家 1 发球;假如为假,则由 2 号选手发球。
在场景编辑器中,选择属性检查器窗口,点击+号创建一个新的布尔属性,如图 2-22 所示。
https://i-blog.csdnimg.cn/blog_migrate/343bc612c94f45ca026a972ac6491c15.png
图 2-22。 属性检查器窗口
将这个属性定名为P1Serving并检查它。
回到球演员的演员编辑器,创建一个新规则。该规则将检查哪个球员正在发球,并根据结果改变方向。为此,请利用规则的 Otherwise 部门。
创建一个新规则,称之为球的方向。条件是假如游戏的属性。P1Serving 是真的。在“改变速度”活动中拖移。
利用表达式编辑器更改方向。点击方向栏右边的小“e”,如图图 2-23 所示。
https://i-blog.csdnimg.cn/blog_migrate/9f86d8f11c190db92d674a348acf714d.png
图 2-23??。表情编辑器图标
这将打开如图 2-24 所示的表达式编辑器。
https://i-blog.csdnimg.cn/blog_migrate/f37d46bec90a6394cc4e2b504cc03d1b.png
图 2-24。 表情编辑
单击插入函数下拉菜单,选择随机(最小值,最大值)函数,并将最小值替换为-45,将最大值替换为 45。通过如许做,球将在-45 度和+45 度之间的方向上运动。然后,单击绿色复选标记实际插入该函数。图 2-27 提供了角度的直观体现。
https://i-blog.csdnimg.cn/blog_migrate/c2f02c59a3c5c9a3ed02243416c2f193.png
图 2-25。 球的方向(-45,+45)
在“其他”部门中拖移另一个“更改速度”活动,可通过点按规则底部“其他”文本前面的箭头来访问该活动,并将“方向”值更改为“随机(135,225)”,然后点按绿色复选标记。图 2-26 提供了角度的直观体现。
https://i-blog.csdnimg.cn/blog_migrate/e84841a4dd35f3e411bc611802627395.png
图 2-26。 【球方向(135,225)】
你应该会得到一个雷同于图 2-27 的规则。
https://i-blog.csdnimg.cn/blog_migrate/b264d71beca8129310bf6a9aec88053f.png
图 2-27。 球的方向规则
关于表达式编辑器:
表达式编辑器是高级编辑器,您可以在此中利用高级数学公式来定义复杂的动作和移动。我将在后面先容更多数学方面的内容。
关于表达式编辑器,你需要知道一些提示:
1…用于表现多个属性。
示例:(actor.position.X)…(actor.position.Y)
2.“文本”用于表现文本。
示例:“X 位置:”…(actor.position.X)
3.\ "用于在双引号文本内的文本中插入双引号。
示例:“这是文本中的引用”
4.\32 用于在双引号文本中插入一个空格。
示例:“这是一个空间”
5.\n 用于在双引号文本中开始新的一行。
示例:“这添加了\n 一个新行”
让我们回到球拍,使他们可以或许产卵球。当空格键被按下时,球将被产生。你猜怎么着?你将利用一个规则。
在演员编辑器中打开 Rack Player 1。创建一个新规则,并将其定名为 Serving。条件是当 Actor 吸收到事件而且按下空格键时。
你还需要检查是否轮到玩家 1 发球。为此,请利用您之前创建的属性 P1Serving。假如 P1Serving 为真而且空格键被按下,那么 Rack Player 1 将产生球。
通过单击+号在服务规则中添加新条件。条件将是假如属性游戏。P1Serving 是真的。
现在,在服务规则的活动地区添加一个 Spawn Actor 活动。将演员改为球,水平位置改为 16。这将会在球拍的正前方产生球。
发球规则应该雷同于图 2-28 。
https://i-blog.csdnimg.cn/blog_migrate/6cc5e87a64adf1aa1c0a4590e06bd0af.png
图 2-28。 发球规则
现在,您可以对 Rack Player 2 进行同样的操作,只需进行以下修改:
   

[*]In the attribute game state. P1 serving is fake.
[*]The ovipositor is the ball, and the position is -16 (the ovipositor ball is on the left side of the racket).
图 2-29 表现了货架玩家 2 的发球规则。
https://i-blog.csdnimg.cn/blog_migrate/b509ba57c2090750bfe4c9117baa4aef.png
图 2-29。 架球员 2 的发球规则
您可以打开MyFirstPong_step5.gameproj文件来查看这一阶段的结果。通过在属性编辑器中将 P1 发球的值从 true 更改为 false,可以在预览模式下从球拍 1 或球拍 2 发球。
现在让我们在这个游戏周围放些墙吧!
墙壁

下一步是在游戏地区周围创建一些墙,并实现一些弹性。
像往常一样,创建一个新的演员。双击这个新演员,在演员编辑器中对其进行编辑。按照以下方式更改属性:
   

[*]Name: bouncing wall
[*]Size/width: 480
[*]Size/Height: 10
[*]Physical/density: 500
[*]Physical/Recovery: 0
[*]Physical/Fixed Rotation: checked
[*]Physical/Removable: unchecked
回加入景编辑器。将反弹墙拖动加入景中,并将其放置在可见场景的正上方。将另一面反弹墙拖动加入景中,并将其放置在可见场景的正下方。拜见图 2-30 查看结果。
https://i-blog.csdnimg.cn/blog_migrate/1ab0ce5e1b3101eb7da615d537e1d8e7.png
图 2-30。 场景与墙壁
通过将反弹墙拖动加入景中两次,您就创建了同一个演员的两个实例。假如在 actor 编辑器中双击 Actor,就可以修改原型,所有实例都会反映出修改。但是,假如您双击此中一个实例,您将只编辑该实例,而不编辑其他实例。
这有印象吗?这就是之前先容的 VIC(非常重要的概念)。
标签

标签是非常有用的工具。它们是一种将演员分组在一起,然后将活动应用于标签(即演员组)的方法。您现在将创建的演员组是可聚合的演员组。
要创建一个新的标签,请按照图 2-31 点击主页图标。
https://i-blog.csdnimg.cn/blog_migrate/676d9df3b5562251fcd95db47d2270b8.png
图 2-31。 首页图标
根据图 2-32 ,点击主屏幕左侧按钮的+按钮。
https://i-blog.csdnimg.cn/blog_migrate/8439e874f8e0ba21138c19503eba6d7d.png
图 2-32。 主屏幕
将标签定名为 Collidable。
拖动刚刚创建的标签右侧的四个对象。
双击 Rack Player 1 进行编辑。添加碰撞活动。根据图 2-33 ,配置与带有标签的“可碰撞”演员碰撞时的反弹活动。
https://i-blog.csdnimg.cn/blog_migrate/a660d20b5bb42796432c4df96bcefa87.png
图 2-33。 碰撞活动
对 Rack Player 2、球和反弹墙重复相同的操作。
让我们玩吧

您可以打开文件MyFirstPong_step6.gameproj进入当前阶段。
你预备好加入你的第一场乒乓球比赛了吗?点击预览按钮。你现在可以打乒乓球了。利用向上和向下键控制玩家 1,利用 Q 和 A 键控制玩家 2。按空格键发球。
总结

恭喜你!您已经创建了第一个可玩的游戏。但这不是你唯一的成就。在本章中:
   

[*]You learned the basic concepts of GameSalad.
[*]You created your first project.
[*]You created your first actors. You have achieved some player control.
[*]You used the collision concept.
你喜好这个过程吗?很好!但是你仍然有很多事情要做。在下一章中,您将执行以下操作:
   

[*]Design a scoring system.
[*]Manage which player serves.
[*]Realize the touch detection of player 1’ s racket.
[*]Implementation of CPU control player 2.
[*]Display.
三、完成乒乓:得分和游戏互动

在前一章中,你在几分钟内创建了一个非常酷的游戏。您现在已经把握了 GameSalad 的功能,但是您的项目还远远不敷完美。在本章中,您将通过实现一些附加组件和微调 Pong 游戏来继续学习 GameSalad。
让我们记分吧

这场比赛谁赢了?打乒乓球的时候,获胜或者取得高分难道不是首要目标之一吗?但是要做到这一点,一个游戏需要一个评分体系。那你还在等什么?
对于 Pong 游戏,您将根据以下规则创建一个计分体系:假如您错过了球,您的对手将获得一分。第一个达到 11 分的玩家赢得游戏。
您可以打开文件MyFirstPong_step6.gameproj进行后续步骤。
知道一名球员是否错过了球的诀窍是创造一个无形的演员,当球打仗到球时,他会探测到——但这个演员是不可碰撞的,所以球会穿过它。这个演员将覆盖游戏领域的整个高度。您还将借此时机销毁当前的球实例。这将开释一些内存资源。
关于记忆:
内存是 iOS 设备中的名贵资源。尽管 iPhone 4S 可以拥有高达 64GB 的内存,但是为运行时分配的动态内存却非常有限(只有几 MB)。一旦一个演员对游戏的别的部门变得没有用了,就摧毁它是一个极好的做法。假如稍后需要您的演员,一种先辈的性能优化技术是接纳。第七章中的先容了接纳利用。
为了保持分数,创建两个属性来存储每个玩家的分数。
在场景编辑器中,选择“属性检查器”窗口,并通过单击+号创建新的整数属性。定名为 P1 分数。重复操作,但将属性定名为 P2 分数。
在场景视图中,创建一个新演员并更改以下属性:
   

[*]Name: Left winning area
[*]Size/width: 10
[*]Size/Height: 320
[*]Color /Alpha: 0
[*]Physical/density: 0
[*]Physical/Removable: unchecked
您大概已经注意到,这里没有选中固定旋转。固定旋转是为了防止一个演员在与另一个演员碰撞时旋转。由于该演员不会与任何其他演员发生碰撞,因此没有须要检查固定旋转。
你终极应该得到与图 3-1 相同的属性。
https://i-blog.csdnimg.cn/blog_migrate/ffa26f5f30677bef4e94ece4fb6f0b4b.png
图 3-1。 左侧胜利区属性
现在给那个演员添加一些规则和活动。
第一个规则将检测这个地区和球之间的重叠。创建一个规则,并将其定名为球检测规则。规则是“actor 吸收事件”并与“ball”范例的 Actor“重叠或辩论”
将“更改属性”活动拖到规则中。改变设置来改变属性:游戏。P2 分数。然后,利用表达式编辑器(位于“到:”右侧的小图标)将 P2 分数属性自我递增 1。你的表情必须看起来像图 3-2 。
https://i-blog.csdnimg.cn/blog_migrate/52bbd9f354730727a8a574dbea2c8b80.png
**图 3-2。**P2 分数的自增
现在你可以记录玩家 2 的分数了。重复相同的步骤来记录玩家 1 的分数。
创建一个新的执行元,并更改以下属性:
   

[*]Name: Right Winning Zone
[*]Size/width: 10
[*]Size/Height: 320
[*]Color /Alpha: 0
[*]Physical/density: 0
[*]Physical/Removable: unchecked
接下来,添加一条规则来检测该地区和球之间的重叠。创建一个规则,并将其定名为球检测规则。规则是“actor 吸收事件”而且与“ball”范例的 Actor“重叠或辩论”
将“更改属性”活动拖到规则中。活动改变属性:游戏。P1 分数。利用表达式编辑器将玩家 1 的分数自我递增 1。
返回加入景视图编辑器。拖动左侧获胜地区,将其放置在可视地区的完备左侧,如图图 3-3 所示。
https://i-blog.csdnimg.cn/blog_migrate/7ddf52adfc91918f473d1f3dc898da73.png
图 3-3。 现场定位左侧胜利区
按照图 3-4 ,在可视地区的完全右侧重复雷同的动作。
https://i-blog.csdnimg.cn/blog_migrate/6dab81e3879baa26bdcc6678e34db8ec.png
图 3-4。 现场定位右胜区
记录每个玩家的分数是很棒的,但是假如能看到分数就更棒了!为了在场景中表现文本,您将利用一个 actor 作为吸收者容器。您将引入一种称为表现文本的新活动。此活动用于将文本表现到执行元中。
在场景编辑器中,创建一个新的演员并更改以下属性:
   

[*]Name: P1 score
[*]Size/width: 50
[*]Size/Height: 50
[*]Color /Alpha: 0
[*]Physical/Removable: unchecked
将 Alpha 设置为 0 将使演员透明,但表现文本将保持可见。这是你获得最佳结果的方法。
为了在场景中完美地定位乐谱表现,请利用“更改属性”活动来约束其位置。将“更改属性”活动拖放到 P1 配乐演员的活动地区。然后选择 P1 分数。定位. X 属性并将其更改为 215。一旦选定,它将表现为 self.Position.X。利用 P1 分数重复该操作。将位置. Y 更改为 295。
末了但同样重要的是,拖动表现文本活动。表现文本活动如图 3-5 所示。
https://i-blog.csdnimg.cn/blog_migrate/2e316f9650f7cdfd5afdc3792ffd8ba0.png
图 3-5。 表现文本活动
在“表现文本活动”框中,您可以输入本身的文本或访问表达式编辑器。您有几个选项来设置文本格式,如选择对齐方式、字体、巨细和颜色。“在执行元内换行”选项创建换行符,以便文本适当执行元。
在刚刚放下的“表现文本活动”框中,打开表达式编辑器并选择以下属性:game。P1 分数。将巨细设置为 20,并选择橙色,以便在场景中清晰可见。
图 3-6 表现了最闭幕果。
https://i-blog.csdnimg.cn/blog_migrate/ec53618c78362b7b0d8a5f7d6ffa81bd.png
图 3-6。 P1 配乐演员
重复相同的动作序列,创建 P2 分数演员,表现游戏。P2 得分,并将演员约束到位置(265,295)。图 3-7 表现了最闭幕果。
https://i-blog.csdnimg.cn/blog_migrate/116ae5b297d8b970d24db1e07b6aa86b.png
**图 3-7。**P2 得分
回加入景编辑器,将 P1 分数和 P2 分数放加入景中。
在跳到下一段之前,你需要在重点论述后开释内存。为此,请对球本身利用“粉碎”活动。
在演员编辑器中打开球并创建一个新规则。将新规则定名为 Destroy。该规则将有两个条件,但要满足此中的“任何”条件。要利用“任何”选项,请在“当‘所有’条件有效时”中单击“所有”,然后选择“任何”
第一个条件是“到场者吸收事件”而且与“左获胜地区”范例的到场者“重叠或辩论”
第二个条件非常相似:“actor 吸收事件”而且与“右获胜地区”范例的 Actor“重叠或辩论”
然后,拖放一个销毁活动。此活动没有选项设置。当您之前设置的任何条件有效时,它将销毁 actor 的实例。你的规则应该看起来像图 3-8 。
https://i-blog.csdnimg.cn/blog_migrate/226689a9aff8660cd4afaa96b4d2aa1c.png
图 3-8。 粉碎球
您可以打开文件MyFirstPong_step7.gameproj进入当前计划阶段。
齐备都是为了王牌!

你预备好赢得比赛了吗?在开始比赛之前,你需要创建两个额外的游戏功能:赢得分数和提供下一个球。
在这一点上,玩家 1 不仅可以发球,还可以同时将无限数目的球送入游戏。假如你不相信我,请多次按空格键。
发球特点:得分的胜者发球

实现“得分的人将为下一个球发球”这个功能相称容易,尤其是由于您已经设置好了险些所有的东西。由于你在比赛中只有两名球员,所以只能由一号球员或二号球员发球。另一种说法是,到场人 1 发球与否(假如不发球,那么到场人 2 发球)。
在上一章中,您创建了一个服务属性,现在您将重用该属性。属性 P1Serving 将根据哪个玩家得分而被修改。
双击演员编辑器中左侧的获奖地区演员,将其打开。你已经有了一个得分的规则。向此现有规则添加一个更改属性,以修改除分数之外的 P1Serving 属性。规则检测 2 号玩家何时得分。在这种情况下,轮到 2 号选手发球了。因此,P1Serving 应设置为 false。
将更改属性活动拖到球检测规则中。设置游戏。P1 为 0,如图 3-9 中的。
https://i-blog.csdnimg.cn/blog_migrate/aac642bbc4e28828dfac8483bae9d52f.png
图 3-9。 将 P1Serving 改为 false
关于布尔:
布尔属性是真/假属性。为了节省一点时间,你可以用 0 和 1 分别代替 true 和 false。GameSalad 会自动将 0 关联到 false,将 1 关联到 true
用右胜区重复操作;这个时间游戏。P1Serving 必须设置为 1,如图 3-10 中的所示。
https://i-blog.csdnimg.cn/blog_migrate/e72b122e6b180a40d1b25691be6d9d5a.png
图 3-10。 变 P1 为真
在比赛中一次只保存一个球

现在,让我们把游戏中的球数限制在一个。(你可以稍后再做决定,并根据你本身的游戏规则进行调整。)
您将利用一个布尔属性,一旦产生了一个球脚色,该属性将被更改为 true,当球被销毁时,该属性将被更改为 false。然后,您将修改 spawn 活动,以在生成球之前检查这个新属性是否为 false。
在场景编辑器中,选择属性检查器窗格。根据图 3-11 创建一个新的布尔属性。
https://i-blog.csdnimg.cn/blog_migrate/ee983d5e42623c5995014efb115a932c.png
图 3-11。 一个新的布尔属性
将该属性定名为 ActiveBall,不要选中它,由于最初游戏中没有球。
让我们回到产卵活动。请记住,球是产卵,但球拍是产卵。所以你需要修改球拍演员的活动。
打开 Rack Player 1,在发球规则中添加一个新条件。条件是假如游戏。ActiveBall 是假的。然后,您需要添加一个更改属性活动,该活动将在球产卵的同时发生。将一个更改属性拖到 Spawn actor 和 implement game 下面。自动球到 1。这会将属性更改为 true,防止当空格键按下时产生新的球。图 3-12 表现了修改后的发球规则。
https://i-blog.csdnimg.cn/blog_migrate/c5d7c3b178a765185008c0155f5c374e.png
图 3-12。 修改架上球员 1 号发球规则
对 Rack Player 2 重复该操作。
末了但同样重要的是,您需要修改球脚色的销毁活动,以表明游戏中不再有运动的球。双击球演员。将“更改属性”活动拖到“销毁”活动上方,并将“运动球”属性更改为“假”。你的规则应该看起来雷同于图 3-13 。
https://i-blog.csdnimg.cn/blog_migrate/d08d813c7b3503b77f5ecb44e1a6ffb7.png
图 3-13。 修改粉碎活动
在预览中启动游戏并检查适当的活动。
您可以打开文件MyFirstPong_step8.gameproj到达这一步。
你有触觉吗?

真正的乐趣现在开始了!您将开始利用 iOS 设备的一些硬件功能。第一个是你设备的触摸界面。您将实现两个函数。当你点击屏幕时,第一个会产生一个球。第二个会用手指移动 Rack Player 1。
轻轻一碰就端上来的

你将只为玩家 1 实现打仗式发球。这个想法是,到本章结束时,你将可以或许在电脑上玩玩家 1!
如许做大约需要 5 秒钟。是的,你没看错!只有 5 秒钟。
双击 Rack Player 1 以编辑器模式打开演员。修改发球规则的第一个条件:用“touch”替换“key”然后选择“外部”因此,不是让玩家按下空格键来产生一个球,而是玩家触摸屏幕,球拍将产生一个球。你的发球规则应该看起来像图 3-14 。
https://i-blog.csdnimg.cn/blog_migrate/4315d735a47cd1558023512fdcba228c.png
图 3-14。 触球发球
现在你想用一根手指移动 1 号选手的球拍。记住球拍被限制在一个特定的水平值上。它只能上下移动。所以你只需要在 y 轴上工作。
诀窍是检测触摸,收集触摸的 y 轴值,并将球拍动作者约束到该值。为了收集触摸位置的值,您将利用鼠标设备。
该鼠标设备
鼠标特殊对象是设备种别中 GameSalad 内部的一个对象。“设备”种别资助您利用 iOS 设备的硬件功能。在这里,您可以利用加速度计、屏幕、音频、时钟、触摸和鼠标功能。鼠标功能代表您触摸屏幕的位置,您通过位置属性收集这些信息。
尽管云云,还是有一些非常重要的事情要做,才能让它发挥作用。球拍不得移出可视地区。你通过只思量 60°和 260°范围内的触感来管理这一点。

[*]创建一个新规则,并将其定名为触摸检测。
[*]添加以下条件:Actor 吸收内部触摸事件(您可以将“内部”替换为“按下”)。
[*]添加两个附加条件:

[*]属性,游戏。鼠标。位置. y,>,60
[*]属性,游戏。鼠标位置 y,

[*]添加 Rack Player 1 的约束属性。到 game.Mouse.Position.Y
完成的规则应该看起来像图 3-15 。
https://i-blog.csdnimg.cn/blog_migrate/8e76619d94a5dfb78412660d710fbc4d.png
图 3-15。 触摸法则
你可以通过打开文件MyFirstPong_step10.gameproj进入这个阶段。
给你的游戏一个大脑

iOS 设备功能强大,但用 GameSalad 实现人工智能是不大概的。然而,只要有一点点想象力,你就可以实现一些规则和活动。
您将分两个阶段实现。你会察觉到球何时来到球员 2 的球拍上;当球穿过半个屏幕时,您将收集球的 y 值,并将该值存储到一个属性中。您将利用第二个属性来限制球拍的移动。第二步将是移动球拍到这个值。
检测方向,得到 Y 值


[*]创建一个真实属性,并将其定名为“predict”
[*]创建一个布尔属性,并将其定名为“positionyourself”,默认值为 false(不选中)。
[*]在演员编辑器中打开球演员。
[*]创建新规则并添加以下条件:

[*]属性,球。Motion.Linear.Velocity.X,≥,0:如许会检测球的运动方向。假如该值为正值,x 值将增加。所以运动将从左到右,进入玩家 2 的球拍。
[*]属性,球。Position.X,≥,240:这是球越过屏幕一半的时候。
[*]属性,球。Position.X,≤,300:这是球反弹到球拍上之前。

[*]添加约束属性活动并将 game.predict 配置为 ball。位置 Y
[*]添加更改属性活动并将 game.positionyourself 配置为 1。
[*]在 Otherwise 部门添加一个末了更改属性活动,并将 game.positionyourselfto 配置为 0。
完成的规则按照图 3-16 所示。
https://i-blog.csdnimg.cn/blog_migrate/ab42e712e8aa8894f0302fcb4ba114f2.png
图 3-16。 移动检测和定位
移动球员 2 号球拍到存储值


[*]在 actor 编辑器中打开 Rack Player 2 actor。
[*]创建新规则并添加以下条件:

[*]属性 game.positionyourself 为真。

这将检测自身移动到存储位置的允许时间。
3.将移动拖到活动。
4.按照图 3-17 配置约束属性。
https://i-blog.csdnimg.cn/blog_migrate/ee1bc847bbf27abc4688a76e9ad74891.png
图 3-17。 约束属性
你还需要在发球功能上做一个修改,让 2 号选手在赢得一分后可以自动发球。为此,只需通过滚动鼠标并单击条件旁边的-号来删除按下空格键的条件。
修改后的规则如图 3-18 所示。
https://i-blog.csdnimg.cn/blog_migrate/040c59abc69e33928e4329cd238b86a5.png
图 3-18。 修改发球规则
打开MyFirstPong_step11.gameproj可以直接到达这一步。
乓,跟我说话

Pong 项目标末了一个润色是添加一些与玩家交互的关键消息。GameSalad 没有语音功能,但可以在 iOS 设备屏幕上表现文本信息。就像之前处理乐谱一样,您将利用一个 actor 向用户表现一些关键的交互消息。
在场景视图中,创建一个新演员并更改以下属性:
   

[*]Name: display
[*]Size/width: 360
[*]Size/Height: 100
[*]Color /Alpha: 0
[*]Physical/Removable: unchecked
为了在场景上完美地定位乐谱表现,您将利用“约束属性”活动来约束该位置。
将约束属性拖放到表现脚色的活动地区。然后选择表现。定位. X 并将其约束为 240。用表现器重复操作。Position.Y 和 160°的约束。
创建具有以下条件的新规则:
   

[*] Attribute game. active ball
[*] Attribute game. P1Serving is true.
拖动一个表现文本活动,并按照图 3-19 进行配置。
https://i-blog.csdnimg.cn/blog_migrate/717443e28d4553fbf2ea51583bf88f1c.png
图 3-19。 表现按键信息
末了但同样重要的是,将演员拖放加入景中。
打开MyFirstPong_step12.gameproj可以直接到达这一步。
让我们在你的设备上玩吧

是时候利用 GameSaladiOS 查看器了。
在 iOS 设备上启动 GameSaladiOS 欣赏器,点击 iPhone 上的预览按钮或 iPad 上的预览按钮。你的 GameSalad 将看起来像图 3-20 。
https://i-blog.csdnimg.cn/blog_migrate/9b3fc2ecbb66b458d872b2ca1667e46f.png
图 3-20。iOS 欣赏器中的Pong
总结

从第二章开始,你已经走了很长一段路。你现在有了一个分两章构建的全功能游戏。
在本章中,您相识了:
   

[*]Score management
[*]serve
[*]Implement artificial intelligence, so player 2 is controlled by CPU
[*]Join the game/player interaction
我盼望你喜好开发和玩乒乓游戏!
四、越狱:实现评论、加速度运动、生活管理和停息

这一章将讲述翻拍著名影戏《越狱》的第一部门。在你开始计划这个游戏之前,我想先先容一下这个游戏的历史。
雅达利在 1976 年开发了 Breakout ( 图 4-1 )。Pong 发布四年后,Breakout 立即成为一款街机游戏。后来雅达利发布了视频游戏机版《突围》。
https://i-blog.csdnimg.cn/blog_migrate/d518eb69270b4550438fe783b763e533.png
图 4-1。 突围楼主
诺兰·布什内尔和史蒂夫·布里斯托从单人乒乓游戏的想法发展出了这种游戏。球员用球拍击球来摧毁墙上的砖块。假如球员错过了球的回归,他就输了。
最初的《越狱》讲述了一名囚犯试图用球和链条打坏砖块逃跑的故事。有两个条理。第一层由八排四种差别颜色的砖块组成(每种颜色两排,如图图 4-2 )。用球和球拍,玩家必须摧毁所有的砖块。玩家每升一级可以获得 448 分。
https://i-blog.csdnimg.cn/blog_migrate/00f2377a2e44ce2d467b23e1b7b13f9a.png
图 4-2。 雅达利 2600 家庭版突围
一点小注意:
最初的街机版 Breakout 是用黑白屏幕制造的。Atari 在屏幕上利用了一些彩色的透明胶带来呈现颜色。
一点小注意:
史蒂夫·乔布斯和史蒂夫·沃兹尼亚克到场了《越狱》的开发。他们致力于优化游戏中的电路板,以减少晶体管的数目。
本章将涵盖以下主题:
   

[*]Strengthen your basic game skills.
[*]Add comments to your work.
[*]Use accelerometer to control your game
[*]Manage life and game ending process
[*]Add a pause function to your game
打下基础

在本节中,您将快速创建游戏的基本元素。您将从创建到场者开始,然后为每个到场者定义规则和活动。末了,您将在场景中定位演员。
您可以通过直接打开文件BreakaWall-step1.gameproj来快速启动本节。
定义新项目

首先打开 GameSalad creator。在“新建项目”下,选择“我的伟大项目模板”,然后单击“在 GameSalad Creator 中编辑”。
按照表 4-1 配置项目信息。
https://i-blog.csdnimg.cn/blog_migrate/329aeae55efa119af9737f4e34e90edf.png
单击文件https://i-blog.csdnimg.cn/blog_migrate/fd5fc1f3c9a6ba167f72f6d639da3d7e.png另存为生存您的项目。定名为BreakaWall.gameproj。
定义演员

在这个游戏中,您将创建以下脚色:
   

[*]racket
[*]fragment of a brick
[*]ball
[*]Vertical wall
[*]Hengqiang
[*]Transport area
[*]show
球拍

球拍由球员控制,将球反弹回砖块。
创建一个新的 actor,双击它打开 Actor 编辑器。
用表 4-2 中的参数编辑演员属性。
https://i-blog.csdnimg.cn/blog_migrate/8d8096ea1f5207e012e383b640533f3d.png


砖块构成了要摧毁的墙的单一元素。创建一个新的 actor,双击它打开 Actor 编辑器。用表 4-3 中的参数编辑演员属性。


球是在运动地区内弹跳的运动元素。创建一个新的 actor,双击它打开 Actor 编辑器。用表 4-4 中的参数编辑演员属性。
https://i-blog.csdnimg.cn/blog_migrate/2e6ecc70983e8d567015975946c450e9.png
垂直墙

墙是用来界定游戏地区的。创建一个新的 actor,双击它打开 Actor 编辑器。用表 4-5 中的参数编辑演员属性。
水平墙

创建一个新的 actor,双击它打开 Actor 编辑器。用表 4-6 中的参数编辑演员属性。
失败地带

与 Pong 游戏中的获胜地区雷同,您将在球拍下方创建一个失败地区,以检测玩家何时错过了球。创建一个新的 actor,双击它打开 Actor 编辑器。用表 4-7 中的参数编辑演员属性。
https://i-blog.csdnimg.cn/blog_migrate/0192361ae11205ba8d365919133c15a0.png
表现

display actor 用于在屏幕上表现信息。创建一个新的 actor,双击它打开 Actor 编辑器。用表 4-8 中的参数编辑演员属性。
https://i-blog.csdnimg.cn/blog_migrate/9a1084baf6704df522b57009b41bd8f6.png
创建可绑定标签

您将重复对 Pong 接纳的方法,为所有将发生碰撞的脚色创建一个可碰撞的标签。
创建一个新的 actor 标签,并将其定名为“Collidable”
将以下脚色拖放到可绑定的标签上:
   

[*]brick
[*]racket
[*]ball
[*]Hengqiang
[*]Vertical wall
定义属性

和前面的章节一样,属性将在你的游戏工程中扮演重要脚色。
ActiveBall 属性将用于相识一个球是否已经在屏幕上运动,假如是,防止用户在游戏中产生另一个球。为此,您将利用一个布尔值。
BrickCount 将用于知道球何时粉碎末了一块砖。您将利用屏幕上砖块的初始数目来设置这个整数属性。那么每一块砖被粉碎一次,你将减少这个整数。
TextToDisplay 将用于与玩家交换游戏信息。
根据表 4-9 创建属性。
https://i-blog.csdnimg.cn/blog_migrate/d83de4ac78196b7fabc61531a7194c94.png
实现规则和活动

到场者、属性和标签现在都设置好了。但是还没有实现任何逻辑和交互。接下来的步骤将添加规则和活动,这些规则和活动将为每个到场者定义游戏逻辑。
球类规则和活动

为了在球产生时给它一个初始运动,你将利用一个改变速度的活动。
根据图 4-3 ,将一个变化速度活动拖放到演员中,并以 300 的速度将设置更改为相对于场景的随机方向(70,110)。
https://i-blog.csdnimg.cn/blog_migrate/463b81192867d8952588f1a96ab8ad94.png
图 4-3。 球的初速度
接下来,您需要确保球将与所有可碰撞的脚色碰撞,因此利用碰撞活动。
根据图 4-4 ,将碰撞活动拖放到演员中,并将设置更改为“带标签的演员:”和“可碰撞”。
https://i-blog.csdnimg.cn/blog_migrate/2bf5ad10fc19d00c19b434d2106a2e45.png
图 4-4。 球的碰撞活动
让我们来订定球员丢球时的规则。您将利用与 Pong 游戏相同的逻辑。一个演员将被定位在球拍下面,当球与它重叠时,它将粉碎球,并将属性 ActiveBall 更改为 false。
单击“创建规则”并添加条件“执行元吸收事件”“重叠或辩论”与“执行元范例”“松散地区”拖放一个改变属性活动和改变游戏。自动球到 0。然后,将销毁活动拖放到更改属性活动的正下方。你的规则应该雷同于图 4-5 。
https://i-blog.csdnimg.cn/blog_migrate/ddb53b3238396d29558e4d96cd1258b0.png
图 4-5。 松绑
接下来,创建一个规则,当末了一个砖块被摧毁时,这个规则将摧毁这个球,而且还将表现文本“你赢了!”点击创建规则并添加条件“属性”“游戏。BrickCount"“=”"0。"拖放一个改变属性活动和改变游戏。TextToDisplayto“你赢了!”然后,将销毁活动拖放到更改属性活动的正下方。你的规则应该雷同于图 4-6 。
https://i-blog.csdnimg.cn/blog_migrate/b1d1d8a152d585cd72eb8194b0965ccc.png
图 4-6。 结束游戏
假如你玩过很多乒乓游戏,你大概会注意到球偶然会卡在水平方向;这很无聊。为了避免这种情况,我们引入一个扰动。你会监控球,只要它被水平或垂直卡住,你就会添加一个随机结果来改变下一次反弹。为了达到这个目标,你必须监控球的线速度。线速度是在二维平面的轴之间的运动。假如 Y 的线速度为 0,这意味着球保持恒定的 Y 位置。换句话说,你的球在以完美的水平运动(球卡在左右墙之间)。假如 X 的线速度为 0,这意味着球保持恒定的 X 位置。换句话说,你的球正以完美的垂直运动方式运动。
单击创建规则并添加条件“属性”“球”。运动。线速度。Y"“=”"0 "。拖放一个规则活动,并添加条件“执行元吸收事件”“重叠或辩论”和“带有标签的执行元”“可碰撞”然后拖拽一个改变属性活动和改变球。运动。线速度。y 到 random (70,120)。你的规则应该雷同于图 4-7 。
https://i-blog.csdnimg.cn/blog_migrate/b306e2412bd91320aec3142c94654e60.png
图 4-7。 防止横向堵塞
单击创建规则并添加条件“属性”“球”。运动。线速度。X"“=”"0 "。拖放一个规则活动,并添加条件“执行元吸收事件”“重叠或辩论”和“带有标签的执行元”“可碰撞”然后拖放一个改变属性活动和改变球。运动。线速度。x 到 random (70,120)。你的规则应该雷同于图 4-8 。
https://i-blog.csdnimg.cn/blog_migrate/3076617c2dd428abf5ed8a4427351c16.png
图 4-8。 防止垂直堵塞
球拍规则和活动

根据图 4-9 ,将碰撞活动拖放到演员中,并将设置更改为“带标签的演员:”可碰撞“。
https://i-blog.csdnimg.cn/blog_migrate/16e378c858accf072e41b970795fb30c.png
图 4-9。 球的碰撞活动
将约束属性活动拖放到演员中,并更改球拍的设置。根据图 4-10 将 Y 轴定位到 40°。这将把球拍垂直地限制在它的位置上。
https://i-blog.csdnimg.cn/blog_migrate/d8588800758b72f03ad551a0159038d4.png
图 4-10。 约束球拍属性
现在创建两条规则来实现球拍的移动。就像你之前做的那样,你将利用按键来左右移动球拍。
单击“创建规则”并添加条件“到场者吸收事件”“按键”“左”键盘“按下”拖放移动活动并将设置更改为:
   

[*]Direction: 180
[*]Relative: actor
[*]Type of movement: addition
[*]Speed: 300
你的规则应该雷同于图 4-11 。
https://i-blog.csdnimg.cn/blog_migrate/9f4dbeace224213b0ce2f86f4d66b401.png
图 4-11。 左运动规律
单击“创建规则”并添加条件“到场者吸收事件”“按键”“右”键盘“按下”拖放移动活动并将设置更改为:
   

[*]Direction: 0
[*]Relative: actor
[*]Type of movement: addition
[*]Speed: 300
你的规则应该雷同于图 4-12 。
https://i-blog.csdnimg.cn/blog_migrate/a04fbb88ac21684e1a33c28c833318c3.png
图 4-12。 右运动规律
末了,创建一个规则,当屏幕被触摸到演员之外而且没有运动的球时,生成一个球演员。
单击“创建规则”并添加条件“执行元吸收事件”“打仗”为“外部”添加第二个条件来检查游戏。ActiveBall 属性。条件将是“游戏属性”。ActiveBall”是“假的”拖放“繁殖演员”活动,并将设置更改为:
   

[*]Actor: Ball
[*]Layer order: in actors
[*]Front: Random (75,135)
[*]Relative to: actor
[*]Location: 0, 10
[*]Relative to: actor
拖放一个改变属性活动和改变游戏。自动球到 1。你的规则应该雷同于图 4-13 。
https://i-blog.csdnimg.cn/blog_migrate/317ca1a08111ad73f2c126813e5272eb.png
图 4-13。 产卵球演员法则
砖块规则和活动

砖头演员只有一条规则。该规则将检测与球的碰撞,然后销毁演员并减少 brickCount 属性。
单击“创建规则”并添加条件“执行元吸收事件”“重叠或辩论”与“执行元范例”“球”拖放粉碎活动。拖放一个改变属性活动和改变游戏。砖块计数到游戏。BrickCount-1。你的规则应该雷同于图 4-14 。
https://i-blog.csdnimg.cn/blog_migrate/1e5efe57b5eb575583a0691dfa980d40.png
图 4-14。 砖头统治
表现文本规则和活动

在这个阶段,末了一个需要活动的到场者是表现文本。它将在场景中永世表现文本属性的内容。诀窍在于,在赢得游戏之前,属性将是空的。
拖放一个表现文本属性,并将文本设置更改为“game.TextToDisplay”。您可以保存所有其他默认设置。你的活动应该雷同于图 4-15 。
https://i-blog.csdnimg.cn/blog_migrate/88e11ad48d6953cf9fe130b97750cb5f.png
图 4-15。 表现获奖文本
场景结构

下一步是确定演员在现场的位置。将您的演员拖加入景中,并尝试匹配图 4-16 。为了创建该演员的六个实例,您需要将砖块拖动加入景中六次。
https://i-blog.csdnimg.cn/blog_migrate/812631ce1d255e4421405488531e4c4b.png
图 1-16。 第一步场景
固然不可见,但将表现演员拖加入景的中心。
评论你的作品

假如你跳过了前一部门,你可以直接打开文件BreakaWall-step1.gameproj从这一点继续。
该不应写评论?什么是好的评论?我必须承认,我从前很讨厌写评论。我认为这是无用的,并转移了我的目标:编码!但这是不对的!首先也是最重要的,评论让你的游戏计划更加清晰。通过注释,你可以形貌到场者的责任或者规则的意图。接下来,它让你的游戏项目更容易被其他人理解。当你在一个团队中工作时,假如你包括精确的评论,你将会为你的同事节省大量的时间。一个好的注释提供了关于你的计划策略和规则中任何微妙安排的有用信息。
要添加注释,请利用 GameSalad 的注释活动。它可以作为任何活动放在“执行元活动”面板或规则中。让我们稍微训练一下。
在演员编辑器中打开球拍演员。将音符活动拖放到活动堆的顶部。键入以下注释:
`The Racket is the paddle to be controlled by the player.
The racket will collide and bounce with collidable objects.
The racket will be constrained on the Y=40 axis.`
你的评论应该雷同于图 1-17 。
https://i-blog.csdnimg.cn/blog_migrate/c83142c834a06f429d5843e6407b5430.png
图 1-17。 球拍总评
现在,将音符活动拖放到左移动规则上方。键入以下注释:
`When the left key is pressed, the actor will move to the left direction.
When the right key is pressed, the actor will move to the right
direction.`
你的评论应该雷同于图 1-18 。
https://i-blog.csdnimg.cn/blog_migrate/eb7afc316645e33eeab0e840a17727ac.png
图 4-18。 点评球拍移动规则
从这一步开始,我不会告诉你写哪个注释,但是项目文件将包含我的一些注释。请随意阅读。
用加速度计移动桨

从这一点出发,您可以简朴地打开文件BreakaWall-step2.gameproj。
让我们找点乐子!为了移动球拍,你将利用 iOS 设备的内置加速度计。为了创建如许的功能,您将再次利用设备属性,尤其是加速度计。事实上,您需要在加速度计的 X 轴上进行检测。
在演员编辑器中打开球拍演员。在左移规则中,添加一个新条件。条件是“属性”“game . accelerator . x”图 4-19 。
这种基于加速度计的运动实现在这个阶段是粗略的,而且没有思量运动中的任何倾斜量。这只是第一步。你将在第八章中学习更高级的方法。
https://i-blog.csdnimg.cn/blog_migrate/90ea82067093b628531a42d91ff236bc.png
图 4-19。 用加速度计向左移动的规律
加速度计
加速度计丈量设备自身在三维空间中的加速度。iOS 设备中的传感器会捕捉每一次移动和倾斜,因此它可以计算设备的方向和许多其他用途(比方设备正在向哪个方向移动)。
当你将 iPad 置于纵向模式时,按照图 4-20 ,X 轴将指向你。
https://i-blog.csdnimg.cn/blog_migrate/582d7606f6707017b57953bf57399c30.png
图 4-20 。纵向模式下的 iPad
负加速度是绕 x 轴逆时针旋转,如图 4-21 中的所示。
https://i-blog.csdnimg.cn/blog_migrate/66bcd2b0c112f064b85abbd91b19d208.png
图 4-21。 逆时针旋转
正加速度是围绕 x 轴的顺时针旋转,根据图 4-22 。
https://i-blog.csdnimg.cn/blog_migrate/b62e0cbe9e077423bf66cedb5d31cb9f.png
图 4-22。 顺时针旋转
由于您想要捕捉预期的运动而不是振动,所以您选择触发值 0.05。你可以在这个值上打转,找到一个你觉得最舒服的值。
让我们修改右移动规则,以包括加速度计条件。在右移规则中,增加一个新条件:“属性”“game . accelerator . x”“0.05”。您还需要将“All”改为“Any”,比方“When 'Any '条件有效。”就如许!您的新规则将雷同于图 4-23 。
https://i-blog.csdnimg.cn/blog_migrate/b7b14d07d43cfdf7ae017dc529a0acc4.png
图 4-23。 带加速度计的右运动规律
假如您从纵向更改为横向或支持两种方向,您将需要更改您的加速度计规则。
通过在球拍的演员编辑器中单击“创建组”,为球拍创建一组活动。将两条规则拖放到组中。
您刚刚创建的规则适用于纵向方向。你需要把它们颠倒过来,酿成纵向颠倒的方向。用 GameSalad 做到这一点非常容易。创建一个检测屏幕方向的规则,并相应地启用精确的规则。
创建一个带有“属性”条件的新规则“游戏”。屏幕。设备方向为“纵向”然后拖放新创建的组。新规则应如图 4-24 中的所示。
https://i-blog.csdnimg.cn/blog_migrate/b8037b71a68622912b958e9e516e7d6c.png
图 4-24。 人像定向规则
选择您刚刚创建的规则,然后按 Command + C 来拷贝该规则。按 Command + V 粘贴该规则,并更改以下设置:“纵向”为“纵向颠倒”,然后第一个向左移动的子规则会将其条件更改为“>”“0.05”,第二个向右移动的子规则会将其条件更改为“图 4-25 。
https://i-blog.csdnimg.cn/blog_migrate/f7e7205a2b82d47e7e128736124949e4.png
图 4-25。??【肖像颠倒定向法则】??
您现在可以管理设备的方向了!
演习
在 iOS 查看器中测试此项目。遵照上一章的说明。您还将更改“自动旋转”属性,以启用纵向颠倒。为此,在场景编辑器中,按照图 4-26 中的单击场景按钮,并睁开自动旋转属性。将肖像旁边的方框打勾。
https://i-blog.csdnimg.cn/blog_migrate/e6e21ab4a893afdd856bbb5772bfc7fd.png
图 4-26。 场景属性检查器
管理生活和游戏结束过程

从这一点出发,您可以简朴地打开文件BreakaWall-step3.gameproj。
为了让游戏更真实,你可以给玩家三条命。这意味着第三次错过球,你将表现一个游戏结束的消息,玩家将无法产生一个新的演员。您还将表现一个重试按钮,该按钮将重置场景,并让玩家尝试再次获胜。
您大概已经猜到了,您将利用一个属性来管理生命。每错过一次球,你将减少 1 的属性。您将添加一个条件,在生成新球之前检查生命数是否严酷优于 0。在表现文本中,当生命属性等于 0 时,您将有一个表现游戏结束消息的规则。
游戏计划时间到了!创建一个新的整数属性,将其重定名为“lives”,并将默认值设置为 3。你的属性将看起来像图 4-27 。
https://i-blog.csdnimg.cn/blog_migrate/9114bde59930e7904119814cc86ceb20.png
图 4-27。 生命属性
双击脚色编辑器中的球脚色,将其打开。在输区规则中,拖放一个更改属性活动,并将其放置在游戏之间。自动球改变属性活动和粉碎活动。将 game . lifes 修改为 game . lifes-1。
输区规则将如图 4-28 所示。
https://i-blog.csdnimg.cn/blog_migrate/ac712e01698fe15db49985316a8511c7.png
图 4-28。 修改了输区规则
接下来,创建一个新规则,并将条件更改为" Attribute"“game.lives”“=” "0 "。这将检测何时不再有生命可用。拖放一个改变属性活动和改变游戏。短信表现“游戏结束!–按图 4-29 中的点击此处重试】。
https://i-blog.csdnimg.cn/blog_migrate/2365be7f0d15f88fc608aae6afe787e0.png
图 4-29。 游戏结束表现规则
您需要修改附加到球拍 actor 的球生成规则,以便添加关于生命数的条件(> 0)。
在演员编辑器中打开球拍演员。根据图 4-30 ,选择生球规则并添加以下条件:“Attribute”“game . lives”>“0”。
https://i-blog.csdnimg.cn/blog_migrate/b218f9db628c0a89af8bcb914427ae2a.png
**图 4-30。**修改了球的产卵规则
您就快乐成了,但是您需要在游戏结束时实现重试功能。这相称容易。您将利用重置游戏活动。
关于重置游戏和重置场景:
固然听起来很明显,重置场景只会重置场景而不会重置游戏。当你有一个多级游戏而且你想给玩家更多的尝试时机时,这是非常有用的,但是记住重置场景只会重置场景,同样地,游戏属性不会被重置。所以在你计划游戏的时候,花点时间想想哪些属性应该是游戏或者场景属性。
在 actor 编辑器中打开表现 Actor,根据图 4-31 创建一个新规则。
https://i-blog.csdnimg.cn/blog_migrate/0f925b763464b19007f1bdfc0abe8069.png
图 4-31。 重试功能
添加停息功能

从这一点出发,您可以简朴地打开文件BreakaWall-step4.gameproj。
在 GameSalad 中停息是非常容易的,但是你需要理解这个概念以便有效地利用它。
停息活动将在当前场景的顶部覆盖一个新场景,并停息当前场景的所有物理结果。它不会停息音乐、声音或计时器。为了有效地构建停息函数,您需要:
   

[*]An actor who can trigger a pause.
[*]A scene used as a pause picture.
[*]Pause a button on the screen to resume the game.
让我们把这齐备付诸实践。
创建一个新场景。单击“主页”按钮并选择“场景”选项卡。然后点击左下角的+号。通过单击名称来重定名场景。键入“Pause”作为场景名称。
根据图 3-32,你的项目中现在有两个场景。
https://i-blog.csdnimg.cn/blog_migrate/14f8b0240829f2c504b2f7ca894c00eb.png
图 3-32。 场景视图
创建新演员。用表 4-10 中的参数编辑演员属性。
https://i-blog.csdnimg.cn/blog_migrate/c189afe7224447ad832eae6d053d5018.png
拖拽一个表现文本属性,根据图 4-33 改变设置。
https://i-blog.csdnimg.cn/blog_migrate/c1ae287f177b641951ea83575bd5372a.png
图 4-33。 停息表现
创建新规则并添加以下条件:
   

[*]“Actor receives event” and “Touch” is “Press”
[*]“attribute” “dance academy” >
然后拖放停息游戏属性,并选择您先前创建的停息场景。完备的规则如图 4-34 所示。
https://i-blog.csdnimg.cn/blog_migrate/e04923b2b282226af1599b4a3914f2d2.png
图 4-34。 停息规则
现在如图 3-35 所示,将停息演员放置在屏幕的左上角。
https://i-blog.csdnimg.cn/blog_migrate/282842989ba690cc251db25a09dd6a1b.png
图 3-35。 定位停息演员
通过单击“场景”按钮,选择新创建的名为“停息”的场景。
创建一个名为 ResumeGame 的新演员。用表 4-11 中的参数编辑演员属性。
https://i-blog.csdnimg.cn/blog_migrate/29970951a46ee5a3df08538578306450.png
拖拽一个表现文本属性,根据图 4-36 改变设置。
https://i-blog.csdnimg.cn/blog_migrate/6ff6179bcc1e8418309bccb8082d582f.png
图 4-36。 恢复游戏表现
创建新规则并添加以下条件:
   

[*]“Actor receives event” and “Touch” is “pressed”
然后拖放一个未停息的游戏属性。完备的规则如图 4-37 所示。
https://i-blog.csdnimg.cn/blog_migrate/4483f63cd7ce589bbc7a09b8891bec40.png
图 4-37。 取消停息游戏规则
末了,你需要将简历演员放在屏幕中心。就如许!你的游戏有停息功能!
您可以打开文件Breakawall-step5.gameproj来达到这一点。
在第九章中,你将继续为这个游戏工作。同时,你将发展物理、重力、音频和图形结果方面的技能。
总结

你即将创造一个新的阿卡迪亚人!你的文件夹里还有第二个游戏。
在本章中,您将:
   

[*]Strengthen your basic game skills.
[*]Add comments to your work.
[*]Use accelerometer to control your game.
[*]Manage the process of life and game ending.
[*]Added pause function to your game.
五、制作射击游戏:胡萝卜入侵者

当我还是个孩子的时候,我记得我的父母试图让我吃完我的胡萝卜泥。“吃了这个,你会有好看的皮肤!”啊啊。!!我还是会做关于胡萝卜的噩梦!这就是为什么,为了向最著名的电子游戏之一致敬,你会用胡萝卜而不是外星人来翻拍《太空入侵者》。
《太空入侵者》是一款日本游戏,由台东公司于 1978 年发行。Taito 最初是一家在日本从事自动售货机贸易的进出口公司。他们在 60 年代进入了游戏行业。最近,Square Enix 在 2005 年收购了 Taito。Square Enix 在游戏界因《终极幻想》游戏而著名。
《太空入侵者》的灵感泉源于 Taito 之前的一款名为《太空怪兽》的电子呆板游戏。《太空入侵者》对 Taito 来说是一个巨大的乐成。游戏的街机版如图图 5-1 所示。
https://i-blog.csdnimg.cn/blog_migrate/09d681ecc55dc7b26421c65e6f0f53a3.png
图 5-1。 一个太空入侵者的街机柜。
《太空入侵者》是一款射击游戏。你控制一艘飞船,用大炮向敌人射击。敌人是成列从左向右移动的外星人(偶然会向下移动几个像素)。目标是在所有的敌人降落在地球上并开始入侵之前向他们射击。
在本章中,您将通过创建另一个包含演员、规则和活动的新项目来训练 GameSalad 的基础知识。您还将相识图像的管理以及如何将图像用于演员。本章还将涵盖以下内容:
   

[*]Introduction to Mathematics Creating Complex Actions
[*]The visual effect of the spacecraft moving motionless.
[*]Manage interpolation behavior of energy bars.
[*]Change scene behavior to transition scene
预备场景的基本元素

根据上一章,您可以通过直接打开文件CarrotInvaders-step1.gameproj来跳转到本节。
在本节中,您将为胡萝卜入侵者项目创建一个新项目。然后你会把重点放在项目标演员身上。您将强化您在演员创建、规则和属性计划方面的技能。您还将学习一些新的东西:图像特性,比如导入图像、检查器以及向演员添加图片。
创建胡萝卜入侵者游戏项目

打开游戏沙拉创建器,创建一个新项目。根据表 5-1 配置项目信息。
https://i-blog.csdnimg.cn/blog_migrate/3a9c3dbad32f1a3be6937b7967667dc0.png
将文件定名并生存为Carrot_Invaders.gameproj。
艺术家入口:创造演员

《胡萝卜入侵者》需要以下演员:
   

[*]Carrots; Use as an enemy
[*]Spacecraft; Act as a hero
[*]Background; Used to create situations.
[*]Bullets; Used to destroy the enemy
[*]Walls; Used to define scenes.
在创建演员之前,您将做一些新的事情。你将为你的演员预备一些服装。是的,你会在上面放一些衣服(衣服,我的意思是你会用图片)。稍后我将为您提供更多关于 GameSalad 中图形和图形优化的信息;本章重点先容如何在 GameSalad 中导入和利用图像。
要在屏幕上表现图像,你需要一个演员。但是为了让 actor 访问图像,必须首先将图像导入 GameSalad。
在 GameSalad 中导入图像很容易。在场景编辑器中,根据图 5-2 选择活动选项卡旁边的图像选项卡。
https://i-blog.csdnimg.cn/blog_migrate/696dfe0438532d34e90be73cecc814ee.png
图 5-2。 场景编辑器用图像选项卡选中
单击右下角的+号打开体系选择窗口,选择要导入的文件。
**注意:**图像可以通过其他几种方式导入。它们可以直接从桌面或文件夹拖到图像部门。它们可以从桌面或文件夹中拖到一个 actor 上。也可以通过右键单击来添加它们。gameproj 文件,选择“表现包内容和图像”并把它拖到那里,但这不是推荐的。
将以下文件导入到第五章文件夹下的图像资源中:carrot.png、background.png、spaceship.png、tomato.png、explosion.png(根据图 5-3 )。
https://i-blog.csdnimg.cn/blog_migrate/fe1c428b0c3333ec85533006803f71eb.png
图 5-3。 导入图片
当您创建到场者时,请注意,假如没有特殊提到这些属性,默认情况下会保存该值。
创造敌人:胡萝卜

创建一个新的 actor,双击它打开 Actor 编辑器。
用表 5-2 中的参数编辑演员属性。
https://i-blog.csdnimg.cn/blog_migrate/2dd20dd3be130b2c6bdd239ca009ac0b.png
单击图像选项卡以表现您刚刚导入的图像。按照图 5-4 将carrot.png拖拽到演员视图。
https://i-blog.csdnimg.cn/blog_migrate/9d4acdf893036628ca460ff7f0e4e650.png
图 5-4。 给演员移动画面
太空旅行:宇宙飞船

创建一个新的 actor,双击它打开 Actor 编辑器。
用表 5-3 中的参数编辑演员属性。
https://i-blog.csdnimg.cn/blog_migrate/f0169d94b4458332a10b1b5b0faebbbd.png
单击 Images 选项卡表现您刚刚导入的图像,并将spaceship.png拖放到 actor 中。
在一个很远很远的星系里:创造背景

创建一个新的 actor,双击它打开 Actor 编辑器。
用表 5-4 中的参数编辑演员属性。
https://i-blog.csdnimg.cn/blog_migrate/1f5934bf721a9847bdffefd84e2844d3.png
单击 Images 选项卡表现您刚刚导入的图像,并将background.png拖放到 actor 中。
给你的枪上膛:定义子弹

创建一个新的 actor,双击它打开 Actor 编辑器。
用表 5-5 中的参数编辑演员属性。
https://i-blog.csdnimg.cn/blog_migrate/c1fddacf24023726a4257f138bc70134.png
深空中的边界:墙

创建一个新的 actor,双击它打开 Actor 编辑器。
用表 5-6 中的参数编辑演员属性。
https://i-blog.csdnimg.cn/blog_migrate/5b2c2433e87487c505790193fe6ffb00.png
你的演员库存应该匹配图 5-5 。
https://i-blog.csdnimg.cn/blog_migrate/6b0ba37f79bd770c02f5e2c3e532dcd3.png
图 5-5。 演员创造的
用游戏属性控制敌人的数目

首先,您将只创建一个属性,用于包含屏幕上剩余的胡萝卜数目。因此,它将是一个整数属性,我们称之为 number 胡萝卜。
在游戏开始时,这个属性将包含屏幕上胡萝卜的数目,而且每当一个胡萝卜被子弹光束打坏时,它将减少 1。
在场景编辑器模式下点击检查器中的属性标签。然后单击+号创建一个新属性,并选择 integer。根据图 5-6 ,初始值应为 0,范例应为整数。
https://i-blog.csdnimg.cn/blog_migrate/26acbc14727716fa9b94ca9aa28ba0e5.png
**图 5-6。**number 胡萝卜属性
设定脚本:实现规则和活动

你需要定义游戏的逻辑,你将利用规则和活动来完成这项任务。您将利用计时器和加速器活动来创建控件和自动触发。
胡萝卜:终极敌人脚色

拖放一个改变属性活动到胡萝卜演员和改变游戏。将胡萝卜加入游戏。根据图 5-7 给胡萝卜+1 编号。每在场景中放置一个胡萝卜演员,属性 number 胡萝卜就会增加 1。所以当你开始场景的时候,你会在游戏属性 number rubbers 中包含屏幕上胡萝卜的数目。
https://i-blog.csdnimg.cn/blog_migrate/0c6d77ae869a1c4b29a2ff73683941cd.png
图 5-7。 改变属性号
现在创建一个规则,当子弹和胡萝卜发生碰撞时,触发敌人数目的减少,然后消灭敌人。
点击创建规则,并将规则定名为“摧毁胡萝卜”添加以下条件:“执行元吸收事件”“与“执行元范例”“项目符号”重叠或辩论。”拖放计时器活动,并将设置更改为“0.4 秒后”。选中“运行至完成”复选框然后拖拽一个改变属性活动,改变游戏。将胡萝卜加入游戏。数字胡萝卜-1。末了,根据图 5-8 拖放一个粉碎活动。
你为什么用计时器?在本章的后面,你将实现一个持续时间为 0.4 秒的爆炸结果。因此计时器会在消灭演员之前给你时间来展示这个结果。
https://i-blog.csdnimg.cn/blog_migrate/2df724f4ced6045a0c7bf619690f11da.png
图 5-8。 粉碎胡萝卜法则
驾驶宇宙飞船

首先,您将通过利用约束属性活动来确保飞船停留在 Y=25 的水平轴上。
将约束属性活动拖放到飞船脚色中,并根据图 5-9 将 spaceship.position.Y 配置为 25。
https://i-blog.csdnimg.cn/blog_migrate/25673d530f15e9c07724cc790c39c1e4.png
图 5-9。 将飞船约束在 Y=25
接下来,利用与墙壁的碰撞为飞船创建一些边界。
根据图 5-10 ,拖放碰撞活动,并将设置更改为与“范例的演员”“墙”碰撞时反弹。
https://i-blog.csdnimg.cn/blog_migrate/177a6419b8ca83bdf4f4c2fbe0825f43.png
图 5-10 。撞墙
将移动规则组合在一起以增加可读性。您将利用规则来检测加速度计的运动,并使飞船相应地移动。
单击“创建组”并将其定名为“运动”单击创建规则在组内创建规则。将规则定名为“右移”,并将以下条件配置为“恣意”:
   

[*]The “actor receiving event”, “key” and “right key” keyboard is “down”
[*]“attribute” and “game”. Accelerometer “”> ""0.2 "
然后拖放一个移动活动并配置以下设置:
   

[*]Direction: 0
[*]Relative: Scene
[*]Type of movement: addition
[*]Speed: 300
你的规则应该雷同于图 5-11 。
https://i-blog.csdnimg.cn/blog_migrate/6d0ecb63af09e9a8434f46947fe8ee75.png
图 5-11。 右运动规律
在移动组中创建新规则。将其定名为“向左移动”,并将以下条件配置为“恣意”:
   

[*]The “actor receiving event”, “key” and “left key” keyboard is “down”
[*]“attribute” and “game”. Accelerometer "
然后拖放移动活动并配置以下设置:
   

[*]Direction: 180
[*]Relative: Scene
[*]Type of movement: addition
[*]Speed: 300
你的规则应该雷同于图 5-12 。
https://i-blog.csdnimg.cn/blog_migrate/5baa04f751987bd83fa000eceec691ad.png
图 5-12。 左运动规律
现在实现飞船自动发射子弹。为此,创建一个规则,规定只要屏幕上胡萝卜的数目严酷大于 0,每 0.5 秒发射一颗子弹。
创建一个新规则,定名为“自动开火”,条件为“属性”“游戏”。number 胡萝卜" " > " " 0 "。然后拖放计时器活动,将设置更改为“每”“0.5”秒,取消选中“运行到完成”。末了,拖放一个 Spawn Actor 活动并将设置更改为:
   

[*]Actor: Bullets.
[*]Layer order: in actors
[*]Back: 0
[*]Relative to: actor
[*]Location: X: 0 Y: 0
[*]Relative to: actor
自动射击规则将与图 5-13 中的相同。
https://i-blog.csdnimg.cn/blog_migrate/400bf1f3c8b3401fc398fcccaccdd41e.png
图 5-13。 汽车消防规则
尽力开火:子弹

首先,您将更改子弹的速度,以便子弹一产生就移动。
在子弹演员上拖放一个改变速度活动,并配置这些设置(也表现在图 5-14 ):
   

[*]Direction: 90
[*]Relative: Scene
[*]Speed: 300
https://i-blog.csdnimg.cn/blog_migrate/f9ca16e9d9b669b6a29dab7c97c4a067.png
图 5-14。 子弹变化速度
下一步是当演员与敌人发生辩论时或者当它在屏幕上不再可见时摧毁它。通过检测它的 Y 轴值就知道子弹是不可见的。
创建一个新规则,并将其定名为“Destroy”将条件配置为以下任何条件:
   

[*]Actor receiving event and actor type carrot
[*]Attributes and Bullets overlap or conflict. Location. Y"" > ""560 "
然后根据图 5-15 拖放一个粉碎活动。
https://i-blog.csdnimg.cn/blog_migrate/44e5c03474a086613ea6ede2506e9f61.png
图 5-15??。子弹销毁规则
入侵开始:创建场景结构

下一步是确定演员在现场的位置。试配图 5-16 。
https://i-blog.csdnimg.cn/blog_migrate/0781d5e26d6fde9e065cfb9ea728c456.png
图 5-16。 胡萝卜入侵者第一步
添加高级功能

现在是时候给你的游戏增加一些高级功能了。您将学习一些数学知识来创建复杂的运动和运动视觉结果,利用“插值”活动管理能量棒,以及利用“更改场景”活动过渡场景。
复杂的动作

您可以打开文件Carrot_Invaders_step1.gameproj从这一点开始执行步骤。
数学很好玩!我很确定你们中的大多数人不会相信我,但是我可以向你们包管,游戏开发所需的数学知识是非常基础的,它可以让你们做出有趣的游戏!
到现在为止,你肯定已经点击了预览按钮,并销毁了胡萝卜。你可以很容易地消灭他们:仍然是毫无防备的目标!但是假如胡萝卜可以移动呢?他们不太容易被杀死。正如你现在已经猜到的,你将利用数学来定义它们的运动。
在你进入 GameSalad 的运动定义之前,我想澄清一下我所说的“复杂运动”是什么意思复杂的运动不是随机的运动。随机运动本质上是混乱的。复杂的运动有一个非常预先确定的模式,但差别于简朴的线性运动。
参数方程很有趣

所以,系好安全带,跳进参数方程的世界吧。基本上,参数方程是一种用方程绘制图形的方法,此中 X 和 Y 位置都取决于特定的参数。这意味着图形中的每个点都是一对坐标(X,Y)。此时,你应该说“啊哈!”是的,GameSalad 用 X 和 Y 坐标体现演员的位置。比方,Actor1 在屏幕上的位置是 X=0,Y=0。这是屏幕的左下角。
让我们更进一步。想象一下,你有一个随时间变化的参数,而不是一个固定值(0,0)。我们把这个参数叫做“t”吧,现在你可以用 X=t,Y=t 来定义位置,结果就是你的演员会在右上方向做直线运动。比方,测试参数可以是每秒递增 1 数字,或者可以是时钟。
基本上就是如许。参数方程基于 t 参数定义 X 和 Y。在 GameSalad 中,您将通过约束位置来定义复杂的运动。x 和位置。y 属性归属于基于 t 参数的公式,此中 t 是到场者的时间属性。
下一步是发展你的谷歌搜刮技能,找到一个形貌你想要实现的复杂运动的参数方程。
**注意:**时间属性是场景中一个演员的每一个实现的内部时钟。计时器将从演员出现在场景中的时刻开始计时,或者假如演员最初出现在屏幕上,则从场景表现的同时开始计时。它对第二位之后的五位数字敏感。它会随着时间不断增加。
让我们把你刚刚学到的东西付诸实践。
利用参数方程创建运动

在谷歌上快速搜刮,我得到了以下心形的参数方程:
   

[*]x = sin3t】
4
该方程的图形如图 5-17 所示。
https://i-blog.csdnimg.cn/blog_migrate/9399a3c070fb9cad3f8f79bcc5bbdc35.png
图 5-17。 心绘图师
为了画出这个等式,我利用 Grapher 和默认提供的 Mac OS 实用程序。MacRumors.com 主持了一个非常简朴但有效的 Mac Grapher 工具指南。在 Chapter5_Files 文件夹中,您将找到该方程的 Grapher 文件。
返回 GameSalad:在演员编辑器中打开胡萝卜演员。点击 Actor 属性窗口左下方的+号,创建两个范例为“real”的 actors 属性,如图图 5-18 所示。将它们定名为“InitX”和“InitY”您将利用这两个属性来存储胡萝卜脚色的每个实现的初始位置。
https://i-blog.csdnimg.cn/blog_migrate/4853eee44bbe194d586d927fcd2edcea.png
图 5-18。 演员属性创建
**注意:**创建 actor 属性时,actor 的每个实现都会在 actor 属性中有本身的值。因此,假如你打算吃胡萝卜,你不必创建 10 个游戏属性。或者,假如您有动态数目的演员(比方,假如他们是衍生的),您可以存储特定于场景中每个演员实现的值。
创建一个新组,定名为“运动”您将利用该组作为定义运动的所有活动的容器。
将一个更改属性活动拖放到组中,然后更改胡萝卜。initxtocarots . position . x。将第二个更改属性活动拖放到组中,然后更改胡萝卜。初始位置现在存储在两个属性中。
**注意:**改变属性活动只发生一次。相反,约束属性实时更新属性值。
将约束属性活动拖放到组中。选择胡萝卜。将. X 定位为属性以约束并打开公式编辑器。设置以下公式(也表现在图 5-19 ):
Carrots.InitX+20*sin(Carrots.Time*100)³
我来解释一下这个公式。你想从初始位置开始移动,所以你把起始点定义为 InitX。然后你在 InitX 周围移动 20sin(胡萝卜。Time100)³.Sin 和 Cos 将只返回-1 和 1 之间的值。你乘以 20 来给出运动的幅度。别的,Sin 和 Cos 将从-1 到 1 变化,t 从 0 到 360、从 361 到 720 以及从-1 到 1 变化。所以要有一个完备的心脏运动,你需要从 0 到 360,这基本上是 6 分钟(每秒 1 度,所以每分钟 60 度,然后 6 分钟 360 度)。因此乘以 100 会加速运动。假如你想改变振幅和速度,你可以利用这些值。
https://i-blog.csdnimg.cn/blog_migrate/c6e1ceb968ae9dc0349d358aeed90bfb.png
图 5-19。 公式编辑器中的 X 公式
将第二个“约束属性”活动拖放到组中。选择胡萝卜。Position.Y 作为属性来约束并打开公式编辑器。设置以下公式(也表现在图 5-20 ):
Carrots.InitY+20*(sin(Carrots.Time*100)⁴-cos(Carrots.Time)) https://i-blog.csdnimg.cn/blog_migrate/8a7e4d9ff1850e6af8d97e4deb5ad43d.png
图 5-20。 公式编辑器中的 Y 公式
点击预览按钮尝试一下。是不是很好玩!
你的动作组应该与图 5-21 中的相匹配。
https://i-blog.csdnimg.cn/blog_migrate/e37599ad96edacc0e1fee4eea85d184c.png
图 5-21。 动作组
由于这都是关于入侵,你需要胡萝卜下去。配置它,使胡萝卜每 10 秒下降 15 个像素。
将计时器拖放到组中。按照图 5-22 每 10 秒改变 InitY 属性。
https://i-blog.csdnimg.cn/blog_migrate/e674144b65a72234c01262476381ec68.png
图 5-22。 入侵
给人以宇宙飞船运动的印象

运动是相对的。我这么说是什么意思?嗯,你不需要让宇宙飞船演员移动来给人一种运动的印象。你只需要让其他演员动起来!
为了在游戏中提供更多的动态性,你会在飞船轨迹中添加一些小行星,但是小行星不是移动飞船,而是移动。
按照“艺术家入口:创建演员”一节中形貌的步骤,将名为asteroid.jpg的图像文件导入 Chapter5_Files 文件夹。
创建一个新的 actor,双击它打开 Actor 编辑器。
用表 5-7 中的参数编辑演员属性。
https://i-blog.csdnimg.cn/blog_migrate/2d03a686f689674183b65980a4a90717.png
单击 Images 选项卡表现您刚刚导入的图像,并将asteroid.png拖放到 actor 中。
让小行星移动

拖放“改变力度”活动,并将设置更改为:
   

[*]Direction: 270
[*]Relative: Scene
[*]Speed: Random (100,300)
创建一个新规则,条件为“属性”“小行星”。 位置. Y】"活动名称。通过按下 Command + C 或在按住 Alt 键的同时拖移活动来拷贝活动。您的尺子应该与图 5-23 中的相匹配。
https://i-blog.csdnimg.cn/blog_migrate/7bf58d7c5978495e070877fe48de641f.png
图 5-23。 小行星运动规律
回加入景编辑器,按照图 5-24 将两个小行星定位在场景可见地区的正上方。
https://i-blog.csdnimg.cn/blog_migrate/82ab5aea6195a73b8bfdacbeeac6c30c.png
图 5-24。 定位小行星
训练 5.1
实行一个规则,当屏幕上没有更多的胡萝卜时,演员就被消灭了。
训练 5.2
实行一个规则,当小行星与飞船相撞时,游戏重置。
训练 5.3
实现一个规则,当小行星与子弹碰撞时,它从屏幕上消失,并以随机的 X 轴位置从顶部再次回来。
要查看这三个训练的答案,请打开名为Carrot_Invaders_step3.gameproj的文件。
管理能量棒

每个好汉都需要一个能量棒!不,我不是在说巧克力焦糖点心。我指的是你的主要脚色的生活吧。在 GameSalad 中有很多方法可以处理这个题目。您可以在规则中利用属性、到场者或它们的恣意组合。我不会涵盖所有的大概性;相反,我想向你们展示一种叫做“插值”的新活动,我将通过能量棒来展示它。
插值活动

插值活动是一种非常强大的活动。简朴来说,它会用特定的方法计算出给定时间段内从一个出发点到一个终点之间的所有数值。想象一下你的演员在 A 点(出发点),演员需要去 b 点,假如你对位置应用一个 Change 属性,你的演员会从 A 到 b 做一个量子跳跃,那不是你想要的结果。
假如你已经阅读了前面的章节或者你精通 GameSalad,你会对本身说,“不需要利用插值,只需要利用移动到。”你险些是精确的!“移动到”是“插值”的线性实现,但是“插值”提供了多一个选项:不是线性的。这适用于任何属性。我再说一遍:任何属性。这给了你很多的大概性在你的游戏中引入一些非常酷的特性。
在本节中,您将对演员的颜色利用“插值”活动。当能量为 100%时,你的能量条是绿色的,但是当能量为 50%时,它会从绿色酿成橙色(以及绿色和橙色之间的所有颜色),当能量为 25%时,它会从橙色酿成赤色。小行星的每一次撞击都会移除 25%的能量条。您还将通过在每次与小行星碰撞后减小能量条的巨细来第二次利用“插值”活动。
说够了。让我们现在训练。
在办法中插入

您可以从现有的Carrot_Invaders文件继续,或者打开Carrot_Invaders_step3.gameproj。
创建两个 integer 范例的游戏属性,分别定名为“EnergyBar”和“EnergyBarInit”将两者都设置为默认值 100。这些名称隐含了这些属性的用途,但是为什么需要两个呢?您将利用递减,因此您需要一个 buffer 属性来避免递归的无限循环(我将在后面的实现中展示这一点)。
创建一个新的演员,双击它打开演员编辑器。
用表 5-8 中的参数编辑演员属性。
https://i-blog.csdnimg.cn/blog_migrate/54e968bbc62d25613adeed434ba1c4da.png
为了在屏幕上有完美的定位,利用一些更改属性活动来更改演员的位置属性。
**注:**关于演员定位
你会注意到我经常利用改变属性活动来定位脚色。它给出了一个完美的结果。它消耗很少的内存,但影响可以忽略不计。您大概盼望利用另一种方法,即通过双击场景中的演员实例来更改演员实例的位置属性。
将更改属性活动拖放到执行元和更改能量栏中。位置。X 到 0。拖放第二个更改属性活动,并将 energy bar.position.Y 更改为 20。
将演员定位到 X=0 只会在屏幕上表现演员的一半。这是故意的。当您修改演员的巨细时,它将保持此中心位置,但从左侧和右侧减少。通过创建一个两倍于所需巨细的演员,并使其只有一半可见,您将创建一个只有一边缩小的视觉结果。或者,您可以在尺寸减小的同时约束位置,但这会消耗更多的资源。
下一步是将能量条的宽度约束到 Energy Bar 属性。如许,能量条 actor 宽度将是 Energy Bar 属性的实时值。假如 EnergyBar 属性通过插值从 100 变为 75,那么您将会看到能量条执行元紧缩的视觉结果。
将约束属性拖放到能量条 actor 中,并将能量条. size.width 的设置更改为 game.EnergyBar。
你刚刚实现的活动应该按照图 5-25 进行。
https://i-blog.csdnimg.cn/blog_migrate/980c7b36c802a14a20f16a23c953841b.png
图 5-25。 能量条活动
现在让我们创建颜色变化。
从绿色到橙色到赤色:管理能量棒的颜色

用以下条件创建一个名为“Orange”的新规则:“attribute”“game”。能量棒" " < " " 75。"然后拖放插值活动,并将设置更改为:
   

[*]Interpolation attribute: energy bar. Color. Red
拖放第二个插值活动,并将设置更改为:
   

[*]Interpolation attribute: energy bar. Color. Green
该规则如图 5-26 所示。
https://i-blog.csdnimg.cn/blog_migrate/3f2daec278e6899e64a67113e690c5d3.png
图 5-26。 橙色法则
让我们现在做赤色预警。在名为“Red”的演员中创建一个新规则,条件如下:“attribute”“game。能量棒" " < " " 50。"然后拖放插值活动,并将设置更改为:
   

[*]Interpolation attribute: energy bar. Color. Green
该规则如图 5-27 所示。
https://i-blog.csdnimg.cn/blog_migrate/c43c14c2c158e03c88108f27ae8faf70.png
图 5-27。 赤色法则
更新小行星

双击演员编辑器中的小行星演员,将其打开。在检测与飞船演员碰撞的规则中,通过单击圈起的十字或通过选择并按 Delete 来移除重置游戏活动。拖放插值活动并将设置更改为:
   

[*] Interpolation: Game. Energy bar
[*] Duration: 1
[*] Function: linearity
这就是利用名为 EnergyBarInit 的缓冲区属性的地方。假如你要写 EnergyBar-25,那么你将进入一个无止境的递归循环。不确定?然后让我们把它放到迭代中,就像如许:
   

[*]插值 0:能量条= 100,到能量条-25 = 100-25 = 75
[*]插值 1:能量条= 99,到能量条-25=99-25=74
[*]And so on, because every time GameSalad interpolates, the target is also moving.
要完成缓冲绝技,将一个时间拖放到飞船碰撞规则中,并将设置更改为“1.1”秒后,选中“运行至完成”。然后拖拽一个改变属性到计时器里改变游戏。EnergyBarInit to game.EnergyBar .规则如图图 5-28 所示。末了一个活动将确保插值完成后的新值存储到缓冲区中,以用于下一次碰撞。
https://i-blog.csdnimg.cn/blog_migrate/1a6e25528d20fb646bcf1a23eb3ccc12.png
图 5-28。 碰撞检测
训练 5.4
利用插值、计时器和 Alpha,使能量条在赤色地区闪耀。
现场管理

末了但同样重要的是,让我们来看看改变场景活动。这个活动利用起来非常简朴,它把你的动作换到另一个场景。该场景可以是顺序中的下一个场景,也可以是您选择的特定场景,比方返回菜单。
基本上,当屏幕上没有胡萝卜时,你想改变场景。这意味着属性号胡萝卜等于 0。游戏中已经有了一个规则,可以检测条件数胡萝卜何时等于 0。
第一步是创建一个新场景。单击主页按钮,然后单击屏幕左下角的+号创建一个新场景。只需在名称地区单击并键入新名称,即可将场景名称更改为“新”。
在演员编辑器中打开小行星演员。将“更改场景”活动拖放到检测属性 number 胡萝卜等于 0 的规则中。根据图 5-29 将“更改场景”设置更改为“转加入景:”新建。
https://i-blog.csdnimg.cn/blog_migrate/38980a65884648487ca507ca5ccc9572.png
图 5-29。 改变场景
总结

你创造了一个经典的射击游戏!你可以本身计划射击游戏,各种关卡,几种敌人范例,大损失。
在本章中,您将:
   

[*]Strengthen your basic skills in project creation, actors, rules and behavior design.
[*]Understand the parametric equation.
[*]Create a visual effect of movement.
[*]Found the interpolation behavior and realized its application to manage the energy bar.
[*]Learn how to transition from one scene to another by changing the scene behavior.

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: GameSalad IOS 游戏开发学习手册(一)