Construct2/3

创建于:2017-02-24

创建人: iconboy

103 信息 412 成员
Construct2/3 引擎开发专题

初步了解Construct2 -官方文档翻译

慕雪白羊 2017-07-07

翻译by 白羊 原文见官方文档,以下翻译内容对应本贴中的每一个楼层,往下浏览即可,下面的链接是原文链接。

在本节中,我们提供了C2的基本概述,包括开始页面、接口、项目结构、两种不

同的保存格式、导出和发布、游戏背后的技术以及使用构建2时需要记住的一些好的操作习惯和一些性能方面的提示。

  1. start page -开始页面,了解开始页面的功能 
  2. The interface-C2的软件界面介绍
  3. Project structure-C2的项目结构
  4. Saving, sharing and collaborating-储存、共享和协作,管理工程文件 
  5. Testing and Publishing/测试和发布
  6. MIME types -MIME 类型 ,配置服务器的MIME类型
  7. Technology -C2所用到的相关技术(了解)
  8. Best practices-  最好的实践,在制作游戏要注意什么
  9. Performance Tips - 性能优化相关,如何优化你的游戏 
  10. Memory usage-内存的使用

近期喜欢的会员

 
慕雪白羊 2017-07-07

【1】The Start Page/开始页面

当您开始构建2时,您应该会看到起始页,它看起来像这样:

Image title

每当C2启动时,这将给您提供一个有用的起点。它有一些有用的链接,比如创建一个新项目,网站上的最新教程,你最近打开的项目,链接到我们的脸谱网,Twitter和谷歌+页面,等等。

Beginner's tutorial/初学者教程

如果您是新手,您可能需要查看初学者指南的链接,以便构建2教程。这是一个循序渐进的指南,帮助你在2构建你的第一个游戏。

Examples/范例

如果你喜欢通过范例来研究C2是如何运作的, 你可以打开 Space Blaster or Ghost Shooter 的工程文件. 这些是难度比较高的范例,所以不要被它们的数学或复杂性所困扰。它们主要是为了展示C2在经验丰富的用户手中所能做的事情。

在构造2的示例目录中有很多简单的例子。点击 Browse all examples 可以看到它们。有超过40个范例,像做一个简单的动作和物理演示。强烈建议查看所有示例,这可以帮助你解决一些常见问题。如“我如何设置自定义键位控制角色移动?”,打开范例工程后你就会知道了。

Settings/设置

当你在Preferences dialog.中点击了something settings

你可以改变在软件运行时是否显示这个 开始页面



 
慕雪白羊 2017-07-07

【2】The Construct 2 Interface/C2界面


下面的图标注了C2用户界面的几个重要部分。下面提供了每个部分的功能概述,帮助你初步了解C2的界面。后面的手册将更详细地介绍每个部分的功能。

Image title


1: File menu and Ribbon tabs/文件菜单和Ribbon标签

Image title


Construct 2 使用的是 ribbon 接口, 有点像Office 2007或更新版本的工具栏。带下拉箭头的蓝色按钮是文件菜单(File menu), 右边的是带不同按钮和选项的彩色标签。

还有快速访问工具栏,包含五个最常用的命令: Save(保存)、Undo(撤销), Redo(重做), Preview(预览) and Debug(调试). 你自己可以在这个工具栏里添加和删除按钮:点击这个小的下拉箭头 来选择显示哪些图标. 如果你想在这个工具栏有很多命令,你也可以选择在ribbon下面显示它。


2: The Layout view/布局视图

这是一个可视化编辑器,将对象放置在其中,用来设计关卡、菜单UI等方面的东西。 详细请参考 The Layout View.


3: View tabs/查看标签

Image title

这些选项卡允许您在不同的布局视图和事件表视图之间切换,以定义游戏的基于事件的逻辑。

您可以单击并拖动一个选项卡到其中一个视图中,从而设置一个并排的分割屏幕视图。.


4: The Properties Bar/属性栏

在这个栏中,您将看到一个属性列表,这取决于您单击的内容。您可以查看和更改诸如布局、对象、层等更多属性。详细请参考 The Properties Bar.


5: Project Bar and Layers Bar/项目栏和图层栏

默认情况下 项目栏(Project Bar) and 图层栏(Layers Bar) 都在这个小窗口内部。 项目栏包含项目中所有内容的概览。可以使用Layers Ba图层栏将不同的图层添加到布局中。


6: Project Bar/Layers Bar tabs  / 项目标签和图层标签

Image title

点击后,你可以在在项目栏和图层栏之间切换。


7: Object Bar /对象条

这包含游戏中的对象列表。您可以从这里拖放对象,将它们放置在布局中。右键菜单有许多选项可用来过滤或显示不同的对象。 详细见 The Object Bar.


8: Status Bar /状态条

