问题标签 [game-maker-language]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arrays - Game Maker 7 GML 数组长度
我正在使用 GML 在 Game Maker 7 中工作,以便为我的游戏创建主菜单。我已经寻找了一段时间,试图找出使用数组长度的代码,但是我找不到它。到目前为止,我所拥有的是:
这是为了循环遍历数组并确保菜单箭头不会出现在选项所在的位置。我收到的错误是:
对象 Obj_Menu 的步骤事件的操作编号 1 中的致命错误:
代码操作中的编译错误 第 8 行代码中的错误: if (mpos <0) mpos = array_length_1d(menu) - 1;
在位置 26:未知函数或脚本:array_length_1d
game-maker-studio-1.4 - display_reset() 和 texture_set_interpolation() 的副作用
似乎 display_reset() 也重置了纹理插值设置。
当您混合使用 texture_set_interpolation 和 display_reset 时,有人可以向我解释内部会发生什么吗?文档什么也没告诉我,但是当我启用插值并打开 8x AA 时,我的精灵线再次变得像素化。当我在 display_reset() 之后立即调用 texture_set_interpolation 时它仍然不起作用 - 我必须等待几个步骤才能启用它并删除像素线。
这对于我的游戏初始化代码来说并不是最优的——它会加载用户的偏好,然后调用 display_reset() 并调用 texture_set_interpolation()。它最终的纹理仍然是像素化的。
注意:我觉得抗锯齿更改无济于事。我有一个烟线纹理,我使用着色器对其进行转换以使其感觉真实,(这会扭曲烟雾),但线条都是非常像素化的 - 它在 0 抗锯齿下看起来与在 8 倍抗锯齿上的效果相同。只有当我启用纹理插值时,它才会看起来很平滑。
game-maker - 游戏制作工作室将多个变量传输到脚本
运行脚本时,我想将多个变量从对象传输到脚本。如果我使用它可以工作,Blood(dir);
但如果我添加am
. 如何在脚本中使用这两个变量?
2d - Fake 3D 2D 第一人称引擎 Game Maker Studio
几天来,我一直在研究我的游戏的假 3D 引擎,似乎无法在下面的视频中创建视图。我想我已经弄清楚了如何正确缩放精灵。我似乎无法弄清楚如何旋转世界精灵。我只能将 x 轴上的世界精灵向左或向右滑动,具体取决于使用的玩家对象旋转键。我对如何复制视频如何进行完整的 360 度旋转以使玩家可以看到前面或后面的对象以及如何实际使世界对象看起来像它们正在旋转感到困惑。
一旦我的 facesDir 变量达到 360 或 -360,它就会重置为 0。我不确定这是否是问题的一部分,但我看不到任何其他方法可以伪造完整的 360 度旋转并获得准确的读数。
我只想为这个项目使用 2D 数学/函数。
查看世界对象使用的脚本
世界对象用于访问视图脚本的代码
玩家创建事件代码
玩家踩踏事件代码
播放器绘制GUI代码
game-maker - 我的 GML 洗牌数组函数总是返回相同的结果
我正在尝试在 GML 中创建一个洗牌数组函数。这是我尝试过的,argument0
作为要洗牌的数组和argument1
这个数组的大小:
当我执行这个函数时,我总是得到相同的结果:
instances - GML:从碰撞中获取实例 ID 并访问其变量
我目前正在gamemaker中制作游戏。玩家攻击的工作原理是让玩家获得耐力并将其存储在一个伤害变量中,然后飞出玩家并击中敌人,从敌人身上获得两倍于伤害变量的生命值。
如果玩家在进行攻击时有 45 的耐力,则攻击精灵会飞出并造成 45 的伤害。当击中敌人时,这将对敌人造成 90 点伤害,只剩下 10 点生命值。
问题是游戏似乎不知道哪个攻击精灵击中了敌人,因为您可以执行基本上无限量的攻击,因此不会对敌人施加正确的伤害量。
我如何获得与敌人碰撞的对象的实例 ID,以便我可以使用它来访问损坏变量?
提前致谢
save - GML,如何将我所在的房间保存到 .ini?
我正在学习冒险游戏的基本保存/加载,并遇到了这个错误:
我一开始很简单,只是保存玩家的 X 和 Y 位置以及他们当前所在的房间。
但是,一旦我尝试保存,它就会引发错误。
我在保存房间方面做错了什么,还是我必须以不同的方式去做?
game-maker-language - 如何在游戏制作器中将字符串转换为二进制表示?
我找到了一个将二进制转换为字符串的脚本,但是如何输入字符串并获取二进制表示?所以说我输入“P”我希望它输出 01010000 作为字符串。
我有这个,但这不是我想要做的 - 它将包含二进制数的字符串转换为该数字的实数值:
game-maker - 在 gml 数据结构中存储多个唯一数组
想象一下,您正在尝试创建一个数据结构,该结构将包含所有可能装备在 RPG 中的装备的所有数据。
在这种情况下,一个齿轮可以由四个值表示:一个定长数组 length C
、一个变长数组 length 0 < n < 5
、一个字符串和一个实数。我是 gml 的新手,但我倾向于为此使用 2D 数组:
然后,所有的齿轮部件都由各种独特的 2d 数组表示,例如这个(数百个,带有硬编码值)。我想做的是将所有这些数组存储在像 ds_map 这样的数据结构中(本身存储在游戏开始时创建的持久控制器对象中),其中从地图的特定键获得的值是该片的二维数组用那把钥匙的齿轮。就像是:
我的问题是我将如何填充该 ds_map,或者是否可以创建这样的数据结构?我需要澄清一下,因为从我(初学者)对 gml 以及数组如何在其中工作的理解来看,以下代码是有问题的:
这还存在其他问题,第一个2d_array
是局部变量,那么当脚本完成运行时,数据结构中的引用是否还有任何意义?我认为不会。但即使将其更改为实例变量,仍然存在覆盖问题,并且显式创建数百个实例变量来保存所有二维数组的解决方案似乎很荒谬,就像使用gear
Object 并创建数百个持久的不可见实例一样。我欢迎对上述代码提出任何建议,或如何最好地存储齿轮数据的替代解决方案。
在相关说明中,我在手册中看到了有关在其他 ds_lists 中存储 ds_lists 或映射的说明,但它说这仅适用于 JSON。我可以将数据结构存储在其他数据结构中吗?
java - 在 GAMEMAKER STUDIO 的 android 扩展中找不到扩展类上的 argfree 方法
我正在为 gamemaker studio 制作文本到语音的 android 扩展,我收到此错误:05-01 17:16:41.304 16939 17013 I yoyo : Can't find argfree method on extension class:getMic [] 尝试时在游戏中使用我的扩展程序。游戏不会崩溃,只是在扩展中找不到任何东西。那么究竟什么是 argfree 方法呢?
我还尝试将 onCreate 方法更改为公共方法并从 GM:S 和其他一些东西调用它,但没有运气。这是相关代码,如果您需要更多信息,请询问。
java类TtsStt:
在活动级别在我的清单中,我注入了这个:
并在清单中注入 gradle 依赖项: