/// Drag Icon
visible = oInventoryBox.visible;
if(position_meeting(mouse_x,mouse_y,oInventoryIconParent)){
if(mouse_check_button_pressed(mb_left)){ // grab the item //
global.heldIcon = id;
}
}
if(global.heldIcon == id){
box = instance_nearest(mouse_x,mouse_y,oInventoryBox);
if(mouse_check_button(mb_left)){ // drag the item //
x = mouse_x;
y = mouse_y;
}
if(mouse_check_button_released(mb_left)){ // release the item //
if(instance_exists(box)){
global.boxes[boxNumber].item = box.item; // give the old box the new boxes item
global.boxes[boxNumber].item.boxNumber = boxNumber;// give the new boxes item it's new box number
box.item = id; // put the item in the new box
boxNumber = box.boxID; // give this item it's new box number
}
box = -1; // reset box and the item being dragged.
global.heldIcon = -1;
}
}
http://webmshare.com/WNdZd好吧,所以我的库存有问题。正如你在视频中看到的那样,它似乎只抓住了这一颗种子并忽略了其他一切。如果有人看到那将是美女的问题。
当我看到我在视频中抓取不同的种子时,实际上我只是双击切换原始种子的位置。
我认为问题在于' id'我不确定它是否实际引用了该对象,或者它是否只是一个随机数。文档并没有真正解释得很好,用“自我”和“自我”来尝试。但是返回-1会导致它拖动每个项目。
答案 0 :(得分:1)
您可以使用instance_position(x,y,oInventoryBox);
来确定选择了哪个项目
我没有对其进行测试,但是当与id
结合使用时,它应返回所点击项目的mouse_check_button_pressed(mb_left);
:
if(mouse_check_button_pressed(mb_left))
{
if(position_meeting(mouse_x,mouse_y,obj))
{
global.clicked = instance_position(mouse_x,mouse_y,obj);
}
}
if(mouse_check_button_released(mb_left))
{
global.clicked = 0;
}
if(global.clicked = id) // You can replace this with your inventory grid handler.
{
x = (mouse_x div 32) * 32;
y = (mouse_y div 32) * 32;
}