引言

GameMei是一个可免费在线使用的游戏制作平台。通过将游戏逻辑可视化,低编程门槛大大降低了游戏开发难度。


极速制作

    1小时内,完全不写代码,可开发:

    • 爆棚微信游戏(寻找房祖名、神经猫、FlappyBird等 )
    • 品牌宣传小游戏
    • 手机游戏宣传试玩版
    • 手机游戏原型

    2个星期内,少量简单脚本,可开发中型手游 (捕鱼达人、植物大战僵尸等);


    1个月左右,少量脚本、自定义动作,可开发手机网游(刀塔传奇、放开那三国等)用时不超过1个月;


一次开发跨平台发布

支持一键发布跨平台游戏,可视化植入广告、可视化植入内购接口、一键发布到GameMei游戏聚集地,一键发布到国内各大游戏平台。

使用GameMei一次开发:可以输出HTML5,Android,iOS,Win8,Mac, Linux等游戏格式,一键获得并分享游戏URL;

支持嵌入社交平台接口、排行榜;并且游戏可以自适应任何屏幕尺寸,PC,Pad, 手机;


云平台、云共享、云协作

无需下载安装,随时随地只要能上网打开浏览器就可以使用GameMei; 团队可以在GameMei私有云中并行的多人协作,公有云平台又完全支持团队成员远程在线协同工作;


云,端结合

GameMei支持在线使用的同时,支持下载单机版使用, 单机版支持后台自动更新;GameMei单机版已经支持Window,Mac和Ubuntu三个平台,使用GameMei的单机版可以让用户不联网的时候也可以使用GameMei,并且将自己的游戏项目保存在本地。联网时,GameMei的单机版支持本地项目和云平台项目同步。单机版支持后台自动更新。



谁最需要GameMei

拥有多年积累的游戏策划、游戏美术 他们有创意、有素材,GameMei可以扮演好原来团队中的程序员角色,GameMei让他们的游戏梦想变为可能;

独立游戏开发者、5人以下开发团队 在移动游戏逐渐占据市场主流的当今,游戏开发的周期更短,更需要快速迭代,积极创新,随时调整;开发者对工具的需求:学习成本底 + 跨平台支持好 + 极少量代码——GameMei。


如何进入GameMei


GameMei是一款基于浏览器的游戏开发软件。无需安装,注册后登录即可在线使用。

您可以通过访问我们的软件地址http://gamemei.com/qiyun/gamemei_sln/gamemei/,无需安装,注册或登录后即可在线使用。

GameMei支持chrome(谷歌浏览器)、firefox(火狐浏览器)、opera(欧朋浏览器)、safari浏览器、360浏览器(极速模式下)、遨游浏览器(极速模式下)、搜狗浏览器(极速模式下)。

为了方便用户的使用,GameMei也同时推出绿色安装单机版,与在线版本同步自动更新。单机版支持Windows,Ubuntu 和Mac OS操作系统。根据本地计算机的操作系统,下载相应的ZIP包,解压后即可使用。查看详情



使用界面概观

引导页面

进入GameMei软件平台,首先会看到如下的引导页面。



该页面主要提供了一些有用便捷的链接,“新建项目”或者“打开项目”可以开始一个项目。最近项目列出了最近使用的一些项目,可以直接点击打开。可用链接里提供了一些链接帮助用户更好的了解我们的软件,有博客、漫画教程、视频教程和手册。

在页面上方滚动栏显示了GameMei的基本操作步骤,第一次接触GameMei的用户可以浏览下,对GameMei有个初步了解即可自己开始实践了。

示例项目里提供了一些已经做好具有代表性的游戏,初学者可以打开参考游戏做法和思路,更快的上手实现自己的想法。


主界面


打开或新建一个项目后,就可以看到下图GameMei的主界面。




    这里列出了游戏项目开发常用的工具按钮。基本工具一目了然。

    • 新建项目:新建一个游戏项目。如果当前已经打开了一个项目并存在改动时,在新建项目前会提问是否要保存当前改动。
    • 打开项目:打开一个游戏项目。如果当前已经打开了一个项目并存在改动时,在打开新的项目前会提问是否要保存当前改动。
    • 保存:保存当前项目的改动。
    • 预览:使用该功能预览当前游戏项目的实际运行效果。GameMei预览页面模拟真实平台,手机(横屏、竖屏),平板(横屏、竖屏),电脑以及全屏预览。用户在设计游戏时应该考虑画面尺寸。该页面右侧给出了一些建议尺寸仅供参考。
    • 发布:游戏完成后点击发布,打包成各个成品。关于发布的详细信息查看游戏发布章节的介绍。
    • 文件管理:上传游戏中所有的素材(包括图片、音乐、字体),分类管理,支持同步生成游戏所能用的各个资源(对象、声音)。
    • 项目管理:管理GameMei中所有的游戏项目。新建、克隆(别人的项目)、复制、重命名、删除、快照管理等。具体信息见项目管理章节的介绍。

  1. 资源树
  2. 以“别理白块儿”项目的资源树为例:

    这里列出了打开的项目的所有资源,从上而下有场景、对象、动画、声音、文本、路径、时间轴、脚本、其他。

    • 场景:对象存在的区域(关卡)。
    • 对象:在游戏中实在的存有物。
    • 动画:能重复应用到各个对象的动画效果。
    • 声音:游戏中存在的背景音乐和各种音效。
    • 文本:游戏中存在的文字信息,是一种特殊的对象。
    • 路径:设定物体运动的轨迹。
    • 时间轴:每隔一个时刻执行一次动作。
    • 脚本:一段程序代码,能够扩展游戏制作的功能。
    • 其他:制作游戏需要的其他元素。如容器、排行榜、html5广告、动作序列、公式。

    资源是组成游戏项目的最基本元素。在项目名称右上角有一个设置按钮,点击这里可以对项目全局属性进行设置。具体可以查看全局属性的介绍。项目名称下方的搜索框,提供按类搜索资源树内的资源。

    各类资源以列表的形式展示在对齐的资源标签下。右击或者点击资源右侧菜单按钮,可以编辑、删除、克隆该资源以及添加新的该类资源。双击某个资源即可编辑该项资源。除场景资源会在场景区域打开外,其他资源都会打开一个编辑窗口。其中,对象、文本、容器资源可以直接从列表中拖拽到场景区。

  3. 场景区
  4. 该可视编辑区域可以通过拖放对象资源布置游戏各个场景。一个个场景连接起来就是一个游戏了。在左边资源树栏内双击场景资源,即可在场景区域通过Tab的形式看到对应的场景。

  5. 属性设置
  6. 根据在场景区选中的资源,在该区域展示该资源对应的属性。在该区域你可以查看编辑场景、对象、文本、容器的各个属性。

  7. 用户栏
  8. 用户可以在区域切换登录状态,或者修改个人资料信息。另外,可以对GameMei进行基本设置,切换语言显示。遇到问题的用户也可以通过点击“问题反馈”按钮获得我们的帮助。

  9. 信息栏
  10. 在该区域显示当前激活场景的辅助信息,包括场景大小、当前场景中激活的图层、场景缩放的大小、选中资源名称以及当前鼠标在场景中的坐标。



资源介绍

场景

任何游戏都需要至少一个场景,在新建一个游戏项目后GameMei会默认创建一个场景。在场景中我们可以摆放对象实例。新建一个场景,可以从左侧资源树场景目录点击添加场景,在中间场景画布会出下如下界面:



在场景画布顶端有一行工具栏



通过工具栏按钮可以“放大”“缩小”“等比例”展示场景画布视图,“复制”、“剪切”、“粘贴”场景画布中的资源。

支持场景资源对齐分布。对齐分布方式有倆种:资源、场景。类似Adobe Illustrator中对齐对象和对齐画布。“对齐分布方式:资源”即以场景中的资源为参照物对齐或分布,“对齐分布方式:场景”即以场景为参照物。对齐指俩个或以上的资源(对如象)的左边界、右边界、中间点的X值对齐或者上边界、下边界、中间点的Y值对齐,如果选择参照物为场景,即一个以上对象与场景画布对齐。分布是指三个或三个以上对象的左边界、右边界、中心点的X值平均的等距离分布或者上边界、下边界、中心点的Y值等距离分布,又或者是俩个以上对象与场景画布进行分布。

“不可去区域”如字面意思,游戏中角色不能到达的区域。在2.5D类游戏经常用到。点击“不可去区域”弹出如下编辑窗口,类似物理形状编辑。

在工具栏最右边是“事件管理”按钮,可以对该场景中所有关联的事件动作进行查看和编辑。具体介绍见事件管理

在场景画布中有一块灰色区域,是默认场景区。双击该区域即可为场景添加背景图片。注意默认的场景大小为640px*480px.所以背景图片导入场景画布后会自动缩放到该尺寸。可以在右侧场景属性设置里重新设置场景的大小。


场景属性包括“设置”、“背景”、“图层”、“物理”、“视图”5个标签。


设置

首先会默认打开基本“设置”标签。如下:

每个场景都有一个名字,建议起一个有意义的名字方便查找。你可以设置场景的宽度和高度(以像素为单位)。也可以设定场景中添加资源所在的默认图层、上一个场景、下一个场景。

勾选是否2.5D后,场景内的对象会根据位置动态调整同一图层内对象的互相遮盖。

点击“添加事件”按钮,可以为场景添加事件动作。GameMei的事件动作一般是通过对象添加,在这里可以把场景理解成一个特殊的对象。除了场景具有事件动作,文本、时间轴也同样可以作为一个特殊对象添加事件动作。具体会在后面文本时间轴中介绍。

场景设置里支持添加变量,在这里添加的变量属于该场景。在场景“事件管理”窗口也可以添加查看编辑该场景的变量。



背景

切换到“背景”标签,你可以为场景设置背景图片,后面会支持设置多个背景,具体如下:

选择背景,弹出背景图片选择窗口。如果在此之前没有设置过背景,需要先点击添加按钮添加背景。背景可以选择一张图片,也可以是一个颜色值。你可以指定背景图像水平平铺或垂直平铺在场景上。

设置平铺的同时通过设置横向速度或者纵向速度可以制作卷动背景。默认每0.1秒刷新背景,如果设置为0则及时刷新背景,但是会影响性能。可以根据背景图片的大小,在0到0.1之间选取合适的值,直至获得最佳的视觉和性能。



图层

为方便管理场景中的资源,场景还提供了“图层”标签:

图层可以将场景中的对象及其他资源分类管理。类似PS里的图层,每个图层可以有多个资源。图层工具栏有新建、上移一层、下移一层、编辑、删除。可以对选中的图层或资源进行需要的操作。

在图层最左端点击“展示/隐藏资源”按钮可以展示或隐藏该图层下的资源。

在图层左边或资源左边有一个小眼睛,用来显示整个图层的资源或部分资源。点击小眼睛,隐藏整个图层的资源或部分资源。隐藏后的资源在游戏运行中不会出现,除非是通过事件动作使其重新出现。双击图层下的资源可以打开编辑窗口进行编辑。

在图层名称后有一个钉子形状图标来设置是否随视图移动。默认钉子是横放状态,表式该图层的资源随着视图的移动而移动。点击一下变为竖立状态表示不随视图移动。

在图层右端点击“上锁”按钮,可以将该图层内的资源暂时锁定,此时场景内的对应资源会灰掉,表示不可编辑。

图层最右端数字表示当前图层下资源的个数。



物理

“物理”标签提供设置一些初始化的物理数据,如下:

类似hoohoo冲吧小吃货等游戏是模拟一个真实的物理世界,游戏中的对象会受到引力等其他物理属性的影响。默认场景“物理’栏内会勾选“场景是一个物理世界”,默认引力大小为X:0,Y:98。在对象行为里设置的物理行为引力倍数就是基于这里的引力。



视图

最后场景栏还有一个“视图”标签:

“视图”,提供可以在屏幕上显示场景不同部分的功能。该功能很常用。有的时候在游戏中只需要显示部分场景。例如在大多数游戏平台,视图会跟随主角移动。

在顶部需要勾选“启用视图”后,游戏会按照视图大小截取部分场景显示。勾选“预览视图”可以在场景画布中看到视图的位置大小。场景中的视图区域是矩形框定义的。在“场景属性”栏内你需要设置视图显示场景的坐标XY(左上方为原点),宽度、高度。视图的坐标可以在画布中拖动矩形框调整。

视图很多时候需要跟随一个物体移动。可以在跟随的对象里选择跟随对象。一般你会想设置对象显示在视图的中间位置,那样对象一移动视图会马上跟着移动。但是游戏默认会在跟随对象到达视图碰撞边界时视图才会移动,视图碰撞边界默认为-1(就是移动到视图中心点的位置)。例如横向边界设置10px,纵向边界设置10px时,当对象移动到距离视图边框10px(上下左右)的位置时视图开始移动。

这些可以按照你自己的需求设置。另外可以设置碰撞边界和当对象碰到边界时视图的移动速度。默认速度为-1(px/s),视图可以马上跟上对象。




对象

通过文件管理,前面我们可能已经上传了很多漂亮的图片到游戏中。但是当前这些图片不能做任何事情。下面我们开始介绍游戏中最重要的资源:对象。对象是在游戏中实际运动的实体,是由多重图形组成的载体,所以你可以在游戏中看到对象,并且可以对一定事件作出动作响应。

这里所说的对象是狭义的对象。广义上在游戏中你所能看到的所有东西,文字、背景、敌人角色等等都是对象。另外还有一些看不见的资源如时间轴、声音等也属于广义上的对象,控制影响着游戏的某些部分。

注意对象和图形的区别。一个对象指定一个实例,如敌人角色。在游戏中一个对象可以有多重图形,如行走的敌人、攻击的敌人、死亡的敌人。

增加一个对象到游戏中,有倆种方式。首先点击导航工具栏“文件管理”按钮,找到要成为对象的一个图形(没有可以先上传图片素材)选中,点击“同步生成”按钮,选择对象即可。

确定关闭窗口后,会在左侧资源树对象目录下看到刚生成的对象。

第二种方式在资源树栏对象目录右侧直接点击“添加”按钮,添加一个空白的新对象。会出现如下编辑窗口。