在编辑器窗口的底部是状态栏。这表明:

  • 在长期运行的任务中,如导出或保存项目,C2程序在做什么?
  • 在项目有多少事件及其近似文件大小
  • 当前激活的图层,即创建新对象后放置在哪个图层
  • 鼠标在布局坐标中的位置
  • 当前缩放级别。

9: Top-right buttons/右上方的按钮

Image title

常见的窗口最小化,最大化和关闭, 这个 Pin Ribbon 按钮(上下箭头)可以让工具栏长期显示在界面上, 这个 About button 按钮会打开 About dialog 显示 Construct 2的软件相关信息和许可证的情况。

Customising/定制

你可以自定义界面,适合你的口味。任何一个栏都可以拖放到编辑器窗口中的不同位置。此外,您还可以自动隐藏栏以节省空间:单击条形栏上的PIN图标(上下箭头),它将缩小到一个简单的选项卡。鼠标如果在tab上,就会显示这个栏。

您可以通过单击并拖动主视图中的布局或事件表选项卡来创建分屏视图(split-screen)。 这对于大屏幕来说很有用。




 
慕雪白羊 2017-07-07

【3】Project structure/项目结构

C2的工程项目 包含以下内容。 这些可以通过项目栏( Project Bar)来访问, 其中包含项目中所有元素的树状结构。 在项目栏也可以建立文件夹 (licensed version only) 这对于比较大型的项目方便整理分类。有关更多信息,请参见手册部分(Project Primitives)


Layouts/布局

关卡、菜单、标题屏幕和其他预先安排好的对象布局。在其他工具中,布局可以称为场景(scenes)、房间(rooms)、框架(frames)或阶段(stages)。有关更多信息,请参见布局(Layouts)部分。

布局还包括多个层( Layers), 可用于将对象安排在背景和前景层中。这些是用图层栏( Layers bar)管理的。


Event Sheets/事件表

定义游戏逻辑的事件列表。在C2中,事件是编程或脚本的替代品。每个布局都有着与其绑定的事件表。通过包含事件表(event sheet includes),每一个事件表可以在不同的布局之间重新使用

事件表是在时间表视图 (Event eSheet View)中编辑

有关事件(Events)的更多信息,请参见手册部分How events work.


Object Types/对象类型

对象类型定义对象的“类”(class)。例如, TrollEnemy and OgreEnemy 可以是 不同的对象类型。你可以创建一个对象类型的 多个实例(instances) 举例来说, 这里有三个TrollEnemy 对象类型 的实例, 和五个 OgreEnemy 对象类型 的实例

重要的是要清楚对象类型和实例之间的区别:它们将被称为整个手册中不同的东西。有关更多信息,请参见手册条目:Plugins, Object Types and Instances.

对象类型也可以分组到家庭(Families)


System object/系统对象

系统对象表示C2中的内置功能。它是空项目唯一包含的对象。不能再添加或从项目中移除。并没有系统对象的实例:它总是存在,并提供对构建2的游戏引擎的内置方面的访问。它的条件、动作和表达式都记录在 System reference.


Sounds and Music/音效和音乐

这些是用于音效音乐的音频文件。音效(sounds)应用于短时间的声音效果,当碰撞和爆炸等事件发生时。音乐(music)应用于较长的音乐曲目。重要的是合理组织音频文件,因为音效在播放之前必须完全被下载,但是音乐是流式的加载方式,可以在游戏进行的时候下载。

这意味着如果一个音乐文件意外放入sounds文件夹,它得完整的下载好(这可能需要几分钟)才开始播放。但是,music文件夹中的音频却可以立即播放,因为它是从服务器流出来的。

无论是音效还是音乐都必须有 Ogg Vorbis (.ogg) and MPEG-4 AAC (.m4a) 格式的。这是因为浏览器制造商不能就Web上的一种音频格式达成一致,因此所有音频必须以两种格式支持所有浏览器! IE和Safari使用.m4a文件,和所有其他的浏览器(Firefox、Chrome和Opera)使用Ogg文件格式。 Construct 2 可以帮你在导入音乐的时候,转换两个格式。详情参考 Import Audio dialog and Sounds & Music 来获得更多信息。


Project Files/项目文件

任何其他外部文件都可以导入到项目中。有关更多信息,请参见Project Files.


Common units/常见单位

在C2中,有时需要输入值,如角度、速度或大小。为了保持一致性,在C 2中总是使用相同的单位,除非编辑器中的说明或提示指出了这些单位。常见单位如下所述。

Positions以像素为单位。原点(0,0)是在布局的左上方,和Y轴增量向下(游戏引擎通常都是用这种坐标)。

Sizes 是以像素(pixel)为单位的
Angles 以角度(degrees)为单位。 从0开始,向右顺时针(clockwise)增加。
Times 是以秒(seconds)为单位
Speeds 是以像素/秒 为单位 ( pixels/s)
Accelerations 是以 像素/秒^2 为单位(pixels per second per second)

Zero-based indexing/基于0的索引值

为了与程序设计语言相一致,结构2的所有参数列表中的若干项目(索引)都是从0开始,而不是从1开始。 这可能似乎奇怪,首先,需要一些时间来适应,但在许多情况下,它实际上比1-based的索引方便多了。

人们在生活中是用 1, 2, 3...来计数的 ,但是在Construct 2 (其他所有的程序语言)都是从 0, 1, 2....这样计数的

 
慕雪白羊 2017-07-07

【4】Saving, sharing and collaborating/储存、共享和协作


Saving and sharing work/储存和协作

有两种类型的项目可以保存到。这些并不影响游戏的功能,但在编辑过程中有不同的优点和缺点。创建新项目时必须选择其中一种类型。


Folder projects/项目文件夹

项目可以保存到文件夹中。它将项目的不同部分存储在不同的文件中。例如,每个布局保存在一个单独的文件布局的子文件夹。

文件夹项目保存和加载速度比较快。这使得它们更适合于中型或大型项目。

文件夹项目有助于团队内的协作,因为不同的人可以很容易地处理不同的项目文件,然后合并它们。有关更多信息,请参见下面的协作部分。

一个文件夹中的项目的主项目文件的扩展名为.caproj. 注意,这并不包含整个项目:它只是项目中使用的其他文件的列表。 如果你想分享整个工程, 只有 .caproj 文件是没用的,不过你可以使用(.capx)来代替


Single-file projects/独立文件 (.capx files)

保存到单个文件中的项目对于小项目通常更为方便。只有一个文件可以发送、上传或共享。然而,由于构建2不得不从一个文件打包和解包项目,它们的存储和加载速度会慢一些。这种文件格式比起使比把项目作为文件夹保存,多人协作起来更困难。

.capx文件实际是一个zip压缩的项目文件夹。您可以重命名.capx文件为.zip格式来查看项目文件。


Converting between types/两种格式之间的转换

将单个文件项目转换为文件夹项目很容易,反之亦然,内部的结构都一样的。只需打开一个项目并选择保存文件时作为Capx储存或者caproj储存。

因为本质内容是相同的,你可以通过把CAPX改为Zip格式后解压,来得到项目文件夹,或者是把项目文件夹压缩,然后改为Capx格式。


Collaborating on projects/项目合作

C2自己不包含任何的协作特性,因为已经有了可用的专业级工具可以用于C2项目。将项目保存为文件夹,然后可以使用源代码管理软件来管理项目。由于项目数据文件是基于XML的,所以它们已经使用merging and diff工具。为C2的项目建立一个源代码控制系统有SVN的相关教程: How to collaborate on projects with SVN.

 
慕雪白羊 2017-07-07

【5】Testing and Publishing/测试和发布


Testing your game/测试你的游戏

为了在开发过程中测试你的游戏,你可以通过点击快速访问工具栏或标签中的“播放”图标,按F5,或者右键单击项目栏中的布局,选择预览来预览你的游戏。这将使用本地服务器预览您的游戏。您可以在Project Properties.中使用预览浏览器设置(preview)来更改您预览所用的浏览器。

如果你有手机,你想测试在平板电脑或其他电脑的游戏运行情况,在您的本地网络(如WIFI)进行预览测试可以相当容易的。有关更多信息,请参见教程:How to preview on a local network.

您还可以按住Shift和预览来进行连续预览(continuous preview)。这将保存游戏,更新它,然后再次加载以前的状态。有关更多信息,请参见教程 How to use continuous preview.

调试器 (debugger) 还可以使用附加的信息和工具来测试您的游戏。此外,可以在事件中 设置断点(breakpoints) 以检查它们是如何工作的。

确保其他任何人都可以玩之后,您必须先导出,然后发布(即上传)项目,。在网上预览时不能共享URL。


Exporting /导出


要导出项目,请使用 File menu, ribbon or Project Bar 打开导出项目对话框( Export Project dialog)

如果您对导出项目的技术细节感兴趣,请参见Technology section.

C2在导出时间做大量工作以优化项目。有关更多信息,请参见教程:Construct 2's export-time optimisations.

关于向常用平台导出的一些提示如下。


Publishing to the web/导出web格式

选择HTML5导出选项以发布到Web。注意,HTML5导出通常不能从磁盘运行。您的项目必须上载到Web(用于HTML5导出),否则将在其工作之前发布。

如果您打算通过Web服务器发布游戏,则要确保它支持正确的MIME类型( MIME types) ,以确保所有特性都正确工作。

在一些移动浏览器可能使用全屏模式和方向锁。详情见 Fullscreen and orientation lock in browsers.

有关向Web发布游戏的更多建议,请参见教程Tips on publishing HTML5 games to the web.


Publishing to mobile/发布到移动端

选择 Cordova 来导出发布到iOS和Android平台。Cordova是一个跨平台的移动出版库, 所以,软件中并没有具体的“iOS”或“在导出对话框Android”选项; Cordova包括了它们。

