更新日志:GameCreator/20220210

来自GCW
跳到导航 跳到搜索
上个更新 来源 下个更新
20211120
GameCreator v0.9841
http://f.gamecreator.com.cn/forum.php?mod=viewthread&tid=748 20220315
GameCreator v0.9851
GameCreator v0.985
2022年02月10日
更新内容

大型模块:vscode代码编辑器支持

游戏工程项目允许使用第三方的代码编辑器-vscode编辑代码了,修改保存后GC内也会实时更新!相关支持项做出了调整,如:.api文件改为.d.ts文件

使用VSCODE开发的流程如下:

1.从vscode官方网站下载vscode代码编辑器并安装(记得勾选右键菜单支持VSCODE打开的功能)

2.从Node.js官方网站下载并安装Node.js

3.在GC游戏工程(更新GC-0.985后新下载的模板)目录下点击鼠标右键,选择「通过vscode打开」

4.使用命令行工具输入 npm i 来安装依赖环境(如果没有找到控制台则在vscode内按下CTRL+~打开)

5.可以编写代码了,编写完成后可以使用GC测试运行项目

如果希望在vscode中编译,则:

1-在vscode的命令行工具中输入指令npm run build进行编译(或者npm run build:w进行监听代码保存后自动编译)。
2-输入指令npm run run 测试游戏。

新增功能:

1.增加了树结构模式的数据列表管理,可自由切换原来的列表模式以及树模式,树模式新建文件将自动使用空置的ID。

"解读:允许用户自定义分组(文件夹)了,也可以方便调整数据文件的排列顺序!"

GameCreator更新日志-20220210-树结构.png


2.允许禁用指令(类似代码中的注释代码效果):被禁用的指令在实际游戏中以及在编辑器事件预览的播放中不会运行。

"解读:调试游戏逻辑的利器!在选中条目后可使用快捷键CTLR+B快速禁用/取消禁用"

GameCreator更新日志-20220210-禁用.png


2.追加事件页中的当前选中行的指令开始播放预览,在停止后回到当前行,而此前仅有每次从头播放预览。(可在事件预览模式下切换是否启用该功能,默认启用)

"解读:这样可以在大段的演出事件中预览播放中间段的效果了!又一个调试事件的利器!"


3.在事件页中打开了预览模式下的情况,追加了空格键播放/停止预览,以便快速测试


4.对话框的文本播放效果支持了逐字播放材质效果。(如制作下列动态图片中的效果)

GameCreator更新日志-20220210-对话文字效果1.gif


5.自定义编辑器的属性增加了上下行标题的样式模式(以便配合下个版本更换GC皮肤后的模板界面更加漂亮)。

GameCreator更新日志-20220210-样式模式.png

6.监听代码文件实时更新,在使用第三方代码编辑器修改代码文件时,GC内可以实时响应并自动更新了。


7.双击打开.gamecreator工程文件支持了打开当前文件所在的工程(目前由于尚未加入到扩展名注册表中,现阶段首次双击该文件仍需要选择打开方式-找到GameCreator应用程序所在目录下)。


8.关于GC中生成的代码文件,在保存时也能够自动生成了,以便在使用第三方代码编辑器时更加方便(原本只在F11打开GC代码编辑器时生成)


9.行走图/立绘对序列帧操作追加了停留时间的设定,原本只能匀速播放的序列帧支持了局部停顿设置,支持时间以及帧数停顿

(如果是帧数则实际等待时间与行走图实际播放时的帧率有关系,比如每秒30帧,那么等待15帧实际是0.5秒)。

"解读:比如制作一个人物停留久了就眨眼的动作,可以在第一帧设置等待2秒,第二帧之后则是眨眼动作。对序列帧图片使用右键鼠标菜单-「等待...」"

GameCreator更新日志-20220210-序列帧等待.png


10.材质编辑器增加了「启用」的功能,以便在不删除的它的情况下快速启用/禁用来对比材质显示效果。