首先对象必须要有一个名字。如果需要继承父对象的相关事件动作和行为,可以选取相应的父对象。例如游戏中所有的怪物角色(多个对象),在碰到子弹后都会销毁,一般做法是给每个怪物对象都添加与子弹碰撞事件,然后执行销毁自身动作。如果采用父对象方法,即新建一个对象,添加与子弹碰撞事件执行销毁自身动作,然后设置各种的怪物角色的父对象为该对象即可。合适运用父对象,有时会让你的游戏看起来更加简洁清晰。

在父对象右边有一个明显的“对象行为”按钮。点击该按钮可以为对象添加所需的行为。关于对象行为后面有详细的介绍。

对象编辑窗口有2个tab标签



图形标签下,在左侧图形列表栏你需要给出代表该对象的图形。默认至少有一个图形,默认对象的初始形象为第一个图形,多个图形时可以右击某个图形指定该图形为对象默认图形。选中一个图形,双击右侧预览区域或点击图形工具栏 “选择图片”按钮可以为该图形添加图片。

如果需要制作动态图形,从图形工具栏进入关键帧动画窗口进行编辑。GameMei支持倆种动态图片制作,关键帧动画(一个长带图切割)和序列帧动画(多个子帧图片按序播放),后面会作详细介绍。

图形编辑区域提供了图形的基础编辑功能。在上方图形工具栏可以修改图片的尺寸,透明度,更多栏目下还可以给图片设置边框,横向或纵向移动速度(注意这里的移动速度是指图形内部画布的移动速度,该图形对应的对象在场景中的位移不变),图片的重复。



在左边的图形工具栏,可以删除当前图形,用指定颜色替代图片,为图形指定原点和图形点,编辑图形的物理形状,给对象添加文字。关于原点和图形点,初学者可能不好理解。在游戏中很多动作需要精确到图形中的某个点。例如对象A创建了一个对象B,对象B就是从对象A的原点出现。图形点用于关节的连接点,我们会很快支持。

图形的物理形状,定义图形可作用的有效轮廓。例如碰撞,通过定义图形物理形状避免了碰撞到空白区域时触发动作。

事件标签下,分为三栏,左栏添加使对象发生动作的事件,在中间添加该事件对于的动作,动作从右侧动作库中选择编辑。通过右击事件或者点击事件右侧菜单按钮,可以编辑、删除、禁用该事件。禁用类似代码注释,可以暂时不执行该条事件。同样的操作方式可以编辑、删除、清空、复制、粘贴、禁用动作。按住crtl键可以选中多个动作。点击动作栏上方的保存按钮可以将选中的动作作为一个动作序列保存下来。 需要重复用到该动作序列的对象可以直接调用该对象。关于事件动作后面会做详细介绍。

在场景画布中单击选中一个对象,在场景区域右侧会显示该对象的一些属性。显示如下:

你可以在属性栏中修改属性参数。下面来介绍对象的这些场景属性

  • 唯一性标识:唯一性标识选中的对象实例的名称。
  • 图层:定义当前选中对象所在的场景图层。
  • 宽度缩放:对象宽度缩放的参数。与高度缩放倍数相同时即为等比例缩放。在场景中拖拽对象的八个控制点可直接缩放对象尺寸。具体数值可以在属性栏中调整。在高度缩放和宽度缩放之间有一个等比锁定按钮,默认是锁定的。锁定后宽度和高度等比例缩放。
  • 高度缩放:对象高度缩放的参数,比如缩放0.1将对象高度缩小到原高度的0.1倍。点击等比锁定按钮解除锁定后,可以设置高度缩放参数。
  • 旋转:对象以中心点旋转的角度参数。在场景中拖拽对象的红色旋转控制点也可手动旋转对象。
  • X(px):对象在场景中的X坐标位置。
  • Y(px):对象在场景中的Y坐标位置。
  • 透明度:选中对象的透明参数设置,为0时在视觉上该对象从场景中消失。100时正常显示原图形。
  • Z坐标:在同一层中的对象的层次关系可以用Z坐标来定义。默认为0,值越大越在上面。
  • 水平镜像:将场景的对象水平镜像过来,具体效果自己动手试下就很清楚了。
  • 垂直镜像:将场景的对象垂直镜像过来。
  • 变量:设置属于该对象的变量。当然你也可以通过动作设置变量去动态设置变量。
  • 行为:为指定对象添加指定的性为,参照对象行为的介绍。


动画

动画是游戏中可重复使用的动画效果。通过缩放、位移、旋转、透明度、背景颜色的组合可以实现很多游戏中的基本动画效果。例如角色死亡时慢慢隐去消失。动画的编辑界面如下:



首先先给这个动画效果起一个名字。然后在左边预览框上选择一个预览对象。注意是预览对象,每个动画效果可以应用到多个对象上。此时在动画编辑窗口中显示动画的第一帧。通常第一帧不做属性修改,获取对象原有状态。

然后点击帧预览框下的工具栏,点击新建或复制创建一个新动画帧,然后在右侧修改需要更改的属性。新建和复制的区别在于,复制帧会获得与前一帧相同的属性,而新建帧保持对象最初始的状态属性,所有动画属性设置为0。

属性设置栏内,首先勾选需要修改某个属性,然后在该项属性框中修改参数。

制作动画的过程中,点击预览框上方的播放按钮及时预览动画的播放效果。默认动画是循环播放的,可以在帧预览框下的工具栏设置循环的次数。应用动画到对象中就会按照设置的次数播放动画。

动作库中“执行动画”,可以让应用对象执行在这里所设置好的动画效果。这里所设置的动画可以在资源树动画目录下查看到,编辑复制或者删除。



声音

顾名思义声音即游戏所需要用到的音乐资源。通过文件管理上传的音乐文件需要首先转换为声音资源后才能在游戏中使用。

点击资源树声音目录右侧添加按钮,添加新的声音资源,会弹出如下窗口:



首先声音也需要有个名字。然后点击添加按钮选择所需的音乐文件。建议使用ogg或者WAV格式的音乐文件。考虑到游戏性能请尽量压缩音乐文件的大小。考虑跨平台播放可以给一个声音添加多个不同格式的音乐,在游戏运行时会自动选择平台支持的音乐格式。

在声音列表框内选中声音,点击播放暂停可以试听音乐。通过音量将音乐调整到最佳的播放音量。默认100%为音乐初始音量大小。

勾选“预加载”可以指定在游戏开始时读取音乐到内存,播放声音文件时即可立即播放。理论上如果没有勾选“预加载”,音乐文件只有在第一次使用时读取,这样会节省一些内存空间但是会花费时间。实际中GameMei会在游戏开始前加载好所有资源,即勾选“预加载”。该选项留作以后的扩展。

勾选“是背景音乐吗”,则当前声音会被看做背景音乐。背景音乐与普通音乐类似但是不能同时播放多个,所以一旦启用一个新的背景音乐,原来在播放的背景音乐会立即被停止。



文本

当你想在游戏中显示文本时,必须创建文本资源。在每个文本资源里可以设置文本显示的字体、大小、颜色等等。

点击左侧资源树文本目录右侧添加按钮,会显示下面窗口。



一般你都会给文本起个名字,在上方给文本起个有意义的名字。接下来在属性标签下设置文本的样式。可以先在右侧预览区双击文本框输入文本内容。当文本内容过多时只会在文本框内显示一部分,这时需要在左侧属性栏把文本框的宽度高度调整到合适大小。

如果需要动态设置文本内容(可以通过设置文本内容的动作),这里文本内容也可暂时不填。默认文本内容为:“双击编辑文本内容。”

通过样式属性为文本定义一些特殊的样式。默认为Arial字体,14号黑色普通字体。如果有需要点击安装字体自定义字体。考虑到游戏内存大小,如果是中文建议使用默认字体。这里需要说明的是,通常你会在你的电脑里安装很多不同类型的字体,在这里如果你用到的字体在别人的电脑上没有安装,那浏览器会自动匹配可用的默认字体显示。

除了字体,你可以修改文本字体的大小,颜色,是否加粗、倾斜,在文本框内的对齐方式等。

另外可以看到事件标签。文本作为一个特殊的对象,也可以有事件动作。基本与普通对象类似,但是文本不具有碰撞、进入离开物体的事件。关于文本的使用方法在动作库文本会有详细的介绍。

确定后窗口关闭,这里设置好的文本会显示在资源树文本目录下。文本可以像普通对象一样,从文本列表中直接拖到场景中。这样文本如果不隐藏就会在游戏运行时显示在该场景中。



路径

在很多游戏中你经常想让物体按照一定的运动线路移动。虽然可以采用时间轴和代码实现,但是相当复杂。通过路径资源即可轻松解决。方法很简单,首先在路径画布中画好路径,接下来在对象创建时添加动作设置路径,对象在场景出现时即可沿着路径运动了。

定义路径可以通过点击资源树路径目录右侧添加按钮,打开路径窗口。如下:



路径是画在场景中的运动线条,所以在窗口左上方显示路径所在的场景。注意这里的场景只是作绘制参照,任何场景中都可以使用该路径资源。默认为第1个场景,可以点击修改成需要的场景。

像一般资源一样,在场景下方名称栏给路径起一个有意义的名字。在他的下方,可以看到一些定义路径的点。每个点都有一个位置坐标和一个速度。赋予物体路径的时候,会赋予一个速度,而路径中点的速度实际是速度的百分比,100%即speed*100。

点击“添加”按钮可以在最后面复制出一个选中的点,如果没有点被选中就在(0,0)坐标创建点,可以在列表框下面的设定框内设定点的坐标和速度。在列表中选择选定一个点也可以对其参数进行修改。“插入”按钮可以在当前选中的点后面插入一个点,“删除”按钮删除当前选中的点。

在右边的绘制框你可以看见目前的路径。红点是当前选中的点。蓝点是其他点。你可以用鼠标修改路径。在框内任何地方单击可以添加一个点。点击并拖动选中的点可以修改点的位置。在绘制框右上方一个圆盘按钮,点击上、下、左、右键移动整条路径,点击中心修改按钮设置每步移动的距离。

你有倆种方法去更改路径的形态。首先你可以指出路径是否闭合,第二通过曲线勾选项你可以更改路径的连接类型,直线路径或者平滑曲线路径。

关于路径的使用方法参照后面的动作库路径



时间轴

在很多游戏中,有些动作需要在定义的某个时刻发生。通过闹钟事件可以实现简单的时刻控制,但是如果时刻动作过于复杂这就相当困难了。这时就需要用到了我们的时间轴资源。在时间轴里你可以定义在某个时刻发生什么动作。时间轴中可以使用动作库所有提供的不同动作。当对象使用了你添加的时间轴,对象就会按照该时间轴上定义的动作序列执行。举个例子。如果你想使一个人物先向上走,5秒后向下走。这时可以设置一个时间轴,第1秒设置人物向上移动,第6秒设置人物向下移动。然后在人物创建时设置时间轴即可。如果时间轴是循环执行的,那么会重复执行该时间轴的动作序列。这里需要注意,如果第一个时刻设置为0秒(立即执行动作序列),第二个时刻设置为5秒,执行循环时间轴时会把0秒和5秒看做为一个时刻,只会执行第一个时刻的动作序列。

你也可以为整个场景定义一个时间轴。使整个场景按照定义时刻执行某个动作。例如在某个时刻创建怪物角色。

定义时间轴可以通过点击资源树时间轴目录右侧添加按钮,打开时间轴窗口。如下:



外观上和对象窗口有些相似。

首先在窗口上方位置给时间轴起一个名字。

下面分为三栏。左栏显示的是时刻列表,中间栏显示当前选中时刻下的动作序列。右栏动作库提供可供使用的动作。

在时刻列表下点击“添加”按钮,弹出一个新的窗口,在输入框内输入时刻,单位为s,点击确定后即添加在时刻列表中。点击旁边的“清空”按钮会清空掉时刻列表中所有时刻。如果想要删除某个时刻,右击该时刻或者点击该时刻右侧的菜单按钮点击“删除”。双击某个时刻可以直接修改该时刻。

关于时间轴的动作,请参照动作库时间轴



脚本

一些复杂的功能可能gamemei暂时没能帮你实现,懂javascript代码的用户可以自己写几行脚本代码解决问题。脚本资源更多的是用于扩展。一些复杂的游戏逻辑无法避免需要借助一些代码去实现。

脚本是一有名称的代码集合。在资源数脚本目录下可以查看。在动作库中可以直接通过执行代码动作写一段代码,这里的代码和脚本资源的区别在于执行代码动作里的代码没有名称且没有参数,并且仅在当前应用对象中执行不能重复调用。

GameMei里的脚本是一段用javascript语言写的代码,通常用来实现一些比较复杂的游戏逻辑。脚本可以调用参数(就像编程语言里的函数)。你可以通过脚本动作或者是代码去调用脚本。在执行脚本动作中可以选择想要执行的脚本,并设置脚本需要用到的参数(最多支持5个),你也可以在任意代码内执行脚本。

定义脚本可以通过点击资源树脚本目录右侧添加按钮,打开编辑脚本窗口。如下:



点击保存按钮保存当前的改动。可以撤消和重做上一步的键入。在名称框内给脚本起一个名字。在脚本编辑器里代码是有颜色识别的,可以自动识别出代码中的关键词,数值等。

关于脚本更为详细的介绍参照动作库代码



其他

除了以上介绍的几种主要资源,GameMei还提供了一些附加资源用来扩展游戏的制作。当前有滚轴容器排行榜Html5广告动作序列公式输入框。定义其中任何一种资源可以通过点击资源树其他目录右侧添加按钮,打开选择其他资源窗口:



点击选择需要的资源。下面是对这些资源的详细介绍:



滚轴容器

在游戏界面中需要一些可以滑动的页面,普通的静态页面放不下页面内容,纵向滚动或者是横向滚动查看页面上的物品。商城物品,道具箱等界面经常需要用到。滚轴容器是多个等大小的单元格排列组成,单元格是滚轴容器的基本元素,物体摆放在单元格内。