关于Cordova移动应用程序发布的更多信息,参见How to export to mobile with Cordova. 导出Cordova的应用可分为原生移动应用程序和服务,如Intel XDK (free), PhoneGap Build or Cocoon.io. 请注意,非浏览器的替代引擎cocoon.io提供像 Canvas+之类的非正式支持。虽然你可以你使用它们,但只能基于WebView来建立,这唯一的官方支持的选项。

你也可以使用Cordova CLI (Command Line Interface)建立自己的应用程序瓦. 然而,这涉及到设置和配置几个高级开发工具包,因此在C2中并没有正式支持。如果你已经熟悉这种方法或愿意学习的话你可以试试,但请注意这不是官方正式的支持,我们无法为那些使用这些工具的开发者提供援助。


Publishing to desktop/发布到桌面端

选择 NW.js发布到桌面平台的导出选项。这包括Windows、Mac和Linux平台。与Cordova一样有没有具体的导出windows,Mac和Linux的选项;

NW.js在导出时,默认生成所有平台的文件。

关于导出nw.js的更多信息,参见Exporting desktop apps with NW.js.

注导出nw.js必须单独安装文件,在scirra.com/nwjs下载,它是免费的。

 
慕雪白羊 2017-07-07

【6】MIME types/ MIME 类型

注:如果不了解 MIME types的概念,请使用搜索引擎,当然也可以跳过这个章节,这个对初步游戏制作没有太多的帮助。

在web上发布HTML5游戏,服务器发送正确的MIME type 文件类型 是很重要的。例如,大多数服务器都被正确设置为发送带有MIME类型文本的HTML文件。然而,有些服务器的默认值不包括您的项目可能需要使用的每一个MIME类型。此外,有些服务器可能被配置为发送错误的MIME类型,这可能仍然导致某些功能不正确地工作。下面的列表应该被用作正确设置的MIME类型的引用。

配置服务器的MIME类型取决于主机。如果您不知道该怎么做,请联系您的主机支持,或者请他们为您设置下面的列表。

如果错误的MIME类型集可能导致文件返回“404未找到”(可能导致音频不播放或Ajax请求失败),或导致服务器发送损坏的文件(例如将音频文件作为文本文件发送,导致它无法加载)。

如果你是一个本地应用程序,如出口通过Cordova或nw.js,无需设置任何MIME类型。


MIME types for HTML5 games/H5游戏的MIME 类型

托管HTML5游戏的服务器应该拥有与这些MIME类型相关联的文件扩展名。

基础的MIME types:
.html files: text/html
.js files: application/javascript
.png files: image/png
.jpg files: image/jpeg
.jpeg files: image/jpeg
.css files: text/css


要在所有浏览器中正确播放音频:
.ogg files: audio/ogg
.opus files: audio/ogg
.m4a files: audio/mp4


要在所有浏览器中正确播放视频:
.webm files: video/webm
.ogv files: video/ogv
.mp4 files: video/mp4


离线支持正确工作:
.appcache files: text/cache-manifest


用于加载Web字体:
.woff files: application/font-woff


对于 Spriter 动画的加载
.scml files: text/xml
.scon files: application/json


对于Web应用程序清单正确加载(例如Firefox浏览器市场,或“添加到主屏幕”按钮):
.webapp files: application/x-web-app-manifest+json
.manifest files: application/manifest+json


确保Ajax请求或其他外部资源正确加载的其他格式:
 .txt files: text/plain
 .xml files: text/xml
 .csv files: text/csv
 .json files: application/json

.svg files: image/svg+xml

.pdf files: application/pdf
.zip files: application/zip


用于下载而不是在浏览器中使用的任何其他二进制文件。(e.g. a Windows .exe): application/octet-stream


Offline caching/离线

如果你在导出后发现 MIME types有问题,要及时修复它, 如果浏览器缓存了以前的服务器响应离线支持(offline support), 这个问题可能不会立即得到纠正。

验证问题最简单的方法是修正服务器的MIME类型,以更改项目的URL,例如重命名服务器中的文件夹。这样可以防止以前的离线缓存被加载到游戏中,并且新的MIME类型配置开始生效。


More information/更多信息

更多信息, 参考这个 Mozilla Developer Network (MDN) article on Configuring server MIME types.

 
慕雪白羊 2017-07-07

【7】Technology/技术

C2制作HTML5游戏。它们在各种不同的设备和操作系统上的Web浏览器上运行,包括在手机和平板电脑这样的移动设备上,确保尽可能多的人访问你的游戏。本节是对所涉及的技术的总结。对技术上有意识的人来说,这可能更有趣,如果你对如何使用C2更感兴趣,可以跳过它。

尽管C2游戏可以移植到各种不同的平台,甚至是“本地”应用程序,但底层的技术仍然是基于HTML5的引擎。


HTML5