11.顶部菜单栏中的设置增加了编辑器渲染方式以及游戏渲染方式(临近/线性)


12.数据列表操作增加了剪切的功能

"解读:如界面编辑器中的界面列表等地方,此前只有复制和粘贴,缺少了剪切确实让不少常用剪切做事情的强迫症作者抓破头皮~"


13.对话框指令内的对话框样式参数增加了「调整此次对话的样式」,在显示该次对话指令时允许快速调整样式。

"解读:比如只有该次对话想将对话文本尺寸调大或选项位置调整而临时设置一次对话框样式,并不会永久影响样式库里的原始设置"

"全程可视化操作,直接修改即可。同时也支持变量设置值"

"可以通过事件指令的复制粘贴快速将临时设置过样式的对话事件重复使用"

GameCreator更新日志-20220210-对话框元件.png

GameCreator更新日志-20220210-对话框元件2.png


14.新增自定义组件「移动对话框元件的组件」,除了仅用于修改对话框样式外,操作方式同「移动界面元件的组件」

"解读:功能13则是利用此组件制作完成的。该功能一般用于制作相关指令扩展。"


15.指令-数值变量设值(含二周目)最终运算结果增加了小数点位数选择的支持。

"解读:默认的数值变量计算结果是不取整的,此时结果如果获得小数点,希望可以自己控制精度,于是此次更新提供了1~5位小数点的选择(实际值超过精度的话会四舍五入)"


16.指令-数值变量设值(含二周目)的随机数支持了变量设置模式

"解读:不少用户需要带有不确定性随机数的要求,原来固定的随机数上下限则很难满足可视化编程用户的需求,并且该功能相对常用,于是将其作为默认功能提供出来了~"


17.指令-数值变量设值、开关、字符串这些指令(含二周目)增加了索引模式。

"解读:原本我只能指定固定的某号变量=100,现在我可以根据变量指定某个编号的变量=100啦"


18.行走图编辑器添加了参考目标,以便在制作部件的时候添加参考目标方便预览其在于本体的位置等关系。

"解读:在设置部件的时候常常不确定坐标到底该是多少,不得不在PS中对齐后再设置坐标,或者不方便地来回切换查看,现在有了参考目标,所见即所得!"


19.动画编辑器的K帧参数调整,支持了材质变化

"解读:材质YYDS,千变万化非她莫属了,每个图层添加好材质后可以对该图层的材质K帧,但是材质也会带来额外的性能开销,需合理使用。"


20.动画的过渡属性更改为高级过渡方式,支持了曲线以及立即模式

"解读:有时候需要关键帧与关键帧之间立即变化(而非过渡),比如上一个关键帧,位置为X,下一个关键帧则是Y它们之间持续了3秒,这期间并非均匀过渡的。"

GameCreator更新日志-20220210-动画过渡.gif


21.指令-等待支持了变量设置模式

"解读:等待的指令是最常用的指令之一了,默认提供了支持变量模式就像喝白开水一样正常~!"


22.公共事件调整为事件库并独立在主区域顶部显示而不再在数据库中显示(快捷键F4)并且允许在选择的时候修改事件了。

"解读:模板将不再在世界设定中添加事件,取而代之的很关键的「事件库-F4」,里面会归类整整齐齐模板默认的系统相关事件~也易于统一管理!"


23.GC内的代码编辑器内核完成了升级,支持了新的语法特性,代码提示和相关操作也得到了更新。

并且免费版也开放了使用代码编辑器的权限

"解读:部分操作习惯可能与此前不同,核心操作方式将以monaco默认功能为准"

调整和优化:

1.文件碎片化支持,将一些原本打包在一起储存的数据拆分为了独立的文件,以便多人合作时减少内容修改的冲突:  