添加方式和添加对象类似,在选择其他资源窗口点击“滚轴容器”确定后,窗口关闭鼠标变为“+”状态,场景中点击即在场景中添加了一个滚轴容器。同时在资源树其他目录下可以看到添加的滚轴容器。双击该容器可以给容器重命名。滚轴容器也可以从其他目录下拖拽到场景区域中。

新建的滚轴容器是一个默认100*100的单元格,单击选中该容器,在右侧属性栏显示该容器的属性。



一个容器可能有多个实例,唯一性标识是指定容器实例的名称。接着指定容器所在场景的图层。如果勾选“自动分类”,在容器单元格内有相同的物品会放在一个单元格内,并且当前该物品的个数。容器的内容可以是左右滑动的(横向),也可以是上下滑动的(纵向)。 根据需要选择容器类型。定义好容器类型后,下面是容器规格的设定。

首先是每个单元格的高度和宽度设置。如果是纵向容器,需要给定容器列数(每行单元格的个数),以及整个容器的高度。如果是横向容器,需要给出行数(每列单元格的个数)以及整个容器的宽度。如果单元格之前需要空隙,设置间隔。

最后给每个单元格添加内容填充。这里是静态设置内容填充,如果是动态增加可以参照动作添加实例到滚轴容器将实例取出滚轴容器。点击添加内容填充,设置静态内容。弹出如下编辑窗口:



双击单元格可以添加或修改内容填充。点击工具栏上←↑→↓按键,可以调换当前选中单元格的内容。如果需要添加单元格,点击上方“添加列/行”按钮即可。



排行榜

很多游戏中会有排行榜,通过玩家的游戏分数进行排行。为方便用户快捷给游戏添加排行榜,GameMei在其他资源内加入了排行榜模块。同样在资源树其他目录右侧点击添加按钮,在打开的选择资源窗口选择“排行榜”确定后,随即会打开排行榜的编辑窗口如下:



首先给排行榜上传一张背景图,不上传即使用上面的默认背景图片。接着是内容项背景图片,默认是预览图中的一块蓝色长条。然后是排行榜显示的内容设置。GameMei提供五项内容可供选择显示,分别是头像、用户名、奖牌、分数、时间。分数和时间可以选择按照升/降序排行。分数是由用户自定的,参照动作添加数据到排行榜

预览框上方可以设置排行榜显示内容的尺寸(预览图上的虚线框),可以将宽度和高度改为合适的尺寸,XY为内容框的位置,也可以直接拖动虚线框调整位置。设置完毕后点击“确定”即添加好排行榜了。

排行榜模块目前局限性大,后期会提高扩展性能。



对于游戏开发者,在游戏中植入广告是一种重要的盈利手段。GameMei目前支持在PC客户端和安卓端分别植入广告。HTML5广告就是指在PC客户端植入的广告资源。安卓端广告可以在全局属性中设置。

点击资源树其他目录右侧添加按钮,在打开的选择资源窗口选择“HMTL5广告”资源,确定后可以看到如下的广告编辑窗口:



首先给你添加的广告起一个有意义的名字吧。植入广告有两种方式:一种是通过广告联盟代码。广告在页面的展示位置可以是页面上方、下方、左边、右边或者是右下方。然后在广告代码框中粘贴上你复制过来的广告代码即可。另外一种方式是图片加链接的形式。同样先指定广告在页面的展示位置。然后上传一张广告图片。最后在广告链接框中粘贴广告图片的链接地址。是不是很简单?点击预览暂时看不到广告,你需要在发布页面将游戏发布成网页(HTML5),在获得的压缩文件中打开index网页即可看到你植入的网页游戏广告。



动作序列

对于经常用到的比较复杂的动作序列,可以定义成动作序列资源,然后在需要用到这个动作序列的地方使用执行动作序列动作,就可以调用预先定义的动作序列。在编辑对象定义动作时也可以直接选中编辑好的动作保存为动作序列资源。所有定义的动作序列资源都可以在其他目录下动作序列文件夹中查看。双击某个动作序列资源即可重新编辑。下面是动作序列的定义和编辑窗口:



首先给你需要定义的动作序列起一个有意义名字。然后就可以像编辑动作一样点击相应的动作按钮编辑动作序列了。



公式

公式资源类似数学、物理、化学等自然学科中用数学符号表示几个量之间关系的式子。公式是由一组常量符号、函数符号和关系符号组成。在游戏中比较复杂或常用的关系式可以预先定义好公式,在需要用到的地方调用公式即可。同上面几种资源一样,点击资源树其他目录右侧添加按钮,在打开的选择资源窗口选择公式资源,公式资源的编辑窗口如下:



同其他资源一样,可以命名该公式的名字。在公式输入框内输入你的公式,例如(a-b)/(c-b)*w,然后在下面的未知数栏目里定义该公式中的未知参数(函数符号),后面调用公式时会按序往参数里传值。这里示例公式中需要的定义的未知数为:a,b,c,w。有的时候公式也可以直接用变量书写。这样就不需要设置未知参数了。

这里示例公式formula_2定义用来计算当前经验条的进度。在动作中设置宽度,打开表达式编辑器中选择“游戏”—>“执行公式”,修改表达式的参数,最终表达式为:execute_formula("formula_2", game.vars_.exp,game.vars_['level' + (game.vars_.level) + 'Exp'], game.vars_['level' + (game.vars_.level + 1) + 'Exp'],197),括号里参数分别为公式名称,a的值,b的值,c的值,w的值。公式的用法需要参照表达式编辑器公式的介绍。


输入框

输入框资源是界面中的表单控件元素。在输入框中用户可以输入文字进去。添加方法同上,点击资源树其他目录右侧添加按钮,在打开的选择资源窗口选择输入框资源,点击确定按钮后即可在资源树其他便签下查看到添加的输入框资源。将资源拖拽到场景中,在场景右侧出现输入框属性设置栏,如下:

输入框的基本属性同对象相同,包括唯一性标识名称、所在图层、旋转、XY坐标位置、宽度、高度的设置。下面介绍它的特别属性:

默认值:在输入框中初始显示的文本。

占位文本:有时在输入框为空时会出现一些暗色的文本,通常用于提示该输入框用于干什么的。

开启密码:当勾选开启密码后,输入的内容会以特殊符号替代显示,例如*。

文本长度限制:勾选后,可以为输入框输入的字符添加字数限制。

输入框样式:可以根据界面需要个性化设置输入框的样式,通过设置背景颜色、边框宽度和颜色以及圆角。

文本样式:设置输入框内文本的样式。可以参照文本章节的文本样式介绍。



事件

游戏的运行是通过采用事件驱动的方法。所谓事件,即代表某些事情发生的信息,对象(该章节里指广义的对象)得到事件后即会执行相应的动作。

在对象窗口的事件标签下,左栏是事件列表栏,对象需要做出反应的信息都列在这里。开始是空的,点击添加事件按钮,添加需要的事件到列表中。



右边动作库以小图标的形式列出了所有动作,具体动作的介绍会在后面的动作中介绍。在事件和动作之间,列出了当前选中事件所会执行的动作序列。需要添加动作,可以通过点击右侧动作库里相应的图标添加。动作序列是按照一定的逻辑顺序排列的一组动作,如果需要修改动作序列的顺序,可以直接选中动作拖拽调整。当你在某一个动作上右击时,出现选单可以编辑删除或复制、粘贴动作,除此还可以清空整个动作序列和禁用动作。如果需要删除选中的事件和其动作,直接右击事件删除。

点击“添加事件”时,出现所有事件集合的窗口。



在右侧事件按钮名称右边,如果有小三角形符号表示这里有一些事件的集合。点击该事件按钮会出现事件选单,在选单上按下所需的事件,事件即被添加到左侧的事件框里。没有选单的事件按钮点击后就会被添加到左侧的事件框里。如果想要删除事件框内不想要的事件,在事件框内单击该事件即可删除。

有时事件可以是组合的信息,如按下ctrl键的同时按下→键。这时在添加事件时一次添加多个事件代表多个事件中任意一个发生,相当于在事件之间添加了“或者”运算符号。组合运算符号放在事件框下方。当前暂时只支持“或者”运算符。

下面是对各个事件的描述:

创建事件:当对象的一个实例被创建时触发这事件,可以理解为对象的一个实例出现在场景中。创建事件是对象实例第一个执行的事件,通常用来定义开始时对象执行的动作。除了对象,也可以是一个场景或文本被创建。创建是一个很常用的基础事件。

销毁事件:当对象的一个实例被销毁时触发该事件,可以理解为对象的一个实例在场景中消失时。严谨来说是在实例销毁之前,也就是事件执行的时候实例还存在。例如用于销毁一个敌人实例时分数加十或者播放敌人惨叫的声音。

碰撞事件:当俩个对象的实体产生重叠时,发生碰撞事件。碰撞事件需要涉及到俩个对象,严谨来说俩个对象都发生了碰撞。首先需要选择当前定义碰撞的对象的碰撞区域。这里说明下碰撞区域的问题。有时候,对象的图形是留白较多的图片,这时默认是图片边缘碰撞。游戏运行时可能图片中的人物未碰撞时就触发碰撞事件。还有些时候,你可能只需俩个人物的手相互碰撞触发,而非整个人物的身体。这时候就需要编辑对象的物理形状,可以在一个对象中编辑多个物理形状。默认为编辑的碰撞区域就是整张图片。接着选择与其碰撞的另一方对象。最后同样需要选择另一方对象的碰撞区域。

碰撞事件可以用来做很多事情,例如墙壁反弹某个小球,击中一个敌人等等。

碰撞结束事件:与碰撞事件相反,当俩个对象结束碰撞时触发事件。即俩个物体的边缘即将分离时。

进入物体事件:与碰撞事件类似,区别在于碰撞时在对象实例的边缘产生重叠,如果边缘一重叠就会立马执行碰撞事件,而进入物体是俩个对象实例相互重叠的一个过程,可以理解成一个对象实例在另外一个对象实例上移动。

离开物体事件:与进入物体相反,当物体从另外一个物体上移动过去,俩个物体没有重叠时触发此事件。

接下来是几个需要用户交互操作的事件。

鼠标事件:鼠标在对象实例的图片内实施某种操作方式时触发该事件。你可以选择鼠标的操作方式,是“鼠标按下”,还是“鼠标松开”,还是“鼠标移动”。“鼠标按下”是当鼠标按下时只发生一次事件,如果一直按住不放也是发生一次事件,即执行一次动作序列(如果动作里没有设置循环的话)。“鼠标松开”是在按下的键松开时发生。“鼠标移动”是拖动鼠标时发生。

需要注意的是,如果鼠标这些事件没有在实例的图片内部操作,比如在对象外右方移动鼠标,是不会响应事件的。如果需要鼠标点击场景任何一点,可以给场景添加鼠标按下事件。

触摸事件:针对触屏设备屏幕上的不同触屏手势触发该事件。在触屏事件的选单中提供了常用的手势。

下面一一来介绍:

触摸开始:和触摸结束是手势的基本组成部分。触摸开始是手触碰到屏幕时响应事件。

触摸结束:和触摸开始相对于,手离开屏幕时响应事件。

轻点一下:使用指尖轻轻触碰界面时响应事件。

按住不放:长时间触碰界面时响应事件。

拖动:使用指尖在界面上拖动时响应事件。

滑动事件:使用指尖迅速滑动界面时响应事件。下图是触屏的几张手势图。



按下按键事件:当在键盘中按下某个键时触发该事件。点击事件按钮后会出现一个输入框,在键盘中按下你需要的键即完成按键事件的定义。当在游戏中按下你定义的按键时事件发生。

松开按键事件:当在键盘中松开已经按下的某个键时触发该事件。同样需要在点击事件按钮后定义按键。

接着是四个比较常用的事件。

闹钟事件:首先需要在闹钟动作中定义好你的闹钟,参照动作库章节设置闹钟介绍。然后在闹钟事件选单指定需要监听的闹钟。在这闹钟倒数计时到0时触发事件。通过闹钟事件可以实现重复执行一些动作的情况。例如每隔5s改变场景中怪物的移动方向(这需要在动作中再设置一遍闹钟)。

消息事件:首先需要在消息动作中定义好你的消息及其需要传送参数,参照动作库章节消息的介绍。然后在消息事件选单中选择需要监听的消息。在定义事件的对象收到消息时触发事件。

帧动画事件:一个帧动画是由许多影像轮流显示而组成的。在第一个影像显示的时候触发“帧动画开始”事件,在最后一个影像显示的时候触发“帧动画结束”事件。

动画事件:类似帧动画的原理,区别是播放的影像是由缩放、移动、旋转、透明度、背景色任何组合来变换原有的对象图片。在对象实例开始动画变换时触发“动画开始”事件,在对象实例动画变换显示到最后一个影像时触发“动画结束”事件。

出场景事件: 当实例完全移出场景在场景外面时触发“离开场景”事件,通常我们会执行“销毁”动作。 可以选择是从场景的上边界离开,还是下/左/右边界。都选表示从任意边界移出。

进入场景事件:当实例与场景的边界相交即将出现在场景里时触发“进入场景”事件,同样出场景的边界位置可以选择上/下/左/右。

出视图事件:类似于出场景事件,只是参照的标准由场景边界变成了视图编辑。

进入视图事件:类似于进入场景事件,参照的标准由场景边界变成了视图编辑。

路径事件:该事件发生当对象的实例跟随一路径时。选单分为“路径开始”“路径结束”“经过路径点”。“路径开始”是发生在对象的实例跟随一路径在路径起点时,“路径结束”发生在对象的实例跟随一路径到达路径的终点时,“经过路径点”发生在跟随路径到达路径中的某个节点时。

时间轴事件:在定义某个时刻执行动作开始发生或发生之后触发事件。“时间轴开始”是对象在定义的某个时刻动作开始执行时,“时间轴结束”是对象在定义的某个时刻动作执行完成后触发。定义的某个时刻执行一些动作就是时间轴资源。时间轴事件触发的是属于定义事件对象的时间轴。

终端运动事件:在移动设备上通过重力感应触发事件。通过该事件,可以获取终端在X,Y,Z轴上的加速度。

其他事件在选单中列出许多不太常用的事件。下面给出这些事件的介绍:

