0

在游戏制作工作室 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 帧。我试过设置精灵的速度,但它什么也没做。

4

3 回答 3

0

如果 image_index 显示动画速度提高了,那么要么是你的房间速度,要么是你在游戏中的某个地方手动更改了 image_speed 或 image_index。

也许检查您是否有一些其他代码用于更改这些变量?

于 2018-12-22T01:09:13.327 回答
0

只需将精灵索引设置为 0,“sprite_index”就是它需要绘制的图像。我不知道如果你将它设置为 -1,它为什么运行得非常快,但由于没有 -1 图像索引,它应该会给你一个错误。只需将其设置为您想要绘制的任何框架。如果您希望它播放动画,则不能使用 draw_sprite 而不设置一个变量来运行所有图像索引。

于 2018-12-19T17:51:20.590 回答
0

现在,我将制作一个简单的计时器,它每帧从变量中减去 1,当它等于 0 时,我将让它更改 sprite_index。这可能是很长的路要走,但我仍然愿意接受有关上述代码的任何建议。

于 2018-10-24T22:21:05.000 回答