(原本只有一个文件,现在分为列表文件以及每个数据文件都是独立的一个文件,未在下列中的数据文件原本就是独立化的)

 -- 自动元件

 -- 数据结构

 -- 模块结构

 -- 玩家属性

 -- 世界属性

 -- 指令

 -- 行为

 -- 条件

 -- 游戏数值

 -- 游戏字符串

 -- 材质

2.关于系统自动生成的代码文件:如果相关数据不存在则系统不会自动生成相关的代码文件。

3.数据列表个数可以设置为0,设置为0后将会清空相关的数据文件(JSON)。

4.发布游戏时清理掉一些无用的JSON文件(如仅供编辑器使用的JSON文件等)

5.发布游戏时将启动时需要加载的全部JSON都合并为一个文件以便在WEB环境下优化加载速度

6.优化数据库打开/选择等时由于模块过多导致的微小卡顿问题

7.事件统一化术语,如在某些地方称呼事件Event改为了指令Command

8.系统自动生成代码中的UIRuntime将UICustomGameNumber和UICustomGameString类别调整为UIString

9.自定义模块和数据结构增加变量名以便可以做到在界面中显示中文,而系统自动生成的代码则显示为英文的效果。

10.事件预览模式下的分歧预览样式更改,统一选项和条件分歧的样式,以及更新了说明文本。

11.旧版本编辑器打开新版本编辑器创建的工程不允许打开且附加相关弹框提示。

12.自定义编辑器中自动生成的代码,如果属性勾选了仅供配置,则会追加readonly修饰符,以便代码提示该属性无法修改。

13.优化引擎初始化方式,项目层如果不主动创建Game这个全局变量也不会报错,系统会自动创建。

14.界面编辑器内的列表中的鼠标右键添加组件追加显示了组件的类型(Class)名称。

15.现在的行走图/立绘允许将不再限制帧图片信息只能复制粘贴到当前的选中的行走图/立绘上。

16.GC代码编辑器中编译后生成的文件(.js以及.map文件)将不再生成在同一目录下而是生成在dist文件夹中(会使用git/svn的童鞋可添加到提交忽略名单)

17.自定义组件-材质编辑器追加了设置项-多材质组模式

18.选项视为取消的话,鼠标右键的操作也能够取消选项(当前对话框在界面层最前方显示的话)

19.对话框样式的属性增加了相关提示

20.系统指令-镜头移动:修改了关键词描述:由指定对象改为锁定对象,该描述更为准确。

21.指令集的自定义排序调整为在不开启快捷修改编辑器的情况下也可以修改了

22.增加一次本地存档文件的保护,确保使用文件系统环境下的存档时档案列表与实际文件同步而不会在某些情况下导致存档还在而档案列表丢失的错误

修复问题:

1.修正游戏测试窗口尺寸小于分辨率时影响AssetManager.drawToTexture方法截图显示(如存档截图)

2.修正行走图组件在某些情况下拖拽出来的初始方向不正确的问题

3.修复在界面编辑器中,修改了界面但未保存的情况下,编写事件操作该界面(如移动界面内的元件)仍然是未修改前的状态的问题

4.修正在事件预览模式下,显示对话时使用的是立绘/动画头像时,在来回切换事件时,头像存在闪烁的问题。

5.修正一处下载插件时附带有自定义游戏数值时由于ID已被占用,不会自动更新至未使用的ID的错误(如插件:数组操作v1.010)

6.修正场景对象原型的修改对于旧工程编辑后点击确认时如果没有设置预览项导致显示了错误的面板的问题。

7.现在界面的组件在显示和隐藏时能够正确的触发显示/隐藏事件了,当组件visible改变时都会抛出UIBase.ON_VISIBLE_CHANGE

(如标签页组件切换时,其下的子项能够响应到相关显示时/消失时事件)

8.修复一处带有数据结构数组中填入数据时可能报错的问题

9.修复插件发布时无法选择自定义数据结构中第二页内容的错误