HTML 代表超文本标记语言。HTML是自互联网诞生以来网页的标准方式。HTML5是HTML标准的第五大版本,它在2011开始得到广泛采用。它引入了许多新特性,但只有少数应用于游戏。然而,“HTML5”仍然是描述C2游戏技术最合适的方式。JavaScript是用来编程网页的标准编程语言,也是用来制作C2游戏的编程语言。

HTML5特别感兴趣的是新引入的<标签>。这将在HTML网页中创建一个矩形面,在该页面中可以绘制任何图像或内容。这使得它成为游戏的理想选择。所有构建2个游戏使用HTML5画布来显示游戏。

HTML5相当于Adobe的Flash技术,它在2011之前控制了互联网游戏。HTML5在行业标准上是不同的,而不是像Adobe这样的单一公司控制的产品。Flash也作为一个浏览器插件运行,它必须单独下载和安装,而HTML5是内置在浏览器中的。这也意味着HTML5游戏可以在没有Flash支持的设备上运行,比如iPhone和iPad。考虑到它的优势,HTML5最终将取代网络上的Flash。


Javascript

Javascript 是Web的标准编程语言。它可以构建交互式的Web页面,并且在许多方面像传统的应用程序一样工作。这也是行业商定的标准。

Javascript不是java。这些是两种不相关的编程语言,它们碰巧有一个相似的名字。Java制作的应用程序是另一种技术,当然也可以运行在一个网页,但它是一个完全不同的技术,不要混淆两者之间的概念:游戏在C2不需要或使用java来运行。

现代浏览器将JavaScript编译成本地机器代码(或CPU指令)。这样可以确保使用JavaScript的Web页面(包括游戏)尽可能快速高效地运行。Javascript 是一种自动将垃圾回收的语言(garbage-collected language),它容易让游戏因垃圾收集 而暂停或延迟。C2的游戏引擎对此进行了优化,以创造最小的垃圾,并且尽可能回收对象。甚至当对象被销毁并重新创建时,整个对象实例都会被循环使用。这有助于提高性能并确保游戏尽可能平滑地运行。

garbage-collected language:垃圾回收机制(英文简写GC):当需要分配的内存空间不再使用的时候,虚拟机将调用垃圾回收机制来回收内存空间。


Plugin and Behavior SDK/插件和行为的SDK

Javascript程序员可以用自己的插件和行为扩展结构2。有关更多信息,请参见 Javascript SDK documentation


Canvas renderers/画布渲染

HTML5 <canvas>标签支持绘制游戏网页两种不同的方式:一个简单的2D背景,和WebGL的背景,基于OpenGL ES。WebGL通常比2D环境明显要快,有更多的功能,包括支持作用,但并不被所有的浏览器所支持。C2支持渲染游戏的两种技术。WebGL可以在每个项目属性中启用或禁用。一般最好让它保持启用,因为游戏可能在WebGL模式会运行得更快,而且效果(effects)没有它将不能工作。如果WebGL不被用户的计算机或设备所支持,或是支持有限,C2将自动切换回普通的2D背景渲染。在这种情况下,该游戏可以继续播放,但它可能运行慢一点,看起来效果也不太好。你可以用系统表达式renderer来检查它的渲染器(renderer)是用游戏本身的渲染还是基于WebGL的,它将返回“canvas2d”或“WebGL”。


Obfuscation and minification/混淆和压缩

JavaScript代码到你的游戏是用Google's Closure Compiler 来进行压缩和混淆,这减少了下载的大小,并且使任何人都很难逆向工程来破解你的游戏。

游戏图像压缩为PNG格式。在导出时,它们还被进一步压缩,以确保下载尽可能的小。欲了解更多信息,请参见此博客文章Image compression in Construct 2.

Audio/音频

C2的游戏引擎支持Web Audio的API,所以可以更可靠的降低延迟来播放声音。如果不支持,则使用标准的HTML5 <Audio>标签。


Offline support/离线支持

尽管HTML5游戏运行在Web浏览器中,C2游戏使用HTML5 appcache允许他们离线运。这对于iOS Web应用程序和Chrome Web商店应用程序非常有用,因为有些用户在运行游戏时可能离线。同时,该appcache帮助节省主机服务器的流量。这使得游戏文件只会被下载一次,每一个访问后,游戏将被加载本地磁盘(在检查一个在后台更新)。参见教程 offline support in Construct 2 得到更多信息。最重要的一点是你的服务器必须配置好.appcache 文件 ,通过MIME type文本/缓存清单文件(text/cache-manifest)

 
慕雪白羊 2017-07-07

【8】Best practices/最好的实践

Back up regularly!/ 定期备份!

你的电脑硬件和软件都不完美。计算机故障,软件崩溃。备份你的项目来保护自己不会失去工作。还必须维护异地备份。如果所有备份都在同一台计算机上,或者保存在同一大楼中的磁盘上,诸如火灾、洪水、盗窃或并发硬件故障之类的灾难性事件可能会导致您丢失所有的工作和备份。

构建2具有内置功能,可以方便地进行自动备份,包括使用Dropbox进行异地备份。欲了解更多信息,请参阅教程Keep your work safe with Construct 2's backup options.

这个建议不是针对于使用 Construct 2于你认为重要的计算机上的任何工作,都必须采用这种做法。不要等到你丢失了文件才开始做这件事。人们经常因为糟糕的备份习惯而追悔莫及。不要成为他们中的一员!记住,随手备份。


Test on multiple browsers and devices/多浏览器和设备的测试

强烈建议在不同的浏览器中测试你的游戏作品。虽然HTML5是一种标准,在理论上,所有浏览器都实现相同,但实际上浏览器之间存在差异(例如性能、特性、文本渲染等)。你应该安装一系列的浏览器,并与他们一起测试,以确保你的游戏在每台设备上都能运行。使用预览浏览器( Preview browser) 属性测试桌面浏览器和在本地网络(preview on a local network)上预览,以方便地测试移动端的浏览器运行情况。


Support touchscreen devices/支持触摸屏设备

现在许多用户使用触摸屏设备浏览网页,没有鼠标或键盘。如果可能的话,你应该设计你的游戏,让它可以支持触摸屏设备,也许是屏幕上的触摸控制。有关更多信息,请参见教程 touch controls.


Recommended file formats/建议的文件格式

您可能希望在导入C2前就把素材和音频准备好,在C2最好使用的格式是:

32-bit PNG (Portable Network Graphics) 图像。如果你有选择的话,一定要选择32位;8位或更低的版本会降低质量。PNG是无损的32位并完全支持alpha通道透明度。注意默认的Windows画图不支持PNG透明。使用不同的编辑器,比如 Paint.NET.

您可以在C2中选择不同的导出格式,比如jpeg,以减少完成项目的大小。然而如果可能的话,开始制作的时候最好坚持使用32位的图形,C2会在导出的时候把图像压缩的。有关如何对图像进行优化的更多信息,请参见 Construct 2's export-time optimisations. C2不像任何第三方工具或服务,导入的时候会压缩图片质量 。记住没必要优化图像大小再导入到C2中,因为C2本身就为32位的PNG设置了默认的压缩方式。

16-bit PCM WAV 音频文件。 16-bit是典型的WAV文件,但是不是所有的WAV文件都是16位PCM。在Windows 7或更新版本,导入16位PCM .wav文件后C2会自动编码,生成AAC和Ogg Vorbis格式的音频。这是所有浏览器中支持音频所必需的两种格式。欲了解更多信息,请参阅手册上的条目 Import Audio dialog.


Security/安全

绝对不要蠢到把用户名和密码放在事件表的内部来验证,因为 这些内容将在导出的JavaScript中以纯文本形式显示出来,恶意用户将很快能够控制你的帐户。如果需要连接到数据库之类的东西,那么编写一个与数据库对话的服务器端脚本,然后连接到服务器的URL。


Performance/性能

这里有一些关于游戏性能的最佳实践(确保游戏总是快速运行)。特别是在开发手机端的游戏时,最好从一开始就测试目标移动设备的性能。你的电脑可能比你的移动设备快10倍和20倍,有时候电脑能带的动的游戏,在手机上可能会很卡。欲了解更多信息,请参阅本节Performance Tips.


Memory use/内存使用

一些设计师试图放置几个大型的图像到游戏中。这种方法应该不惜一切代价避免,因为它是极其浪费的内存,并没有被任何专业的游戏设计师使用。在博客文章中详细讨论了这个主题。Remember not to waste your memory.


Effects

记得effects需要WebGL显示,这并不总是支持。一定要建立适当的反馈和测试。


Managing projects/管理项目

如果你是在一个团队中工作,你可能会发现源如SVN管理基于文件夹的项目非常有用的控制软件。它可以合并更改并突出显示每个人所做的更改。还有一个变化可以回滚的历史可以在任何时间。构建2以XML格式保存项目数据,因此非常适合这种类型的管理。更多信息参见教程如何进行项目合作与SVN。


Working as an individual/个人工作

如果你的项目是自己一个人管理的,使用单文件的项目(capx文件)就可以了。如果项目随着时间的推移越做越大,你可能会注意到C2将花更多的时间保存和加载项目。在这个时候,转换成文件夹来储存项目可能会很有用,还可节省加载和保存的时间。

 
慕雪白羊 2017-07-07

【9】Performance Tips/性能优化

Mobile/手机端

现代台式电脑功能强大。一般来说,性能的主要问题是让你的游戏在手机和平板电脑上运行良好。在这些设备上获得更好的性能是比较困难的,因为它们通常具有更弱的硬件:较慢的CPU、较慢的图形芯片和更少的内存——通常比台式计算机高10倍以上。