移动开始:在对象开始执行移动至场景中定义的某一点时触发。该事件监测的是“移动至”动作执行的状态。区别后面“进入运动状态”和“进入静止状态”。

移动结束:在对象移动到场景中定义的某一点后触发。对应“移动开始”事件,该事件监测也是“移动至”动作执行的状态。

加载游戏:游戏中的资源正在加载中的过程持续触发事件。

加载完成:游戏资源加载结束后触发事件。

进入运动状态:场景中的对象开始运动时(位置移动、旋转等)触发该事件。此事件是和物理运动状态相关。

进入静止状态:场景中的对象结束任何运动完全静止时触发。与进入运动状态相对应。



动作库

动作放在事件中,当事件触发就会执行属于该事件的动作。GameMei动作库中大量的动作可供使用。在本节章节中我们将向你介绍动作库里所有的动作。

在对象(广义上)窗口的事件标签下,右侧栏中集合了目前GameMei所有支持的动作,以6组标签索引页展示。还有一组特殊的标签索引“自定义”,让用户自己通过GameMei去定制自己所需的动作。

使用:首先点击正确的标签索引,得到所需要动作的群组。当你把鼠标光标固定在一个动作按钮的上方,会显示一个小提示说明它的功能。在当前索引页点击动作,在弹出的编辑窗口编辑好“确定”后就能把这个动作添加到选中的事件中。如果当前没有添加任何事件,是支持添加动作的。因为动作是放在事件中的。如果点击无需编辑的动作则直接添加到选中的事件中。在动作序列中拖拽动作可以调整动作间的顺序。右击动作或点击动作右侧的选单按钮可以编辑、删除、禁用动作或者执行复制粘贴动作或者清空整个动作序列。双击动作也会快捷弹出动作的编辑窗口。按住“ctrl”键点击动作,可以选中多个动作。如果需要多次用到相同的动作,选中这些动作,点击动作序列右上方的保存按钮,可以将这些动作保存为动作序列,在需要用到相同动作序列的地方直接通过“执行动作序列”动作来调用之前保存的序列。

在很多动作窗口,需要选择“应用至”指定当前动作适用于谁。 “自身”是指对象本身,意思是当前定义事件动作的对象会执行该动作;“与其碰撞的另一方”是在碰撞事件中,你也可以把动作作用在涉及碰撞的另一方对象;“对象”是在某个对象的所有实例上执行动作;“唯一性标识”是标识对象的一个实例的身份证,身份证是唯一的,只在符合这身份的实例上执行动作;“场景”是将动作作用到游戏中的某个场景上;”图层”是在游戏中的某个场景中的某个图层上发生执行动作。

另外在窗口里还有一些“相对”的勾选框。如果勾选“相对”,当你输入了一个数值是相对于现有的数值。例如,你可以在现有分数上增加分数,而不是把目前分数直接改变成新的数值。

每个窗口里都有注释输入框,是给用户自己备注动作使用。如果有需要的话。方便日后的查看。



移动

第一组动作是和物体运动相关的。主要包含移动、瞬移、路径、鼠标四部分,下面介绍这些动作:

移动至:使用此动作使一对象实例移动到指定的位置。

你指定一个位置和移动速度,对象实例是按照指定的速度向位置移动,注意不是瞬间停在指定的位置。

例如:你想让子弹朝怪物的位置运动,应用至对象选择“子弹”,设置位置为怪物的位置,这里可以通过表达式获取怪物的位置。点击输入框右侧的E按钮进入表达式编辑器,选择“唯一性标识”找到怪物的唯一性标识,然后选择横坐标即可获得怪物的横坐标。当然如果熟练表达式可以直接在输入框内写入”怪物.x”。同理获得怪物的纵坐标。:如果勾选“相对”:则是相对于当前子弹自身的位置偏移XY。如果不勾选相对,移动的目标位置与子弹自身无关,为绝对值坐标位置(场景的坐标位置)。然后设置速度为50 px/s。注意这里速度如果勾选相对,即是指相对于子弹之前的速度。如果之前子弹速度为20px/s,那么勾选相对后子弹的移动速度为(70px/s)。

设置速度:一个实例的速度方向可能有几种合成方式。可能是横向坐标上速度与纵向坐标上速度的合成,也有可能某个角度上的速度,或者具体是朝向某个对象上或点击位置的速度。用这个动作可以改变速度。横向速度是正值代表向右运动,纵向速度是正值代表向下运动。俩个正值的横向速度和纵向速度合成后就是向右下方移动。如果是设置某个角度上的速度,角度方向是按照逆时针旋转一圈。向右为0°,向上为90°,向左为180°,向下为270°。速度正负互为相反的方向。设置90°上速度为50px/s,与设置270°上速度为-50px/s是一样的效果,都是朝正上方运动。

横向逆转:该动作可以使物体实例运动的水平方向上速度方向。例如当物体碰到站立的墙壁时使用该动作。

纵向逆转:这动作可以使物体实例运动的垂直方向上速度方向。例如用在碰撞水平的墙。

设置跟随:用来设置某个对象实例跟随另一个对象实例或者是鼠标。实质上是跟随即对象与被跟随对象具有相同的速度(包括方向和大小)运动水平偏移是指跟随对象与被跟随对象在水平方向上偏差的位移。

例如:水平偏移为100px,跟随对象相对被跟随对象向右偏移100px(以对象图形的中心点计算)。如果是垂直偏移,即向下偏移100px。默认偏移都是0(即俩个对象的中心点重合)。跟随选项有完全跟随(跟随被跟随对象移动而移动),横向跟随(仅在水平方向上跟随,这时设置的垂直偏移不起作用),纵向跟随(仅在垂直方向上跟随,水平偏移不起作用)。该动作可以用来设置一个小手形状的鼠标来模拟鼠标在场景上移动。

取消跟随:用来取消某个对象实例当前的跟随。如有有设置跟随的话。例如退出游戏关卡后小手形状的鼠标不见了。

瞬移:使用此动作通过指定X,Y的坐标值将实例放在场景某一特殊位置上。假如勾选了“相对”,位置是相对于当前实例的位置放置的。

横向瞬移:使用此动作通过给定X坐标值指定实例在场景中X坐标的位置。假如勾选了“相对”, X坐标的位置是相对于当前实例的X坐标的位置放置的。

纵向瞬移:使用此动作通过给定Y坐标值指定实例在场景中Y坐标的位置。假如勾选了“相对”, Y坐标的位置是相对于当前实例的Y坐标的位置放置的。

下面一组是有关路径的动作

设置路径:使用该动作可以指定对象实例按照一个定义的路径运动。首先选择一个路径,设置在路径上的运动速度。注意速度不能为负值。下一步再指定运动到路径末端时应该发生什么动作。可以选择停止运动或者从开始处再重新运动,或者从当前位置再执行一次路径运动(此时路径为相对的位置即相对运动),或者从路径末端反向朝起点运动。最后你可以指定路径本身位置是否是相对。勾选”相对于应用对象位置”,那么路径的起点从应用对象的图形中心点开始。

设置随机路径: 使用该动作可以使对象实例从几个路径中随机选择一个路径做路径运动。

窗口内列出4条可供选择的路径。通过该动作可以实现同一对象的不同实例有不同的运动线路。和设置路径一样,需要指定按照路径运动的速度,移动到路径末端时的动作。

结束路径:使用这个动作取消实例使用的路径。

设置路径位置:使用这个动作你可以改变对象实例在路径上的位置。路径节点代表路径上的圆点,0代表第一个点,1代表第2点,以此类推。

设置路径速度:使用这个动作可以改变物体在路径上运动的速度值。速度的值可以用百分比来指定,按照设置路径时的速度的百分比,速度的值也可以直接用多少px/s具体设定。如果勾选“相对”,会在当前速度值基础上增减。

使对象可拖拽:该动作可以使对象实例能够用鼠标或者手指(移动)拖拽。力度越大,越好拖拽,拖拽中对象实例获得的速度越大。

使对象不可拖拽:取消对象实例设置的可拖拽。



主要1

该组动作与物体的创建、变化、清除有关。主要包含对象、图形、动画、场景和容器五部分,下面是具体的介绍:

创建实例:创建一对象的实例。可指定创建哪个对象的实例,可以自定义创建的实例的唯一性标识,创建实例所在的图层,相同图层中Z坐标(越大越在上面),以及创建实例的位置。如果勾选“相对”则创建位置为相对于当前实例的位置。在游戏中创建实例是非常有用的。比如一个大炮可以创建炮弹,一个炮弹可以创建一个爆炸等。

创建移动实例:与上面的功能类似,但是有一点不同。这个动作不但可以在某个位置创建一个实例并且可赋予它一个运动方向和速度值,使之开始运动。勾选“相对”表示相对于应用对象图形。

创建随机实例:该动作也是创建新的实例,在指定的两个或两个以上的对象中随机选择一个在某个位置创建。

改变实例:将当前实例变换成别的对象的实例。例如,你可以将一个炮弹实例更换成一个爆炸实例。更改后全部的设定值,如运动或者相关变量的数值保持相同。通过勾选“触发创建事件”,你也可以指定是否为在当前物体上执行销毁事件及为新物体执行创建事件。

销毁实例:用此动作你可以摧毁实例。

设置缩放:通过该动作可以放大或缩小对象实例的尺寸。勾选“相对”,表示相对当前缩放基础上再进行缩放。比如原来实例已设置缩小0.5,现在设置缩放0.5就是将原有实例缩小0.25。

设置旋转角度:通过该动作可以将对象实例旋转到指定角度。勾选“相对”是相对当前旋转角度上再旋转指定角度。

设置镜像:通过该动作可以将对象实例镜像过来。所谓镜像,是指图片中原来在左面的被翻转到右边,或者原来在上面的被翻转到下面,就如同照镜子产生的效果一样。根据需要选择镜像的类型,是横向镜像还是纵向镜像。下面勾选镜像表示对象实例变成镜像后的样子,如果不勾选,表示对象实例为原有样子。

设置唯一性标识:通过该动作可以动态设置对象实例的唯一性标识。若设置的唯一性标识与已有的唯一性标识重复,当前设置的将会覆盖原来存在的。

是否销毁:通过该动作可以对该对象实例进行条件判断“该对象实例销毁了吗?”

修改图形:这个动作可以用于更改实例的图形。注意这里是图形。一个对象可以有多个图形状态,正常情况下对象实例显示为默认图形。触发事件需要更改图形时通过该动作实现。例如走路的怪物被子弹打到时变成了躺下的怪物。走路的怪物和躺下的怪物是怪物对象下的俩个图形。

设置宽度:此动作可以将某个图形宽度设置为指定大小。勾选“相对”是相对于图形原有宽度。

设置高度:此动作可以将某个图形高度设置为指定大小。勾选“相对”是相对于图形原有高度。

设置帧动画速度:此动作可以将某个帧动画(包括关键帧动画和序列帧动画)的速度动态设置为指定大小。注意速度的单位为%,是按照缩放倍数来设定速度的大小。如50%是速度减慢一倍,200%是速度加快一倍。

设置图形(背景)速度:此动作可以将某个图形或背景的速度动态设置为指定大小,包括横向速度和纵向速度,横向速度和纵向速度可以同时设置,单位是px/s。勾选”相对”是相对于图像或背景原有速度。这里的移动速度是指图形内部画布的移动速度,该图形对应的对象在场景中的位移不变。通过该动作可以达到图片轮播移动的效果。

执行动画:该动作设置对象实例开始执行动画资源列表里的某个动画效果。比如角色碰到怪物时,角色变成透明闪动几下。

上一个场景:转到先前的场景。需要在场景属性设置栏内指定当前场景的上一个场景。不然可能会出错。

下一个场景:切换到下一个场景。同样需要在场景属性设置栏内指定当前场景的下一个场景。不然可能会出错。

重启场景:当前场景会重新开始。

跳转至另一个场景:使用该动作你可以从当前场景切换到一个指定的场景。

检查上一个场景:这个动作测试是否有上一个场景。如果有就执行下一个动作。

检查下一个场景:这个动作测试是否有下一个场景。如果有就执行下一个动作。

设置视图跟随:这个动作类似场景视图里的跟随视图对象设置。可以让场景中的视图跟随对象移动。

设置暂停场景:通过该动作指定游戏暂停时显示的场景。

设置当前场景背景:通过该动作可以动态设置当前场景的背景。

添加实例到滚轴容器:该动作和滚轴容器相关,使用这个动作可以将指定的对象实例放到滚轴容器指定单元格内。“应用至”选项可以选择唯一性标识(对应一个滚轴容器实例),或者是滚轴容器(可能有多个滚轴容器实例)。

将实例移出滚轴容器:使用该动作可以将指定的对象实例从指定的滚轴容器中取出。



主要2

该套动作主要是一些定时,声音,文本的处理。主要包括时间、声音、文本、游戏四部分。


首先是有关时间的几个动作。

设置时间轴:这个动作你将一个时间轴赋予给对象实例。你要定义时间轴和时间轴的开始位置(从0开始)。可以设置时间轴是否立刻开始执行或者暂不开始。勾选循环表示循环执行时间轴,会看到每隔指定时间做相同的动作。

设置时间轴位置:这个动作可以改变当前使用的时间轴的位置。用来跳过时间轴的某个部分。关于“相对”: 勾选就是相对之前的位置开始,不勾选就是绝对从这个位置开始。

设置时间轴速度:动态改变时间轴的执行速度。例如时间轴A每隔1秒执行动作序列1,如果设置时间轴A的速度为50%,时间轴A则会每隔2秒执行动作序列1。勾选相对则是相对之前的速度改变。

开始时间轴:开始执行指定的对象实例或者场景中的时间轴。

停止时间轴:停止执行指定的对象实例或者场景中的时间轴。

设置闹钟:该动作给指定对象或场景设置一个计时器。可以自定义计时器的名字,以及计时器的历时时间。在经过指定的时间后,对象实例或者场景将接收到相应的闹钟事件

取消闹钟:该动作是关闭对象实例或场景中指定的闹钟,关闭后该闹钟的事件就不会发生。


下面一组是游戏中有关声音的动作。

播放声音:使用这个动作可以播放一个先前加到声音资源列表中的声音。你可以指定播放声音的方式,只播放一次或循环播放。支持多个声音同时播放。

