Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

GS 2: Como troca o objeto usando DragAndDrop

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 6
Mensagens: 198

Re: GS 2: Como troca o objeto usando DragAndDrop

Mensagem por Chuaschinai » Sáb Jan 16, 2021 7:41 pm

Creio que o problema esteja aqui, não sei bem o que esta ocorrendo, mas:
GhostPower escreveu:

Código: Selecionar todos

global.ItemMouse.x = mouse_x;
global.ItemMouse.y = mouse_y;
if(mouse_check_button_pressed(mb_left)) {
    if slotItem != noone // Ele nao verifica se esta em cima do slot?
    {
        var itemTemp = itemDrag; // Salva o item
        itemDrag = global.ItemMouse; // Troca o item
        global.ItemMouse = itemTemp; // Muda o item
        mouse_clear(mb_left);
    }
} 
 
O itemDrag é um variável temporária, e você esta usando essa variável para "tentar" armazenar o global.ItemMouse, deveria ser o slotItem.item = global.ItemMouse.

Avatar do usuário
GhostPower
Membro
Membro
Reações: 0
Mensagens: 97

Re: GS 2: Como troca o objeto usando DragAndDrop

Mensagem por GhostPower » Sáb Jan 23, 2021 11:26 am

Bom dia
Chuaschinai,

Nao entendi, pq tenho que usa uma varivel(item)? O que acontece no game maker?

Tentei assim mais ainda nao funcionou:

Código: Selecionar todos

if mouse_check_button_pressed(mb_left) && slotItem != noone 
       {
		var itemTemp = itemDrag; 
       slotItem.slotItem = global.ItemMouse;//itemDrag = global.ItemMouse; 
       global.ItemMouse = itemTemp; 
	   mouse_clear(mb_left);
	   }
Muito obrigado pela ajuda.

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 6
Mensagens: 198

Re: GS 2: Como troca o objeto usando DragAndDrop

Mensagem por Chuaschinai » Dom Jan 24, 2021 12:38 pm

Na variável item, foi o que coloquei como exemplo, seria uma variável dentro do obj_slot que armazenaria o item que você pôs lá.

O problema que pode estar havendo é o slotItem.slotItem, desde que o obj_slot tenha um variável chamada slotItem não há problema algum.

Não funcionou como? deu erro ou só não fez a troca?

Avatar do usuário
GhostPower
Membro
Membro
Reações: 0
Mensagens: 97

Re: GS 2: Como troca o objeto usando DragAndDrop

Mensagem por GhostPower » Dom Jan 24, 2021 4:47 pm

Boa tarde
Chuaschinai,

Entao nao estao trocando os itens, mas nao da erro nenhum.

Codigo:

Código: Selecionar todos

if mouse_check_button_pressed(mb_left) && slotItem != noone 
       {
      var itemTemp = itemDrag; 
       objSlot.slotItem = global.ItemMouse;//itemDrag = global.ItemMouse; 
       global.ItemMouse = itemTemp; 
      mouse_clear(mb_left);
      }


Obs: Troquei o nome slotItem para objSlot para ser mais entendivel.

Tenho a variavel slotItem no objeto (slot), declarado assim:

Código: Selecionar todos

create: slotItem = noone;
O que esta errado nisso?


Muito obrigado pela ajuda.

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 6
Mensagens: 198

Re: GS 2: Como troca o objeto usando DragAndDrop

Mensagem por Chuaschinai » Ter Jan 26, 2021 4:23 pm

O problema deve estar aqui:

Código: Selecionar todos

objSlot.slotItem = global.ItemMouse;//itemDrag = global.ItemMouse;
objSlot seria a variável que checa se o mouse esta em cima do objeto slot?

Tente usar assim:

Código: Selecionar todos

slotItem.slotItem = global.ItemMouse;//itemDrag = global.ItemMouse;

Avatar do usuário
GhostPower
Membro
Membro
Reações: 0
Mensagens: 97

Re: GS 2: Como troca o objeto usando DragAndDrop

Mensagem por GhostPower » Sáb Jan 30, 2021 12:02 pm

Bom dia
Chuaschinai,

Entao funcionou com o este codigo:

Código: Selecionar todos

if mouse_check_button_pressed(mb_left) && slotItem != noone 
       {
       var itemTemp = itemDrag; 
       slotItem.slotItem = global.ItemMouse;//itemDrag = global.ItemMouse; 
       global.ItemMouse = itemTemp; 
	   mouse_clear(mb_left);
	   }
O problema e que as vezes ele troca dependendo do item ou da posiçao do mouse. As veses ele so arasta um pouco.

Os dois estao com a colisao full image.

O que sera isso?

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 6
Mensagens: 198

Re: GS 2: Como troca o objeto usando DragAndDrop

Mensagem por Chuaschinai » Dom Jan 31, 2021 4:15 pm

Tenta só trocar o itemTemp para item do slot como no código abaixa e veja o que acontece.

Código: Selecionar todos

if mouse_check_button_pressed(mb_left) && slotItem != noone 
{
    var itemTemp = slotItem.slotItem;
    slotItem.slotItem = global.ItemMouse;//itemDrag = global.ItemMouse; 
    global.ItemMouse = itemTemp; 
    mouse_clear(mb_left);
}
Foi mal pela demora em responder.

Avatar do usuário
GhostPower
Membro
Membro
Reações: 0
Mensagens: 97

Re: GS 2: Como troca o objeto usando DragAndDrop

Mensagem por GhostPower » Seg Fev 01, 2021 7:32 pm

Boa noite
Chuaschinai,

Troquei, mas agora ele cria um clone no lugar dele isso se o objeto tiver outro na room ou troca as vezes.

Vlw por todas as suas respostas.

Muito obrigado pela ajuda.

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes