【QA】2017第51周

方向键映射

这是B站的“纯洁ジュンケツ”问的
相信只要看过B站教程的朋友都知道,如果要获取用户按方向键的事件可以用

keyborad_check(vk_up);
keyborad_check(vk_down);
keyborad_check(vk_left);
keyborad_check(vk_right);

不过,有很多朋友都习惯了“W”、“A”、“S”、“D”来作为方向键使用,如何获取这些字母的键值呢,其实很简单

keyborad_check(ord("W"));
keyborad_check(ord("A"));
keyborad_check(ord("S"));
keyborad_check(ord("D"));

使用"ord()"这个方法可以获取参数传入的字符串的Unicode值。

经提醒,ord方法中传入的参数必须为大写,之前疏漏了

代码高亮色和字体设置

这其实是两个问题,一个朋友想知道代码编辑器里这么多不同颜色的代码属性具体都是什么,另外有个朋友想知道如何设置字体,其实这些在GMS2的设置项里可以查看和编辑,所以合到一起来说明一下,如下图:

在Preferences中展开Text Editor然后选中Code Editor,右侧就会出现所有的字体相关设置,可以根据自己的喜好来调整高亮色和字体

如何判断动画播放完毕

这个问题来自“💡lity.ve.Strug
他试图制作切换武器并更好子弹类型的功能,然后希望确认切换武器的动画结束,才方便切换射出的子弹类型,这个判断首先GMS是自带一个动画结束的事件的:
[]
所以,可以在添加这个事件以后,然后将后续的操作在这里执行。
如果想用代码的方式来判断也可以这样处理,首先动画播放完毕就是动画已经播放到最后一帧,因此只要判断播放动画的对象的“image_index”属性即可

if (image_index > image_number - 1) {
    ///这里可以写要处理的代码
}

其中image_index是当前图像的序列号属性,image_number是序列帧图像数量的属性

此处最初使用的是“image_index == image_number - 1”的判断条件

在经过一系列的测试和验证之后发现"image_index"的数值变化受动画播放速度的影响
而且这个数是浮点数不是整数递进的,使用"=="判断有可能会失效
最好使用">"进行判断,或用“floor()”对“image_index”向下取整

2017-12-13 22:05
Comments
Write a Comment