你必须从一开始就在手机上进行测试。由于你的电脑可能比你的移动设备快十倍多,你可能会无意中设计一个游戏,直到后来才发现它在移动设备上运行的 并不是希望中那样好。为了避免意外,定期测试预期的设备,以确保它仍然运行得足够快。 The Preview on LAN 能可以使这个快捷方便。您应该致力于为移动设备设计更简单的游戏,以满足它们较低的速度和资源。

以下提示可以帮助您优化游戏的性能,以便于良好地运行在移动端上:

  1. 确保 WebGL 是开启的 ,为在支持WebGl的设备上,通常能显著地提高性能。
  2. 避免使用过多的物体或微粒, 由于移动设备对桌面计算机可以处理的限制较低。
  3. 在同一层上使用相同的混合模式或效果放置对象。 例如,如果你有很多物体使用添加(add)的混合模式(通常用于爆炸、激光和其他效果),请确保所有这些物体都放置在它们自己的层上。如果在运行时生成或创建对象,请确保它们是在该层上创建的。因为在效果之间切换会降低性能,这样做将确保同时使用相同效果的所有对象都被绘制。这在博客文章中有更详细的描述。 How the Construct 2 WebGL renderer works.
  4. 避免大面积透明的物体。透明像素仍然占用渲染的时间,即使它们没有视觉上的显示。清除图像中被浪费的透明区域. (动画编辑器中点击Shift+裁切,会批量去除多余的透明区域) 将大的透明对象分割成一系列较小的对象,还可以提高渲染性能并节省内存。例如,在屏幕边缘添加一个屏幕大小的透明边框,加上边框大小的透明边框,效果会很差,因为它仍然需要在中间填充一个大的透明区域;将它分割成四个单独的对象,对于每个边都要有效得多。
  5. 避免对象之间的大面积重叠。渲染是从后到前的渲染方式, 如果对象有很多重叠,重叠区域的像素会被重复渲染N次。移动GPU的内存可能很快就被占用满了。
  6. 如果你有不透明的背景,在项目属性中设置Clear background为NO。这避免了在每帧清除屏幕的时候,把不透明的背景也清除掉。

因为之前已经翻译过,而且优化是偏后期要解决的问题,所以这里不放完整的内容。完整的内容 在 这个 蓝色 链接 里

 
慕雪白羊 2017-07-07

【10】Memory usage/内存使用

管理内存的使用量对于确保广泛的硬件可以运行项目非常重要。这在移动内存有限的地方尤为重要。在某些情况下,减少内存使用也可以提高性能。Images/图像

通常对象图像(包括精灵动画)是项目中最耗内存的部分。为此,构造2从图像中估算内存使用情况,并将其显示在状态栏中。在开发项目时,您应该关注这个数字,但它应该被视为一个粗略的估计。可以优化输出的时间(export-time optimisations) 记住这仅仅是基于图像,所以你的项目至少需要有那么多内存才能运行。确保你的项目可以运行在硬件尽可能广泛的范围内,目的是为了保持内存的使用在100mb。这个博客 Remember not to waste your memory是有关于如何最好地设计游戏以尽量减少内存使用,当然还有降低内存消耗的建议。

估计内存使用情况仅基于具有最大内存需求的单个布局,因为每次只加载一个布局的图像。在C2中,这称为按布局加载的布局。


Layout-by-layout loading /按布局加载

C2只加载当前布局的图像。这样可以避免将整个项目加载到内存中,这会慢下来,消耗大量内存。在开始布局时,放置在布局视图中( Layout View )的对象都会被预加载. 这包括任何精灵对象的所有动画中的所有帧。(换句话说,精灵是完全加载到内存中,不存在只加载一部分图片。)当布局结束,所有的图像被加载,但下一个布局中部被用到的将会被内存释放。

如果一个对象没有放在布局视图中,但是事件在运行时创建它,它的图像不是预先加载的。C2引擎被迫在创建时加载对象的图像,这可能会导致游戏中的短暂停顿,或者在极端情况下是某种持续不断的停顿。 (就像 "jank"现象).为了避免这种情况,只需将布局中使用的全部对象放置在布局视图中即可。如果不需要立即使用它们,那么它们可以在布局事件开始时被销毁。然后他们将不存在时,布局开始,但C2仍有预加载的图像,确保他们以后可以在runtime创建时不会出现"jank"的现象。


Calculating image memory use/计算图像内存使用

首先,重要的是要注意图像格式对内存使用没有影响。你可以通过设置一些图片PNG-8或JPEG格式的图像编辑器中保存在您的项目的下载大小。然而,这并没有什么内存使用:压缩图像不能直接渲染,所以在加载所有图片解压到一个32位的ARGB位图格式。这意味着每个像素为alpha、红色、绿色和蓝色通道占用四字节。

