在游戏制作工作室 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 命令时,动画运行速度快得离谱的主要内容,如果未能解决你的问题,请参考以下文章

将敌人的方向瞄准玩家游戏制作工作室 2 DnD

游戏制作工作室 2;武器系统。错误:DoConv:1:非法未定义/空使用;如何解决?

Gamemaker工作室2匹配

游戏制作工作室将多个变量传输到脚本

游戏制作工作室文本框书写错误

游戏制作工作室视觉错误