You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GMS2中如何实现点击鼠标后切换cursor_sprite并添加0.25秒延迟?

GameMaker 点击切换光标并保持0.25秒实现方案

方案1:步事件内置计时器实现(无需额外事件)

修改后创建事件代码

/// @description 初始化光标参数
cursor_sprite = spr_cursor;
default_cursor = spr_cursor; // 存储默认光标资源
cursor_hold_timer = 0; // 特殊光标保持计时器,单位为帧

修改后步事件代码

/// @description 处理光标切换与计时
// 计时器倒计时逻辑
if (cursor_hold_timer > 0)
{
    cursor_hold_timer--;
    // 计时结束切回默认光标
    if (cursor_hold_timer == 0)
    {
        cursor_sprite = default_cursor;
    }
}

// 鼠标点击检测
if mouse_check_button_pressed(mb_left)
{
    cursor_sprite = spr_cursor2;
    // 设置0.25秒的保持时长,room_speed为当前房间每秒帧数
    cursor_hold_timer = floor(room_speed * 0.25);
}

适配可变帧率提示:如果你的项目开启了可变帧率,可将cursor_hold_timer单位改为微秒,创建事件初始值仍为0,点击时赋值为250000(0.25秒=250000微秒),步事件倒计时逻辑改为cursor_hold_timer -= delta_time即可。


方案2:闹钟(Alarm)事件实现(逻辑更简洁)

1. 创建事件代码

/// @description 初始化光标参数
cursor_sprite = spr_cursor;

2. 步事件代码

/// @description 检测鼠标点击切换光标
if mouse_check_button_pressed(mb_left)
{
    cursor_sprite = spr_cursor2;
    // 给0号闹钟设置0.25秒后触发
    alarm[0] = floor(room_speed * 0.25);
}

3. 新增Alarm 0事件代码

/// @description 计时结束切回默认光标
cursor_sprite = spr_cursor;

内容的提问来源于stack exchange,提问作者Hex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:36:03