停止声音:停止播放指定的声音。可以指定是某一个声音,或者是全部音效,或者是背景音乐,或者是全部声音。如果在声音资源窗口里勾选了“是背景音乐吗”则该声音为背景音乐,否则为音效。

检查声音:检查指定的声音是否在播放。如果正在播放那么执行下一个动作。否则就跳过执行下个动作而执行后面的动作。如果勾选“不在播放“得到相反的效果。比如你可以用这个动作来测试是否有背景音乐正在播放,没有的话就播放一个新的背景音乐。

静音:停止播放游戏中所有音乐。

取消静音:恢复游戏中所有音乐的播放。

检查静音:检查当前游戏中是否已经停止了所有声音的播放,如果是,执行下一个动作。

设置音量:该动作改变游戏中声音播放的音量大小。0代表静音,1代表最大,可以在0-1之间设置。勾选“相对”,表示相对之前设置的音量。

创建文本:在场景指定位置显示指定文本实例。首先选择类型(文本资源树中的某个文本),如果当前没有文本资源点击添加按钮添加一个文本资源。然后指定唯一性标识,即文本中的一个实例(如果该文本有多个实例)。你可以指定该文本显示在哪个图层。最后指定文本的显示位置。如果勾选相对则是相对应用对象的坐标位置。

设置文本内容:通过该动作动态设置指定文本的显示内容。应用至选项:可以指定是某个对象上的文本或者是某个文本实例(唯一性标识)或者是某类文本(文本,可能有多个实例)。需要特别注意文本的内容需要整个用英文状态下的引号包起来,文本的内容实质上是一串字符串。文本内容里可以有变量,显示文本内容时变量显示为变量当前的值。

追加文本内容:该动作在指定文本原有内容后面添加新的内容。注意是追加,不是替换。区别于设置文本内容。

设置文本颜色:该动作将文本字体设置为指定的颜色。例如游戏中倒计时的显示,大于20秒前时间显示为白色字体,等于或小于20秒时显示为红色字体。

设置字体大小:该动作将文本字体设置为指定的大小。


下面是一组关于游戏的动作介绍。

重启游戏:用此动作重新开始游戏。

结束游戏:用此动作退出游戏,游戏进入结束场景(在全局设置中设置)。

暂停游戏:这个动作将正在进行的游戏暂停,游戏进入暂停场景(在全局设置中设置)。

恢复游戏:与暂停游戏相对应,继续暂停前的游戏进行。

检查暂停:检查当前游戏是否已经暂停,如果是,执行下一个动作。



控制

所谓控制,就是指有一些动作可以用于控制是否执行某些动作。大多数这些动作都会问一个问题,例如一个位置是否为空。当答案是对的时候(真)则执行下一个动作,否则动作将被跳过不执行。假如你想要执行多个动作,则需要由在动作两边放置起始及结束区块(三角形符号那种,在C语言中相当于用来指定区域的大括号“{}”)。你也可以用else来执行当条件为假的时候的动作。

该组动作中需要一些解释词汇

表达式:可以是具体的数字(如0,1),或者是变量(如score),或者是变量的表达式(random(2),表示取0~2之间的随机数,以及random_range(10,20)表示取10~20之间的随机数)。

上限:不超过。可以是具体的数字,或者变量,或者变量的表达式。

下限:不低于。可以是具体的数字,或者变量,或者变量的表达式。

:可以是具体的数字,或者变量,或者变量的表达式。


下面开始介绍有关问题的动作。主要包括问题动作块变量属性代码五部分内容。

检查是否为空:若当前的实例在指定位置不与物体产生碰撞,则问题的返回值“真”。你可以指出该位置为相对或绝对。你也可以指出碰撞的是只有考虑碰撞固态物体还是全部的物体,此动作通常用于检查物体实例是否可以移到一特殊的位置上而不和其它物体实例重叠或者碰撞。如果勾选“不为空”,则实例在指定位置与物体产生碰撞时返回值为“真”。

检查对象:若在指定的位置上存在一指定的某类对象,则其返回值为真。被检查的对象范围可以是整个图片区域(默认),也可以精确到碰撞区域(物理形状)。如果勾选“不存在对象”,即在指定位置上不存在指定的某类对象时返回值为真。

测试实例的个数:你先指定一物体和一数值。假如当前物体的实例数量等于指定数值时,则返回值为“真”。通常用来检查一个物体在房间上的实例数目是否为0,如果是,就结束当前关卡或者游戏。

测试几率:你先指定一个数值,例如为n。那么,下一动作或动作块的执行概率则为n分之一。也就是按概率来执行动作。n越大,下一动作执行的概率越小。如果为1.5,则概率为三分之二。如果少于1,就没意义了。如果勾选“不执行几率”,表示下一个动作或动作块不执行的概率为n分之一。

检查问题:你指定一个问题,用一个对话框显示给玩家,上面有“是”和“否”的按钮,当玩家解答为是时此动作的结果是“真”。如果勾选“回答为否时”,当玩家解答为否时执行下一个动作。

比较俩个值:你可以输入一个表达式,如果表达式结果为真,则将执行下一个动作。这里表达式可以是一个确定的数字,也可以是一个变量或者变量组合的表达式。

是否在俩个值之间:判断一个表达式是否在俩个值之间。如果是,则将执行下一个动作。这里的表达式、上限、下限可以是一个具体数字、变量或者变量组合的表达式。如果勾选“不在上下限之间”,则是判断一个表达式是否不在俩个值之间。

比较宽度:把当前实例的宽度与指定的数值或变量表达式比较。若为真,执行下一个动作。

比较高度:把当前实例的高度与指定的数值或变量表达式比较。若为真,执行下一个动作。

比较横坐标:把当前实例在场景中的位置横坐标与指定的数值或变量表达式比较。若为真,执行下一个动作。

比较纵坐标:把当前实例在场景中的位置纵坐标与指定的数值或变量表达式比较。若为真,执行下一个动作。

比较旋转角度:把当前实例在场景中的旋转角度与指定的数值或变量表达式比较。若为真,执行下一个动作。

组合条件:当下一个动作执行有多个条件前提时,可以选择组合条件。将之前的条件组合起来。

  • 条件A&&条件B:表示A和B同时满足时,结果为真。
  • 条件A ||条件B:表示A或者B其中之一满足时,结果为真。
  • ()左右括号:控制多个条件之间的组合逻辑。

区块开始:指出动作块的开始位置。相当于C语言中的“{”。

区块结束:指出动作块的结束位置。相当于C语言中的“}”。

否则:当问题的结果为其他情况时,执行在其它(else)动作后面跟着的动作或动作块。

退出此事件:当遇到此动作时,原先在此事件的动作不再进一步执行,通常使用于一个问题之后,例如,当一个位置是空的,什么也不需要被执行,所以我们跳出事件。

循环:此动作用于重复执行下一个动作或动作块,你只要指定重复次数。

阻止事件往下传递:当遇到此动作时,原先在此事件的动作不会传播到后面执行。

例如
事件1:给场景A添加“鼠标按下”事件,执行实例B转换为实例C动作;事件2:给场景A中的音乐按钮添加“鼠标按下”事件,执行声音停止动作。若事件1中未添加“阻止事件传播动作”,就会出现按下音乐按钮时执行实例B转换为实例C的效果。一般用于添加相同的事件时,如果事件响应区域有重叠,在父级响应区域的事件中加入阻止事件传播动作。

执行代码:当你添加该动作的时候,会弹出一个窗体,你可以在上面写入要执行的代码。里面可以是一些函数的调用或者是零散的代码。这只用于使用些较简单的代码。如果比较复杂的,建议用脚本。

执行脚本:脚本一般写一些较为复杂的代码,可以保存下来复用,方便查找修改。在动作库这个动作你可以调用你编写好的脚本资源,你要定义要调用的脚本和最多5个参数。如果脚本的参数过多,可以用代码调用。

当你创建了一个脚本,你想给它加上参数(比如决定什么时候使用脚本动作,或者什么时候 将这段脚本作为函数进行调用,又或者是这段脚本自己。)这些参数将存储在变量参数0、 参数1、参数2、参数3、参数4。所以最多会有5个参数。当然你也可以使用 参数[0] 的方式。

脚本同样可以返回一个值,所以也可以用在表达式中。使用脚本就像使用函数一样.如,写下脚本名字并添加上所需要的参数(argument)传入。

执行动作序列:动作序列是一系列动作的集合,可以保存下来复用。可以为指定对象实例执行之前保存的指定的动作序列。

设置变量:你可以定义自己需要的变量及其初始值。变量可以是私有的(属于某个对象),或者是公有的(属于场景或者整个游戏)。当你勾选了“相对”的时候,会相对于当前该变量的值进行改变。要注意,该变量之前必须有值。

测试变量:这动作检测如果某一指定的变量为指定的值的时候,则返回真。你也可以设置是大于或等于指定的值。

展示变量:使用此一动作,你可以在屏幕指定的位置上画出变量的数值,此功能常用于在屏幕上画出当前分数。你也可以选择是否在变量前面显示说明文字。变量的显示值是随变量值的改变实时更新的。所以自动更新选项后面我们会去掉。

切换变量的值:通过这个动作若变量值为非0(true)时,切换为0(false).若变量值为0时(false)时,则切换为非0(true)。

保存游戏变量:通过该动作可以保存指定的游戏变量到本地(浏览器内存中)或者服务器上。注意这里指的游戏变量(全局变量),属于场景或者对象的变量是不可以在这里保存的。该动作连同后面三个动作主要是用来实现一些基础的存档功能。

读取游戏变量:通过该动作可以从指定位置(本地或者服务器)读取指定的游戏变量。

保存所有设置自动保存的变量:通过该动作批量保存在全局设置事件管理中已设置自动保存的全局变量。

读取所有设置自动保存的变量:通过该动作批量读取在全局设置事件管理中已设置自动保存的全局变量。

设置显示状态:此动作可实现在场景中显示或隐藏某个物体。这个物体可以是一类对象,或者是某个对象实例,或者是整个图层,或者是某个滚轴容器,或者是文本。

设置透明度:这个动作可以改变指定物体的透明度。

发送消息:通过该动作定义给某个物体或场景发送的讯息。如果应用至场景则所有对象都能接收到该信息。然后在消息事件才可以监听到该消息。你可以定义消息的名称,然后根据需要给消息加上参数。

开始监听终端运动:该动作以指定的周期频率监测移动设备端的运动。通过该动作启动重力感应作用。

取消监听终端运动:取消对移动设备端的运动检测,关闭游戏的重力感应作用。



分数

大多数游戏里,都会有相应的分数和金币数。并且一些游戏还给游戏角色一定数量的生命机会。最后,游戏角色还可以有生命值、经验值。接下来的动作会很容易的实现游戏角色的经验值,金币数,生命数和生命值。还有有的时候会有等级的设置。

设置分数:使用该动作来改变游戏的分数。你可以为分数设置一个确定的值。但一般都会勾选“相对”复选框,在原来的分数上增减。

测试分数:这是一个控制动作。当分数等于、大于或者小于指定的数值时,如果符合条件则返回为真。通常用来测试游戏得到多少分以上给予奖励等。

展示分数:在指定位置显示分数值和现在在分数值前面的说明文字。如果没有指定说明文字则只显示分数值。

展示排行榜:通过该动作在界面上展示排行榜窗口。在使用该动作之前,需要在其他资源里添加一个排行榜。

添加数据到排行榜:将当前分数值更新到排行榜总分中。如果没有该数据添加,排行榜里分数为空。这里的分数可以是通过分数动作定义的分数,也可以是自己用表达式自定义分数组成。勾选“展示排行榜”则传数据的同时在界面中显示排行榜。

设置生命数:设置生命数。跟分数设置类似。仅是代表的东西不同。生命数代表的是游戏角色的生命机会。勾选“相对之前的生命数”会在原生命数上增减。

测试生命数:如果生命数等于、小于或大于某个数值时。

展示生命数:以文本的形式在指定位置展示当前生命数的数目。

展示生命数图片:这个动作以图片的方式来显示生命数。相当于有几次玩的机会,一般游戏中会显示X5这样的字样表示你还有5次机会玩游戏,死亡一次减少一次机会。可以用小图形来显示,比如一个爱心代表一个机会,5个机会就是五个爱心。你可以指定显示图片的位置,显示的图片以及图片之间的间隔。

设置生命值:生命值即游戏中所说的血量。通过该动作指定生命值的数值。勾选“相对于之前的生命值”会在原生命值上增减。

测试生命值:如果生命值小于、等于或大于某个值时。

设置金币数:设置当前游戏中获得的金币数量。勾选“相对金币数”,在原金币数上增减。

测试金币数:如果游戏中的金币数量小于、等于或者大于某个值。

展示金币数:在指定位置以文本的形式展示金币的数值。

设置经验值:设置游戏中的经验值。如果勾选“相对经验值”则在原经验值基础上增减。经验值是积累到一定数量就可以说提升等级的计算方法,用于提高升级者的等级或能力。注意游戏中的分数、生命数、金币数、等级、经验值都只能设置一个。如果需要多个不同的可以自己定义变量模拟。

测试经验值:如果游戏中的经验值小于、等于或大于某个值时。例如经验值每增加1000,升1级。

展示经验值:以文本的形式在指定位置展示当前游戏的经验值。

设置等级:设置游戏中的等级,如果勾选“相对等级”,则在原等级上增减。

测试等级: 如果游戏中的等级小于、等于或大于某个值时。

展示等级: 在指定位置以文本的形式展示当前游戏的等级值。



物理

该组动作主要介绍和物理运动相关的动作。包括物理关节俩大类。

设置引力:用此动作可以创建物体的引力力效果。你指定一个方向(0°到360°之间)和引力的大小。指定方向上的引力会影响对象实例当前的运动。通常会设定方向为垂直向下(-90°或270°),设定引力为98N。如果勾选“相对”复选框将在当前引力的值和方向上增加。和实际的物理世界不同,引力的方向不一定是垂直向下的你可以根据需要设置任意方向。