10.修复场景对象模块中属性列表中属性的依赖条件不会跟着属性进行上下移动以及列举出了不是依赖条件的属性的错误。

11.修复系统指令-场景色调在不启动的时候仍然显示了的错误

12.修复指令-移动界面元件中批量修改透明度时出现多位小数点的错误

13.修正删除场景的图片层提示文本的一处描述错误

14.修正界面编辑器中子界面组件存在一个多余的参数的问题

15.修正行走图/立绘的部件选择空部件时的出现两个本体的错误

16.修正指令-移动元件无法控制鼠标响应修改的错误

17.修正界面编辑器选择对象显示问题

18.修正独立应用窗口中输出trace/console.log无法在GC控制台中显示的错误。

19.修正自定义组件数组容器内的元素拖拽无法显示拖拽提示-绿色线条的错误。

20.修正刚添加的行走图部件在首次无法在舞台区域中选中的问题

21.修正独立窗口模式下运行游戏测试时会,每测试一次都将生成多一份缓存的问题

22.修正资源管理器-在打开定位图片的时候,在某些情况下没有显示底部信息的错误

23,修正对话框头像样式由立绘模式切换为图片模式后保存导致头像预览地址失效的错误

24.修正界面编辑器按钮右键列出了一些不存在的组件层级的问题

25.修正关于合并文件startup.json在某些旧工程上传至云平台后可能出现了问题

26.修正复制对象行为内的行为事件到事件页上会导致事件无法删除或工程卡死

27.修正读档后场景对象克隆标识未能恢复的问题。

API更新:

1.文件系统FileUtils在独立窗口应用的环境下提供了支持。   

   -- getDirectoryListing   获取指定目录下的所有文件或文件夹(不包含子文件夹内的文件)

   -- cloneFile 复制粘贴文件

   -- getAllChildFiles 获取指定目录下的所有文件或文件夹(包含子文件夹内的文件)

   -- createDirectoryForce 创建文件夹,会创建不存在的目录

   -- deleteFile 删除文件

2.增加API:FileUtils.exists  判断文件(夹)是否存在

3.增加API:FileUtils.hasFileOperationJurisdiction 是否拥有文件系统权限:如写入文件、获取目录下全部文件列表等(如纯WEB环境下则不允许)

4.增加API:Callback.EMPTY  空的回调函数以便在不想要回调但必须回调的场合下复用

5.增加API:Game.frameCount   游戏帧计数:游戏启动时到现在的帧总数

6.对话文本播放出现等待标志时,抛出事件:GameDialog.EVENT_DIALOG_TEXT_WAIT_TIME 以便在项目层方便追加额外的逻辑

7.允许用户操快速显示当前文本(空格键/鼠标左键点击)GameDialog.dialogTextShowAllEnabled 默认=true

8.GameDialog.EVENT_DIALOG_END 抛出时追加了一个回调参数:fromAutoPlaySkipSign 该跳过行为是否来源于文本播放时出现的[跳过本次对话]标识而非手动跳过

9.开放对话框下的全部显示对象的API,以便项目层更自由地操作。

-- optionTexts 选项文本组

-- dialogHeadBox  头像框

-- dialogBox 背景框

-- nameText 名称文本

-- playTextLabels 内容文本组

10.打包发布的游戏客户端支持release参数以便区分游戏是在编辑器的测试环境还是正式版本 Config.RELEASE_GAME

11.增加API:AvatarFrameImage::wait_type  等待类型 0/null-无(按照帧率) 1-等待X帧 2-等待X毫秒

                     AvatarFrameImage::wait_count 等待数目(帧数/毫秒数)

12.Animation调整为GCAnimation(由于支持了最新版的代码编辑器内核,与window的Animation有冲突,但对旧工程用到的Animation仅会标红并不会运行时报错,是兼容的)

13.增加API:skipWaitPlayerOperation  功能:在对话播放中需要等待玩家操作才能显示接下来的对话时,立刻跳过「等待玩家操作」