gamemaker学习笔记:拖拽

本文介绍了一种在GMS中实现对象拖拽的方法。通过自定义脚本,利用mouse_click和mouse_release函数来响应用户的点击与释放行为,并在step事件中更新对象的位置,实现了简单而有效的拖拽效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今晚尝试一下Gm的拖拽,发现和之前看过知乎Gms的专栏一篇文章的也是很类似,尝试做一下练习。针对一个obj在step 事件下进行控制。

在使用之前封装了一个小脚本,可以调用点击。其实有点需要吐槽的,按钮那些触控行为,只能加上碰撞和鼠标点击结合使用。具体还不知道还有没有新的方法。

mouse_click

if(collision_point(mouse_x,mouse_y,argument0,0,0) && mouse_check_button(mb_left))
{
   return true;  
}

return false;
鼠标释放mouse_release

if(collision_point(mouse_x,mouse_y,argument0,0,0) && mouse_check_button_released(mb_left))
{
   return true;  
}

return false;

这里写图片描述

第二步:建立一个obj_box 对象。

在create事件,填写拖拽变量

drag = false;

在step事件填写


if(mouse_click(self))
{
  // show_message("q");
   drag = true;
   startPoint = [mouse_x,mouse_y];
}

if(drag)
{
   x += mouse_x - startPoint[0];
   y += mouse_y - startPoint[1];
   startPoint= [mouse_x,mouse_y];//记录上一个位置。

   if(mouse_release(self))
   {
       drag = false;//释放处理
   }

}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值