设置摩擦力:摩擦使实例在运动中的速度缓慢减下来。在运动中速度逐渐递减直到减为0。摩擦力通常设置通常比较小(如0.2)。如果勾选相对,摩擦力会在原有基础上增减。

设置是否为感应器:设为感应器的物体能感知到是否有其他物体经过自身,而不会和其他物体产生碰撞的效果。在游戏中配合“经过/离开物体”事件,可以实现很多你想要的效果。

例如
像素鸟游戏中像素鸟碰到柱子,将其中一方设为感应器,在像素鸟经过柱子时判断游戏失败。这里如果未设置感应器,当像素鸟碰到柱子时,二者都会因为碰撞产生作用力发生位移。

对物体施力:给物体施加一个指定方向上指定大小的力。方式和设置速度类似,可以是在水平方向和垂直方向上分别给一个指定大小的力,二者合成一个合力作用物体;也可以设置是某个角度(0°到360°)上的一个力;或者是朝向一个指定物体方向上的力;还可以是朝向鼠标点击方向上的力。对物体施加的力度越大,物体获得的速度越大,移动越快。

控制物体旋转:该动作设置物体的旋转属性。根据需要设置是否旋转。如果旋转,可以有倆种方式旋转。一种是直接通过设置旋转速度使物体按照这个速度旋转。如果速度勾选“相对”,会在原有速度基础上增减。另外一种方式是通过给物体是施加一个力矩从而使物体获得速度而旋转。力矩在物理学中的定义是作用力使物体绕着转动轴或支点转动的趋向。力矩能够使物体改变其旋转运动。物体旋转可能会使物体发生位移变化,如果不希望发生移动请勾选“不移动”。

设置引力倍数:改变物体受到的引力倍数大小。默认为1,物体受到的引力与设置的引力相同。如果设置为0,表示不受引力影响。物体受到的引力大小等于设置的引力乘以引力倍数。

面向对象:使一个物体按照设置面向另一个物体。这个动作比较抽象。这里通过例子来说明。

例如:一个太空人站在旋转的星球上,太空人无论是运动到星球上方还是左方或者任何位置,始终都是脚站在星球上,即脚朝向星球。在这个动作中,首先设置太空人朝向星球。朝向的方式为对象(另一种方式为鼠标,原理是相同的,只是将朝向目标换成了鼠标)。接下来需要设置几个参数。首先是修正角度。如果图片上是一张站立的太空人,这时修正角度设置为默认0。将太空人图片放在星球的正左方,这时图片需要逆时针旋转90°才是朝向对象的。所以修正角度设置为90°。然后是角度范围的设置。太空人在星球旋转360方向上都是面向星球的,所以角度范围使用默认(最小角度0°,最大角度360°)。如果只希望在面向的目标移动的90°(从目标上方到目标右方)范围内发生面向对象效果,将角度范围设置为(0°-90°)。

吸引至:通过给予一个指定的力将一物体吸引至指定的位置或者是另一个指定的物体上。


下面介绍有关物理中运动关节的几个动作。关节可以将俩个对象关联起来。

创建定距离关节:在两个对象间产生一个固定距离的关节链接,关节两端的对象是可以旋转的。无需自己设置距离,自动生成中间的距离。

创建绳子关节:这个动作是将两个对象以绳子的方式链接起来,可移动旋转。也可将其中一个设置为实体,让另一个对象移动旋转。

创建活塞关节:这个动作是将两个对象链接后只移动不旋转。俩个对象可以像活塞一样运动。

创建焊接关节:这个动作让一个对象链接到另一个对象上,俩个对象相对静止。

创建只旋转关节:两个对象在指定点的位置产生相对旋转的关节。例如,当设置对象一使用旋转链接到对象二,则对象二就会相对于对象一旋转,您所设置的转速则为对象二相对于对象一的转速。

取消关节:断开指定物体上具有的关节链接。



其他

除了以上动作,还有一些其他动作,主要包括消息分享终端运动打开链接四部分。下面是具体的介绍:

发送消息:通过该动作定义给某个物体或场景发送的讯息。如果应用至场景则所有对象都能接收到该信息。然后在消息事件才可以监听到该消息。你可以定义消息的名称,然后根据需要给消息加上参数。

分享至微博:通过该动作你可以把这个游戏的链接、游戏描述、游戏图片等分享到连接的微博中去。微博appkey为微博分享的出处,游戏链接为分享的链接地址,游戏描述即为分享的文本内容,分享自为分享内容中”@微博用户“,游戏图片为微博中分享的图片(最多可以设置6张图片)。

设置微信分享:设置分享到微信平台的内容。微信appid是分享给微信好友的必填项。游戏图片同分享至微博,为分享的图片(暂时支持一张),游戏描述为分享的内容文本。

显示微信分享指示图:在微信中运行游戏,点击游戏界面上的微信分享按钮,会在界面右上角出现指示微信横向菜单上的分享按钮图片。需要在该动作中设置好指示图片和位置。

当前浏览器是微信浏览器吗?:判断当前游戏是否在微信(自带的浏览器)上运行,该动作主要用于设置微信分享和显示微信分享指示图前的判断。

开始监听终端运动:该动作以指定的周期频率监测移动设备端的运动。通过该动作启动重力感应作用。

取消监听终端运动:取消对移动设备端的运动检测,关闭游戏的重力感应作用。

打开连接:该动作是执行打开你指定的链接,你可以选择是否在新窗口里打开。


事件管理

事件驱动机制是GameMei的主要特点,通过集成的逻辑块代替繁琐的编程语言。对象(这里是广义上的对象)作为游戏逻辑的载体,一个游戏少则十几个对象资源,多则上百个,通过点开每个对象查看编辑事件逻辑非常麻烦。所以GameMei提供了“事件管理”模块,集成每个场景的所有事件动作,整个游戏的逻辑一目了然。下面是关于事件管理的详细介绍。

点击场景画布右上方的“事件管理”按钮,就能进入事件管理编辑窗口,如下:



事件管理窗口分为工具栏编辑区两部分。在工具栏上列出了事件管理所需要用到的功能:

  • 保存当前的改动
  • 刷新整个事件列表
  • 撤消/重做上一步操作
  • 展开/收起所有的事件列表
  • 复制/剪切/粘贴事件或动作
  • 删除变量/事件/动作

通过新建按钮可以新建事件/时刻/全局变量/场景变量。新建事件首先需要选择添加事件的对象或文本或场景。添加时刻同样也需要选择添加时刻的时间轴,如果当前只有一个时间轴直接在该时间轴下添加时刻。

在新建按钮右边可以点击切换场景。不同场景的场景事件和场景变量不同。在工具栏最右侧是搜索框,输入关键字即可搜索到你想找到的内容。点击搜索图标可以选择精确分类搜索,搜索所有包含关键字的资源或者事件或者动作或者变量。

编辑区以树的形式列出了当前游戏中所有的全局变量、当前场景事件动作、所有对象文本及其事件动作、所有时间轴及其相应的动作。编辑区为方便用户区别,用了不同的背景色块表示不同类型的资源。

单击任何一种资源前的展开收起按钮或者双击资源,即可打开该资源查看其下的事件,同样方式点击展开事件查看该事件下的动作。再次添加按钮或双击类目即可收起类目。右击类目会有相应的编辑表单,右击资源在表单中可以为该资源添加事件(如果是时间轴资源可以添加时刻),为该资源添加注释,可以复制事件粘贴在该资源下。右击事件可以编辑/删除事件,编辑事件的动作序列,复制剪切粘贴动作事件,给事件添加注释,禁用事件。动作的右击表单可以选择编辑、删除动作,复制剪切粘贴动作,给动作添加注释,禁用该动作。复制、剪切、粘贴你也可以使用快捷键“Ctrl+C”,“Crtl+X”,“Ctrl+V”进行相应操作。需要注意的是粘贴的位置是在你当前选中类目的下方。



其他窗口介绍

文件管理

游戏中所使用的素材,包括各种图片声音字体都需要通过文件管理上传到GameMei中,然后再转换为资源才能在游戏项目中使用。这里不建议游戏中使用中文字体(文件内存大影响整个游戏加载速度)。添加资源可以通过文件管理单个上传素材添加,也可以批量导入素材批量转换为各种资源。

点击导航工具栏上的文件管理按钮,打开文件管理窗口,如下:



可以在我的项目素材标签下,上传管理自己的项目素材。素材库是GameMei提供的一些素材图片和声音给用户参考使用。如果使用的是素材库中的图片,会显示在二级标签“引用素材”下,所有引用素材在缩略图模式下上方会有一个应用标记。对于素材在窗口右上角提供倆种预览方式:缩略图模式和列表模式,根据用户习惯自由切换。

在一级标签下方为文件管理的工具栏。点击新建文件夹,可以将同类型的素材放在一个文件夹中方便管理。点击从本地开始上传素材,在打开的导入文件窗口,点击虚线框内的浏览按钮打开本地资源窗口,从电脑在中找到对应的素材选中(可以选中多个)后打开,或者从电脑中选中直接拖拽到虚线框内,素材会显示在待上传列表中,点击“导入文件”即可迅速导入这些文件。如果在上传文件前打开了一个文件夹,素材即会被上传到该文件夹中。点击即可删除选中的文件或整个文件夹。在“更多”下拉选单中,可以给选中的文件或文件夹重命名,复制/剪切选中的文件或文件夹到指定的位置。文件管理的素材支持批量操作。倆种方式进行批量选中。勾选工具栏最左侧的“已选中0个文件”,会选中当前界面中所有文件(夹)。再次点击某个文件,会取消选中该文件。你也可以按住“Ctrl”键的同时单击选中多个文件。然后进行相应的操作即可。

前面有介绍过,这里上传的素材还不能直接用于游戏项目中,需要先转换为对应资源。选择若干个同类型的素材文件,点击工具栏的“同步生成”按钮,在选单中选择对应的资源(对象、场景、声音、字体)。在转换文件夹内的素材时,会弹出窗口提示是否连同文件夹同步生成,根据需要是否把文件结构保留到资源列表中。该种方式通常用于批量转换素材。另外一种添加单个资源的方式在资源介绍各类资源都有添加方法的介绍。



GameMei系统设置

根据用户使用习惯提供了以下关于使用GameMei系统的设置:



该设置对当前账户下所有项目都适用

设置自动保存:每间隔一段时间自动保存当前项目的改动,以防止用户忘记保存丢失改动或者意外退出浏览器导致改动数据丢失。默认每隔20分钟自动保存一次。你可以根据自己需要调整或者关闭自动保存,由自己手动保存。

自动保存正在编辑的脚本:在脚本编辑器中编辑脚本时,同样可以设置每过一段时间自动保存当前脚本。

每天自动新建快照(有改动时):快照就是将当前状态的项目作为一个历史版本记录下来。在项目管理中可以查看所有的快照记录,可以选择回滚项目到指定快照版本。在游戏制作中建立快照很重要,制作游戏出错过多时可以选择回滚到之前的版本重新开始,克隆项目也是克隆该项目的最新快照版本。对于很多用户可能会忘记新建快照,如果在这里勾选每天自动新建快照,系统会每天自动为各个有改动的项目分别新建快照。

点选添加资源:如果勾选这里的选项,在资源树中添加资源时,鼠标会变为十字状态,点击场景画布即可将资源添加到场景中。当前这里只针对可以添加到场景中的资源。默认是勾选状态,用户可以根据自动的操作习惯选择。

鼠标滚轮缩放:如果勾选这里的选项,说明你可以通过滑动滚轮来缩放图片或背景的大小尺寸。如果不勾选,滑动滚轮时,图片或背景没有任何变化。

在系统设置下方列出了GameMei中常用的操作快捷键。具体介绍列表中有说明,这里就不重复说明了。



全局属性设置

全局属性是一个项目的基本属性,例如标题名称、图标,发布设置等等。

资源树上方在项目名称右侧有一个设置按钮,点击该按钮进入该项目的全局属性设置窗口,如下:



全局属性目前分为三栏:游戏、APK、变量。

游戏标签通常设置游戏的一些基础属性。具体如下:

游戏标题:指的是通过浏览器打开游戏,浏览器标签页上的显示内容。

游戏图标:当游戏在浏览器中打开,图标显示在浏览器标签页上。该图标还可作为微信分享的默认图片,如果是在ios设备中进行微信分享,建议在这里使用jpg格式的图片。

游戏描述:对于游戏的基本介绍信息。在对游戏进行设置微信分享时作为分享的默认内容。

入口场景即为游戏开始运行时的场景。

结束场景为游戏结束后的场景(对应动作库游戏结束动作)。

暂停场景为游戏暂停时显示的场景(对应动作库游戏暂停动作)。

屏幕方向设置游戏在设备中的显示方向。可以根据需要选择横屏、竖屏、自适应、横屏反转、竖屏反转。

屏幕背景可以选择是保持游戏原比例尺寸显示(并且设置屏幕空白处填充颜色),或者是全屏显示游戏(按照屏幕尺寸自动拉伸游戏画面)。

渲染器是游戏画面的实现方法,DOM是以面向对象方式描述的文档模型,定义了表示和修改文档所需的对象、这些对象的行为和属性以及这些对象之间的关系。Canvas通过 JavaScript 来绘制 2D 图形。Canvas 是逐像素进行渲染的。Canvas渲染器的效率相对较高。大多数情况下看不出区别。在游戏预览界面中还可以选择,是否显示fps(每秒钟填充图像的帧数,fps越多显示动作就越流畅,这里为32),是否显示物理调整(显示当前游戏关卡的物理模型),是否去除水印。GMX为HTML5新底层,选择该渲染器使得html5游戏运行更为流畅。

速度检测次数以及位置检测次数:在检测物理碰撞过程中,需要做多次检测以提高精度,但是这样在手机上就会有一些性能损失。现在把控制检测的次数开放给用户自行调试。速度检测次数(>=1,缺省是8)。位置检测次数(>=1,缺省是8)并且加入说明和提示。如果在手机上运行,建议设置为速度检测次数:8,位置检测次数4。如果仍觉得有卡顿,把它们都设置为1。

显示fps显示物理调试:都是在游戏调试的页面设置的显示项。

去除水印:默认在游戏发布后会在游戏上印有GameMei官方的水印。在这里可以勾选去除。