因此,对图像的近似内存使用仅仅是其像素数乘以4。例如,一个图像的像素尺寸是100x100, 100 x 100 x 4 = 40000字节,或约39kb。在1920x1080高清图像的大小需要1920 x 1080 x 4 = 8294400字节,或约7.9mb。因此,最小化内存使用的一个好方法是使用较小的图像。 就像 Remember not to waste your memory 这篇日志中所说的, 使用大量的大尺寸图像将占用大量的内存,应该避免。Export-time spritesheeting 和 power-of-two restrictions 在有些 GPUs每个图像的实际内存使用可能会有所不同, 但这种计算也算是经验总结起来的、比较准确的方法了。

同样重要的是要注意,内存使用是基于源图像的 -也就是说,它是在图像编辑器中出现的。如果对象在布局视图或运行游戏时被拉伸,则它并不会使用更多或更少的内存。它只是在屏幕上以不同的大小将源图像存储在内存中(总是保持在原来的大小)。降低内存使用的一个好方法就是,创建一个很小的图像(如32x32)然后填充,但是在布局视图却非常大。


Don't mis-use 'Downscaling quality'/不要误解低质量

当导出文件时, Construct 2 会优化精灵图表(spritesheeting)(参考several optimisations including spritesheeting) 来节约内存. 设置工程属性project property 为 'High quality' 只是使得 精灵图表 以2的平方的像素尺寸 来布局满 所有的精灵, 但这并不能节省精灵图表实际占用的内存。而且这还会显著增加项目的内存需求。因为“高质量”模式只存在要解决的两个相对次要的渲染问题(精灵的边缘拼接,或改变最后的动画帧的质量)你不应该使用它,除非你观察到了一个特别的渲染问题,并且通过选择这个选项解决了这个问题。 否则,您的项目将毫无疑问地在内存使用中付出非常高的代价。



Audio/音频

通常,图像占用了项目内存使用的大部分。然而,值得注意的是音频是如何加载到内存中的。

重要的是把这些声音和音乐的音频文件夹(categorise audio)之间因为它的加载不同,因此有不同的内存使用情况。


Sounds/声音

“声音”文件夹中的音频被完全解压到内存中。这样就可以立即播放声音效果,而不必延迟播放或解压缩音频,确保在适当的时候听到声音效果。与图像一样,压缩大小有助于减少下载量,但不会减少内存使用量:声音将被解压缩到PCM波形缓冲区中。

默认情况下,项目的预加载声音(Preload sounds)“属性”设置为“yes”,即在加载条显示时下载并解压缩所有声音。因此,项目中的所有声音在启动时都会被解压到内存中。与普通的16位样本播放配置在44.1 KHz,,一秒的单声道音频将使用88000字节(约86kb),和双立体声(约172kb)。一分钟的音频,这是5mb用于立体声单声道和10MB。这是主要的原因,因此背景音乐不应该被归类为sounds:如果你有15分钟的立体声音乐,这将消耗大量内存。而且在某些平台上,对完整音轨的解码也相当慢,在游戏启动的时候就会变慢。

如果“预加载声音”(Preload sounds)设置为“NO”,则在启动过程中不会预加载声音,游戏可以更快地启动。然而,每个声音播放的第一次可能被延迟,因为它必须首先下载并解码它。在音频对象中使用“预加载”操作可以帮助减轻这一点。然而,构建2从来没有释放声音一旦加载,以确保他们可以永远发挥在未来很快。因此,设置“Preload sounds”到“NO”实际也不会节省内存,如果玩家玩通过游戏,每一个声音效果被听到,它最后使用的内存依旧和预加载后的内存没区别。出于这个原因,关闭声音预加载不应该被用来作为一种节省内存的方法。

“声音”(sounds)文件夹中的音频应该是短的、即时播放的声音效果。你得考虑不要让声音文件过长,如果播放延迟是不重要的,你也可以考虑将它放在“音乐”(music)文件夹。


Music / 音乐

与声音效果相反,音乐是流式的。一般来说,这意味着音频引擎将有一个较短的固定长度的播放缓冲区域,当音频播放时,它被加载、解码并以小片段播放,它们无缝地连接在一起。这意味着无论磁道长度如何,内存使用都很低,甚至可以在下载完成开始之前播放音频。这就是为什么音乐不是预先加载,而加载栏显示-没有必要等待它完成下载游戏开始之前。但是回放不能总是立即启动,因为它可能需要等待下载完成缓冲,或者第一个块加载和解码。在内存使用方面,主要考虑的是确保长度较长的音轨(通常是游戏中的音乐)被归类为music文件夹而不是sounds文件夹内。

 
ZUOgeneral 2017-07-25

我能插楼么,正在学c2,感觉还可以,准备c3出来后去看看

 

加入 indienova

  • 建立个人/工作室档案
  • 建立开发中的游戏档案
  • 关注个人/工作室动态
  • 寻找合作伙伴共同开发
  • 寻求线上发行
  • 更多服务……
登录/注册