在游戏制作工作室 2 中使用 draw_sprite 命令时,动画运行速度快得离谱
Posted
技术标签:
【中文标题】在游戏制作工作室 2 中使用 draw_sprite 命令时,动画运行速度快得离谱【英文标题】:When using draw_sprite command in game maker studio 2 animation runs at a ridiculously fast speed 【发布时间】:2018-10-20 09:15:19 【问题描述】:在游戏制作工作室 2 gml 中使用 draw_sprite 代码时,动画被设置为非常快的速度。抽奖事件如下。
var cx = camera_get_view_x(view_camera[1]);
var cy = camera_get_view_y(view_camera[1]);
var cw = camera_get_view_width(view_camera[1]);
if (global.player_health >= 1)
draw_sprite(heartSmallSpr, -1, cx + (cw / 2) - 64, cy + 25)
if (global.player_health >= 2)
draw_sprite(heartSmallSpr, -1, cx + (cw / 2), cy + 25)
if (global.player_health >= 3)
draw_sprite(heartSmallSpr, -1, cx + (cw / 2) + 64, cy + 25)
精灵有两帧设置为 1 秒,但当 draw_sprite();代码设置为 -1 或 sprite_index 它播放它大约是每秒 100 帧。我试过设置精灵的速度,但它什么也没做。
【问题讨论】:
与您当前的问题无关,但是您是否为每个健康状况都做了一个 if 语句?如果它只有 3 条生命,那不是问题,但如果您要扩展它,请尝试使用 for 循环。 我现在只做三个生命,但如果它更紧凑,我可能会考虑循环,我一定会去。 【参考方案1】:现在,我将制作一个简单的计时器,它每帧从变量中减去 1,当它等于 0 时,我将更改 sprite_index。这可能是很长的路要走,但我仍然愿意接受有关上述代码的任何建议。
【讨论】:
只是一个问题,但如果你只想使用一帧,那为什么精灵有两帧呢?它是动画的一部分,还是只想在满足特定条件时设置另一帧?我认为最好为帧制作两个单独的精灵,然后在需要时将 sprite_index 更改为另一个帧。不过,这实际上取决于第二帧的内容。 我想在一个恒定的动画中使用两个帧,无论条件如何,我希望它始终播放动画,但由于命令播放动画的速度,我不能这样做【参考方案2】:只需将精灵索引设置为0,“sprite_index”就是它需要绘制的图像。我不知道如果你将它设置为 -1,它为什么运行得非常快,但由于没有 -1 图像索引,它应该会给你一个错误。只需将其设置为您想要绘制的任何框架。如果你想让它播放动画,你不能使用 draw_sprite 而不设置一个变量来遍历所有图像索引。
【讨论】:
【参考方案3】:如果 image_index 向您显示动画速度加快,则可能是您的房间速度,或者您在游戏中的某个地方手动更改了 image_speed 或 image_index。
也许检查您是否还有一些其他代码用于更改这些变量?
【讨论】:
以上是关于在游戏制作工作室 2 中使用 draw_sprite 命令时,动画运行速度快得离谱的主要内容,如果未能解决你的问题,请参考以下文章