APK标签下是游戏打包到安卓平台的一些基本设置。

apk加载图片在安卓手机中启动游戏后的加载画面。

游戏图标当游戏作为APK安装到安卓手机上时,图标先死为该游戏应用程序的图标。注意游戏图标只支持png格式的图片。

游戏安装程序名称安装在手机中的应用名称。

广告在安卓手机上嵌入广告设置。首先选择广告联盟代码,是多盟、百度还是安卓。后俩个即将支持上线。

变量:设置查看游戏中所有的全局变量。在事件管理中也可以查看添加。在GameMei中变量可以由某个对象私有(属于某个对象),或者属于某个场景,或者属于整个游戏。属于整个游戏的变量即全局变量。全局变量添加编辑方式基本同其他变量,唯一的区别在于全局变量可以设置是否自动保存。“自动保存”是指在游戏退出后下次打开游戏该变量值依旧存在。通常用于设置游戏的金币数量,人物的等级等。静态的设置方法是在全局变量列表右侧点击方块,设置为自动保存。再次点击取消自动保存。动态的设置方法参照动作库保存/读取变量,保存/读取所有设置自动保存的变量。



对象行为

对象行为给添加行为的对象加上对应的事件动作逻辑。添加的行为也可以从对象行为窗口去除。目前GameMei中支持倆种行为:物理和八个方向。后期会不断扩展。

下面介绍对象行为窗口。在该窗口中列出了当前该对象所具有的所有行为。可以从对象窗口点击对象行为按钮打开,也可以在场景右侧对象属性中显示。行为可以通过窗口上方工具栏对应按钮进行添加、编辑、删除。



物理

物理属性模拟真实世界中对象的物理属性。具有物理行为的对象我们这里称为物理对象。在选择行为的窗口选择物理行为,即可编辑该对象的物理属性,编辑窗口如下:



引力倍数:默认物理对象会受到引力影响使物体加速下落。默认引力为100(Y轴上),在场景属性物理栏中有设置。引力倍数是物理对象所受到引力影响倍数。如果引力倍数为0,则物理对象不受引力影响,如果引力倍数为2,则物理对象将受到2倍引力影响。

表面弹性:弹性(又称恢复原状或反弹力)影响物理对象的自身弹力大小。具有高弹性的物体撞击地面会反弹很高,没有弹性的物体则不会反弹。0 表示完全没有弹性(像一块岩石),数值越大表面弹性越大(比如一个橡胶球),大于1则会给碰撞物体加速。

摩擦力:俩个相互接触的物体,当它们发生相对运动或具有相对运动趋势时,在接触面上产生阻碍运动的力。摩擦力影响阻碍作用的大小,无摩擦就好似在冰上滑行,高摩擦力就好似沿着泥路拖砖块。物理对象的摩擦系数由0到1设置,越大摩擦力就越大。

密度:密度用于确定物体的质量,质量决定物体移动的难易度。(注意这里所说的是质量而不是重量,重量取决于物体的引力影响,在0引力影响下物体任然具有质量,具有很大质量的物体依旧很难移动)。物体的质量是由它的密度乘以其碰撞形状的面积来确定。所以一个大的物体比小物体具有更大的质量,在他们密度相同时。如果有一个混凝土砖块,比起一个泡沫块你会给它更高的密度。

是固定物体吗:固定物体在场景中是绝对静止的,例如地面或者墙壁。

与固定物体碰撞:可以与固定物体发生碰撞作用,碰撞的物体产生与真实世界相同的碰撞效果。

不旋转:物体受到外力作用比如撞击自身不会发生角度变化。

不移动:物体不发生位移变化。

是子弹吗:是子弹的物体会在出场景后销毁。

是感应器吗:感应器不会与其他物体发生碰撞效果,在动作设置是否为感应器中可以动态设置感应器。感应器可以感知是否有其他物体经过自身。



八个方向

如果你想让一个物体(对象)在场景中向上、向下、向左、向右以及斜线上移动或者跳跃,你可以自定义按键控制物体的运动。这样的自定义操作经常用于跳跃类的游戏中。

仅移动类游戏可以根据需要,定义对象向4个方向运动或者只是向左右、只是向上下两个方向运动,跳跃类游戏可以用于单向运动的游戏(例如天天跑酷),也可以用于双向运动的游戏(例如超级玛丽)。在选择行为的窗口选择八个方向行为,即可编辑该对象的八个方向,编辑窗口如下:



窗口分为俩栏,左侧是各个方向对象图形的设置预览,可以直接双击某个方块选择该方向上的图形。或者在右侧属性设置。

右侧是当前八个方向的相关属性设置。GameMei提供“移动类型”和“移动+跳跃类型”的八个方向行为。

移动类型即行为对象按照鼠标点选方向或者按键控制移动,每操控一下在指定方向上移动一小段距离。可以参照刀雄戏中角色的移动行为。



移动+跳跃类型就是常见的上下跳跃类游戏中的行为,角色可以站立(向左或向右侧立)不动,向左向右移动,向上向下跳跃,或者往斜线方向跳跃,下蹲(通常是在行进过程中遇到障碍物选择下蹲避开)。

行为的操控可以有倆种方式,键盘按键操控和鼠标点击操控。选择键盘方式需要在属性栏中定义各个方向上对应的按键。鼠标方式不需要定义,会按照鼠标点击方向智能判断行为方向。方向设置按照用户自己自定选择。在属性框内还可以根据需要,设置各个方向上的运动速度。GameMei八个方向行为暂未支持,会在近期支持。



帧动画

对象的图形通常是会动的。GameMei提供倆种动态图片编辑方式。一种是关键帧动画(一张长带图中将对象的所有动作图像一一排列),另外一种是序列帧动画(将动作图片一一导入按照一定顺序播放,每个动作图片就是图形的一帧)。打开对象编辑窗口,点击图形工具栏帧动画按钮,即可进入帧动画编辑窗口。在下面分别来介绍:



关键帧动画



如果在图形中上传如上这张预览图,包括了五种不同的动作图像。这是一张长带图,需要从中选择一部分动作图像作为对象图形。

在左边你可以对子图像的选定设置参数。在图像中的矩形表示当前被选择的图像,你可以设定以下的参数:

  • 帧总数:你想要从长带图中取出的图像数目。
  • 每行帧数:你想要在每列中取出多少图像。例如,使用设定值为1你将选到一连续垂直列的图像。
  • 帧宽度:单个图像的宽度。
  • 帧高度:单个图像的高度。
  • 水平帧偏移:假如你不想要选择左上方图像,在这里你可以设定要水平地跳过多少个图像。
  • 垂直帧偏移:这里你可以设定要垂直地跳过多少图像。
  • 水平像素偏移:水平跳过指定数量(以像素为单位)的图像。
  • 垂直像素偏移:垂直跳过指定数量(以像素为单位)的图像。
  • 水平间隔:在某些长带图中,每个图像之间有空间隔开,这里你可以指定图像与图像的水平距离间隔距离(以像素为单位)。
  • 垂直间隔:图像与图像的垂直距离间隔距离。
  • 持续时间:指帧播放的速度,0.1表示一帧停留的时间。
  • 循环:在帧动画最后一帧播放后从第一帧开始重新播放,可以根据需要设置循环次数。


序列帧动画



序列帧第一帧显示为对象图形中上传的图片,如果需要修改直接双击透明预览区域修改图片。默认至少有一个帧。在预览区域下方按序列出了当前图形的所有帧。这些帧可以通过拖拽调整相互的顺序。在帧列表中按住ctrl键可以选中多个帧。每个帧下方有持续时间的设置,持续时间同关键帧动画指的是每个帧图片显示的时间,默认0.1表示每个帧持续0.1秒。

工具栏提供了如下功能:

循环:播放完最后一帧后再从第一帧开始播放,可以设置播放的次数。

添加帧:在选中帧的后面添加一个新的空白帧,点击添加帧后会弹出图片选择窗口选择当前帧的图片。在选择图片窗口你可以按住ctrl键选中多个需要的图片,确定后即可按序添加了多张对应的帧。

复制帧:将当前选中的帧复制一份并且添加在选中帧的后面。

逆转:逆转将选中的若干帧的顺序反转过来,原第一帧变为最后一帧,原最后一帧变为第一帧。

删除:删除选中的帧。

播放:预览当前的帧播放效果。



表达式编辑器

在动作中,表达式是用来计算某项参数或者从对象中提取信息。在编辑动作时,有参数设置的地方通过点击E按钮进入表达式编辑器。界面如下:



表达式可以是一个简单的数字,如0。复杂的可以是一个有运算符的式子,如(object1.x+object2.x)/2。界面上方的输入框为表达式的编辑框,在编辑框下方列出了可用的运算符。表达式按照分类列出。单击分类即可查看该分类下的表达式元素,单击元素即可在表达式输入框中加入该元素。

下面介绍表达式的各个组成元素:


数字


在表达式中简单输入数字,可以是一个整数,或者是一个小数如2.1。


文本(字符串)


在GameMei中文本看作是字符串,所以文本在表达式中需要用引号(注意是英文状态下,可以是一对单引号或双引号)包起来,如”hello”。

引号不包括在文本中,在输入框内输入”hello”,在游戏运行中该文本会展示为hello。如果文本中本身包含引号,中文输入法的引号可以直接按照普通标点符号写入文本。

如果是英文输入法的引号,分为倆种情况需要在引号前加入转译符\:1、如果文本是使用双引号包起来,内容中使用双引号需要给引号加入转译符,例如”lily said \”hello\”to lucy”。2、如果文本是使用单引号包起来,内容中使用单引号需要给引号加入转译符。

注意在使用文本动作设置文本时,可以在文本中嵌入变量或其他表达式,整个文本输入框的内容都是用引号包起来。例如”你的得分是:game.score” (这里的score是全局变量)。


运算符


在表达式中可以使用以下运算符:

  • +加
  • -减
  • ﹡乘
  •   ∕ 除
  • <小于
  • <=小于等于
  • ==等于
  • >大于
  • >=大于等于
  • % 取余,相除取余数
  • && 逻辑运算符且
  • || 逻辑运算符或。在连接比较运算中经常用到,例如”game.score<0||game.lives<0”。
  • ?:条件运算符,在表达式中测试条件。使用通常采用格式为条件?返回值为真:返回值为假。
    例如:game.score<0||game.lives<0?”Game over!”:”keep going!”
  • ^立方

系统表达式


系统表达式主要是一些数学运算以及一些有关系统的表达式。

  • 窗口高度/窗口宽度:获取窗口的尺寸大小。

  • 数学

    主要是一些常用的数学函数

  • round 将数值四舍五入为整数
  • ceil 计算大于指定数的最小整数。例如Math.ceil(1.1)=2。
  • floor 计算小于指定数的最大整数。例如Math.ceil(1.6)=1。
  • max 取得最大值。
  • min 取得最小值。
  • abs 取得绝对值。
  • sin 正弦计算。
  • cos 余弦计算。
  • tan 正切计算。
  • acos 取得反余弦值。
  • asin 取得反正弦值。
  • atan 取得反正切值。
  • exp 自然对数 e 的次方值,计算e^x。
  • pow 次方,计算Number1的Number2次幂。
  • log 获取数的自然对数值(底为e)。
  • sqrt 开平方根。

  • 数值

  • 随机数:在0和指定数字之前取一个随机数,例如random(3),在0、1、2、3中任意取一个值。
  • 指定区间随机数:在指定的数字区间内取一个整数。例如random_range(2,10)在2到10之间(包括2和10)任意取一个整数。
  • 整数:将一个浮点数或者字符串转换为整数。如果是字符串,非数字的字符放在数字之后,例如parseInt(“556roate”)返回556,如果是parseInt(“roate556”)返回无穷大。
  • 浮点数:将一个字符串或整数转换为浮点数。如果是字符串,非数字的字符放在数字之后,例如parseFloat (“50.2roate”)返回50.2,如果是parseFloat (“roate50.2”)返回无穷大。

  • 时间

    时间文本根据传入的秒数返回60进制的时间文本,例:传过来136,返回02:16。


游戏表达式


变量

变量:获取指定全局变量的值。

以下这些值都是通过动作库分数栏设置。

  • 分数:获取游戏的分数值。
  • 生命数:获取游戏的生命个数。
  • 生命值:获取游戏的生命值。
  • 金币数:获取游戏的金币数量。
  • 经验值:获取游戏的经验值。
  • 等级:获取当前的等级值。
  • 音量值:获取游戏当前的音量大小。

公式 执行公式获取指定公式的执行结果。execute_formula(formulaName, arg0, arg1, arg2),参数分别为公式名称、传入未知数1的值、传入未知数2的值、传入未知数3的值(有几个未知数对应写几个值)。用法参照其他资源公式的介绍。

鼠标 获取鼠标的横坐标和纵坐标。


参数

  • 终端横向加速度:获取终端横向加速度,仅在终端运动事件中可用。
  • 终端纵向加速度:获取终端纵向加速度,仅在终端运动事件中可用。
  • 终端Z轴加速度:获取终端Z轴加速度,仅在终端运动事件中可用。
  • 循环次数:获取当前循环次数 ,仅在循环动作的动作块中可用。

排行榜

排行榜长度:获取排行榜长度。

我的排名:获取我的排名。


场景表达式


变量

变量:获取指定场景变量的值。

属性

  • 类型:获取当前场景名称。
  • 高度:获取当前场景的高度。
  • 宽度:获取当前场景的宽度。
  • 视图横坐标:获取当前场景视图的横坐标。
  • 视图纵坐标:获取当前场景视图的纵坐标。
  • 横向引力值:获取当前场景在X方向上的引力值。场景引力在场景属性物理栏中设置。
  • 纵向引力值:获取当前场景在Y方向上的引力值。

对象表达式(包括唯一性标识、自身、与其碰撞的另一方)


变量

变量:获取对象的指定变量值。

属性

  • 类型:获取当前对象的名称。
  • 唯一性标识:获取当前对象的唯一性标识。
  • 宽度:获取当前对象图形的宽度。
  • 高度:获取当前对象图形的高度。
  • 横坐标:获取当前对象的位置横坐标。
  • 纵坐标:获取当前对象的位置纵坐标。
  • 横向速度:获取当前对象运动的X方向上速度。
  • 纵向速度:获取当前对象运动的Y方向上速度。
  • 横向缩放:获取当前对象图形在X方向上的缩放值。
  • 纵向缩放:获取当前对象图形在Y方向上的缩放值。
  • 旋转角度:获取当前对象图形的旋转角度值。
  • Z坐标:获取当前对象的Z坐标(同一图层中Z坐标越大越在上层)。
  • 文本:获取对象上的文本内容(如果在对象图形中已经添加文本)。
  • 水平镜像:判断对象是否已经水平镜像,如果是返回为真,否则为假。
  • 垂直镜像:判断对象是否已经垂直镜像,如果是返回为真,否则为假。

物理

  • 摩擦力:获取当前对象的摩擦力大小。
  • 引力缩放:获取当前对象所受引力倍数值。
  • 感应器:判断当前对象是否设置为感应器,如果是返回为真,否则为假。
  • 表面弹性:获取当前对象的表面弹性大小。
  • 旋转速度:获取当前对象的旋转速度大小。

input表达式


属性

  • 类型:获取当前输入框的名称。
  • 唯一性标识:获取当前对象的唯一性标识。
  • 值:获取当前输入框内输入的内容。
  • 宽度:获取当前输入框的宽度。
  • 高度:获取当前输入框的高度。
  • 横坐标:获取当前输入框的位置横坐标。
  • 纵坐标:获取当前输入框的位置纵坐标。
  • 旋转角度:获取当前输入框的旋转角度值。
  • 验证值:判断当前输入框内输入内容的长度是否不大于设置的长度限制。

变量

变量:获取输入框的指定变量值。




项目管理

项目管理是在GameMei中嵌入的一个独立功能模块,对当前GameMei账户中所有的项目进行统一管理。包括项目的增删改,复制项目、克隆别人的项目、项目版本快照管理等等。

在场景区上方导航工具栏上点击项目管理按钮,出现选单:新建快照、项目管理。“新建快照”是对当前有改动的项目做一个刻录,点击新建快照显示如下窗口:



在文本框内输入本次快照的备注信息,方便以后快照查找。在下方列出了本次项目改动的详情信息。

点击选单“项目管理”,浏览器会重新打开一个新的tab,进入项目管理页面,如下。



区域1:工具栏。从左向右依次介绍。

  • 后退:回退到上一个页面。功能同区域3的页面路径。不同页面路径的是只能按序逐个回退。
  • 前进:打开选中的项目或者文件夹。
  • 部署:部署指定的游戏项目,可以通过部署页面的链接访问该游戏。默认是灰色状态,首先需要单击选中一个项目。
  • 预览:预览选中的游戏项目的运行效果。
  • 重命名:给选中的项目或者文件、文件夹修改名称。也可以直接双击名称修改。
  • 删除:删除选中的项目或者文件(夹)。
  • 复制:复制选中的项目或者文件(夹)。可能会有用户通过将一个项目复制多份作为备份,在项目编辑出错过多时重新编辑。这里不建议这么做,正确的做法是通过快照的方式进行版本控制。
  • 粘贴:粘贴之前复制的项目或者文件(夹)。
  • 刷新:刷新当前整个页面,恢复到页面的默认状态。
  • 在打开一个项目后,工具栏会多出剪切、新建文件、新建文件夹、上传工具。

  • 剪切:剪切选中的文件或者文件夹。
  • 新建文件:新建一个代码文件,后缀名可以是js、html,没有后缀名默认是一个空白文件,双击文件打开文件的代码编辑器。
  • 新建文件夹:通过文件夹可以将项目中的文件分类管理。项目管理默认会将一个项目的相关文件分为俩类,一类是与游戏逻辑相关的文件,基本是代码文件。另一类是游戏的资源文件,对应GameMei中的文件管理中的资源,新建文件夹修改资源结构,在文件管理中也会同步修改。
  • 上传:上传文件到当前路径位置。
  • 在Gamemei中打开:在GameMei页面打开选中的项目。
  • 搜索:在工具栏最右侧提供一个搜素框,

区域2::显示当前名下所有的项目,在打开一个项目后,会显示该项目所有的相关文件及资源。

区域3:显示当前打开的路径,点击任何一个路径按钮即可将页面切换到该路径下。



下面介绍几个重要的功能。

权限控制

简单来说,就是将指定的项目分享给指定的人或者直接公开。分享项目的权限有倆种,克隆权限(默认)推送权限。得到克隆权限的用户可以将项目克隆到自身名下,拥有推送权限可以通过同步快照将该更改后的项目推送到原项目。

下面是权限控制的页面:



权限控制页面分为三栏(默认第三栏不显示):左栏是显示需要设置权限控制的项目,可以勾选多个进行设置。项目过多时通过上方搜索栏直接通过项目名称搜索。在中间栏进行权限的设置。在标题栏右侧选框中选择需要设置的权限,默认是克隆权限。在权限类型中,可以指定权限是私有还是公有。私有是将权限授予指定的用户,公有是授予任意用户。一般情况下都是指定用户。

点击添加按钮来指定当前权限的授予用户,会弹出第三栏用户列表。在用户列表栏中可以将常用的用户设置为GameMei联系人,点击标题栏查找用户标签即可通过用户名查找用户,点击添加按钮将该用户添加到权限授予用户列表中,点击添加联系人按钮将常用用户添加到GameMei联系人列表中。点击联系人列表的用户可以将该用户直接添加到权限授予用户中。鼠标移到用户列表上可以点击删除按钮删除不需要的用户。



快照功能

快照在前面有介绍过,一个快照即是对某个状态下项目版本的刻录。通过快照你可以让项目回到之前任何一个刻录的项目版本(即建立过的快照)。点击新建快照按钮,可以为当前选中的项目新建一个快照记录(项目有改动的情况下)。新建快照方式与前面介绍的在GameMei中新建快照一样。

在新建快照按钮右侧点击下拉按钮,出现快照选单:历史快照同步快照。在历史快照中可以查看到当前项目下建立的所有快照版本。界面如下:



窗口标题可以看到快照所属的项目,最上方显示最新建立的快照版本号,示例中为19。如果当前项目有改动且还未建立快照,会出现黄色提示框提示“当前有改动,是否保存到新快照”,点击新建快照按钮即提交改动建立新的快照,如果取消会在下次打开窗口提示。点击详情可以查看项目改动的具体信息。在下面按照建立时间列出了当前的所有快照,最上方为最近的快照。快照记录上可以看到快照编号,快照的保存信息以及建议时间和快照版本的改动详情。默认显示最近20个快照。在快照下方点击“更多快照“按钮,可以查看更多的快照记录(如果有超过20个快照的话)。

在窗口最下方有俩个按钮,点击更新至最新快照可以将项目设置为最新的快照版本(默认当前项目是最新版本),选中某个快照记录点击“更新至选中快照”,可以将项目设置为选中的快照状态下。这个操作经常用于项目制作过程中出现太多问题,可以将项目回到之前已建立过快照一个稳定版本再重新开始。所以在项目制作过程中要养成建议快照的习惯克隆是克隆当前项目的最新快照版本,如果项目有改动未提交快照,克隆的项目也是改动之前的版本。

同步快照是一个推送功能。与之前所提到的推送权限相关。拥有推送权限的用户可以将自己的快照版本推送给权限的授予者。推送成功的前提时权限授予者当前项目没有改动。如果双方都有改动,推送改动会发生冲突,会推动失败。后面GameMei会支持同步冲突解决。推送成功后,双方的最新快照版本即会同步。操作界面很简单。在同步窗口中输入同步目标的用户名,目标项目的名称。点击同步即可。



新建项目

新建一个空白项目,或者是一个模板项目。新建项目窗口默认选中“从零开始”,默认新建是一个空白项目,可以点击选择其他些游戏模板。选择好新建的项目类型,在名称栏中输入项目的名称,点击确定就新建好一个项目了。



克隆项目

将他人的项目复制一份到自己的项目下。当然前提是项目所有者授予了项目的克隆权限给你。点击克隆项目按钮,会出现如下窗口:



克隆项目窗口分为俩栏,左栏为用户列表栏,在权限控制中有介绍使用方法。通过用户列表选中克隆目标的用户名,会在右栏项目列表中列出其名下所有可克隆的项目。如果选中是自身的用户名,会看到自身名下的所有项目。克隆相当于将指定项目复制一份。在项目列表中选中需要克隆的项目,在下方项目名称输入框中默认出现与原项目相同的名称,你可以修改起一个新的名字。克隆成功后会在项目管理区域2看到克隆的项目。



发布

通过GameMei制作的游戏,所见即所得,支持多种模拟设备预览。在用户预览并对自己作品满意后,点击导航栏的发布按钮,即可进入游戏发布页面。

页面最上方,会看到如下页面。



点击“我的游戏”按钮,用户会看到自己的所有游戏作品(包括未完成作品)。点击“帮助”按钮,会为用户在浏览器中打开一个新网页并链接至GameMei论坛。用户在论坛中可获得丰富的帮助资源。点击“返回”按钮,界面会返回GameMei平台主界面。

在发布界面,用户可一键将游戏发布上线,用户可及时分享游戏网址(URL)。可点击“立刻去玩”按钮,直接在浏览器上体验制作好的游戏;或者按照下图所示,选中链接部分,将链接复制粘贴,发送给好友体验;还可以对下图最右方二维码链接进行扫描。



如下图所示,用户可以一键下载自己项目对应的HTML5网站Android安装程序。后期将逐步支持IOS安装程序、Window 8安装程序、Window Phone 8安装程序等。点击想生成应用程序的图标类型,即可生成相应可下载文件。



Gamemei还支持将游戏发布到Chrome应用市场,FireFox应用市场,UC九游,新浪微游戏,qq无线等游戏平台。使用户的作品得到迅速推广。



GameMei编程说明

GameMei游戏引擎使用的是标准Javascript作为脚本语言,所以所有的Javascript语言的功能点, 包括所有基于Javascript的库(例如jQuery),都可以无缝的融合在一起使用。 只要在index.html里面,加入需要的Javascript库的url路径即可。 同理,在GameMei里面也可以随时调用Javascript的任何函数。 具体如何操作在GameMei的脚本部分介绍。


引擎工作原理

本质上,GameMei的前端(就是那个花哨的编辑窗口)根据你的各种操作(加入图形, 设置时间轴,加入事件/动作响应等等)生成了一个对游戏的描述。在运行的时候, GameMei首先把这个游戏的抽象描述转变为Javascript代码,然后再执行这这段代码, 完成对游戏的定义。最后,根据游戏描述中的开始场景,切换到这个场景开始执行。 使用GMX(新版引擎,大大提高了渲染速度)稍微有点不同, 把描述转变为Javascript代码是在服务器端做的。当你执行预览或者发布的时候, 服务器后端根据游戏的描述,生成了游戏的Javascript代码。当你运行游戏的时候, 其实执行的是已经生成好的代码了。

再广义引申一下,其实GameMei还可以支持各种语言的各种游戏引擎,例如Java语言的libGDX, Javascript的cocos2d-js,C++语言的cocos2d-x等等。(透露一下,cocos2d-js版的支持已经内测了, 3D版的开始评估了)。如果希望学习对GameMei编程,可以通过学习这些生成的代码, 深入了解GameMei的各种机制。


示例

以示例项目像素鸟为例,点击预览,然后点击全屏查看:



在调试窗口>源代码窗口的左侧可以看到(no domain)中有一个类似sce_1.js的源代码文件。 这个就是游戏自动生成的Javascript代码,用于对游戏进行定义。

其中,qyengine.define_type(typeName,parentType,options), 定义了一个类型为typeName的新类型,这个新类型的父类是parentType, 这个新类型的初始参数是options。通过这个options,可以知道GameMei每个类型可以调整的参数。 例如QyBackground可以调整背景图片,尺寸,锚点等等; QySprite可以调整图片,尺寸,透明度等等。 这些新类型及其参数都是根据你在GameMei前端的操作制定的。

往下拖动到41行代码,可以看到时间轴的定义。



其中[0, function(){...}]表示的是时间轴第0步,执行匿名函数function()的内容。 这个函数里面的内容就是根据你在GameMei前端在时间轴的动作序列选择的动作生成的代码。 函数里面的this指的是运行这个时间轴的对象。这些代码可以看到所有GameMei的API。

45行设置一个断点(鼠标点击45行左侧空白处),然后点击上方游戏场景, 触发这个时间轴的运行。可以看到游戏停在45行。这时点击控制台(console)切换到代码输入窗口。

输入this,点击回车



可以看到this这个实例对应的各种参数,各种函数。例如this的类型是gmx_.游戏鸟,所属场景是sce_1。

有几个全局变量是非常重要的,包括game, scene, window等。

在代码输入窗口(浏览器控制台)输入scene,点击回车



可以看到scene这个变量对应的实例的各种信息,包括各种参数,各种函数等等。

场景其中很重要的一个参数是instances(场景实例)。

在代码输入窗口输入scene.instances,点击回车:



可以看出当前场景有11个实例,分别是gmx_.地面固体,gmx_.准备,等等。 如果想进一步看看这些实例,可以点击展开看到这些实例的参数和函数。

同理,代码输入窗口可以输入game,点击回车



回到源代码(Source)窗口,点击继续,让游戏继续运行。小鸟掉到地上,进入游戏结束场景。 这时候使用脚本的威力就体现出来。你可以动态的运行各种脚本,即时改变游戏!



如上图所示,依次输入上图的代码,可以看到Game Over这个图片右移了10个像素。 同理,可以在这个窗口通过代码对各种对象实例进行实时的调控, 可以在这里练习GameMei的各种API。

试试输入instance_create(100,100,gmx_.游戏鸟) 。 这个API的意思是在(100,100)的位置创建类型为gmx_.游戏鸟的实例。可以看到



这个简单的介绍,是否让大家开始对GameMei编程有点兴趣了?通过学习sce_1的代码, 可以看出GameMei游戏的整个框架结构和对象,Sprite,时间轴等的API。 如果有学得比较好的同学,可以写个教程来分享一下。