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.

GameMaker Studio 2: Como colocar um array no objeto clone

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

Re: GameMaker Studio 2: Como colocar um array no objeto clone

Mensagem por Chuaschinai » Seg Nov 02, 2020 3:58 pm

Consegue quando você usa o Event Collision você pode usar a constant other ou with para pegar as variáveis que estão no objeto que você colidiu, assim:

Código: Selecionar todos

if(other.slot == "Vazio") {
  // Código aqui
}
ou

Código: Selecionar todos

with(other) {
  if(slot == "Vazio") {
     // Código aqui
  }
}
Se você precisa procurar todos os slots vazios basta fazer um loop nos objetos que existem na room assim:

Código: Selecionar todos

for(var i = 0; i < instance_number(obj_slot); i++) {
    var _obj = instance_find(obj_slot, i);
    if(_obj.slot == "Vazio") {
        // Faz algo aqui, com o slot vazio
    }
}

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

Re: GameMaker Studio 2: Como colocar um array no objeto clone

Mensagem por GhostPower » Sáb Nov 07, 2020 11:21 am

Bom dia
Vlw grononmc,

Vou ver como funciona.

Obrigado pela ajuda.

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

Re: GameMaker Studio 2: Como colocar um array no objeto clone

Mensagem por GhostPower » Sáb Nov 07, 2020 2:27 pm

Boa tarde
grononmc,

Código: Selecionar todos

...
if(_obj.slot == "Vazio"){
global.item.x = _obj.x;
global.item.y = _obj.y;
}
O que esta errado?

Obrigado pela ajuda.

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

Re: GameMaker Studio 2: Como colocar um array no objeto clone

Mensagem por Chuaschinai » Sáb Nov 07, 2020 4:53 pm

GhostPower escreveu:Boa tarde
grononmc,

Código: Selecionar todos

...
if(_obj.slot == "Vazio"){
global.item.x = _obj.x;
global.item.y = _obj.y;
}
O que esta errado?

Obrigado pela ajuda.
Parece estar normal, qual o erro que esta dando?

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

Re: Re: GameMaker Studio 2: Como colocar um array no objeto clone

Mensagem por GhostPower » Sáb Nov 07, 2020 5:28 pm

Boa tarde
Grononmc,

Desculpa esqueci de fala o erro

ERROR in:

Unable to find instance for object index -4

Ele nao acha a instancia; como usa o _obj? queria colocar o item em qual o slot esta vazio

Muito obrigado pela ajuda.

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

Re: Re: GameMaker Studio 2: Como colocar um array no objeto clone

Mensagem por Chuaschinai » Sáb Nov 07, 2020 8:32 pm

GhostPower escreveu:Boa tarde
Grononmc,

Desculpa esqueci de fala o erro

ERROR in:

Unable to find instance for object index -4

Ele nao acha a instancia; como usa o _obj? queria colocar o item em qual o slot esta vazio

Muito obrigado pela ajuda.
Ata, naquele exemplo que te passei não fiz tratamento de código erro meu, basta fazer assim:

Código: Selecionar todos

if(instance_exists(_obj)) {
    if(_obj.slot == "Vazio"){
        global.item.x = _obj.x;
        global.item.y = _obj.y;
    }
}

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

Re: GameMaker Studio 2: Como colocar um array no objeto clone

Mensagem por GhostPower » Dom Nov 08, 2020 8:45 am

Bom dia
Grononmc,

Ainda esta com a mesma mensagem. A funçao instance_exists nao funcionou.

Procurando pela internet encontre o function Wich

Código: Selecionar todos

...
if(instance_exists(_obj)
{
var _obj = instance_find(obj_slot, i);
    with (_obj)
	{
		if(_obj.slot = "Vazio")
		{
...
Usar ou nao usar o With? O objeto slot e um children

Muito obrigado pela ajuda.

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

Re: GameMaker Studio 2: Como colocar um array no objeto clone

Mensagem por Chuaschinai » Dom Nov 08, 2020 11:21 am

GhostPower escreveu:Bom dia
Grononmc,

Ainda esta com a mesma mensagem. A funçao instance_exists nao funcionou.

Procurando pela internet encontre o function Wich

Código: Selecionar todos

...
if(instance_exists(_obj)
{
var _obj = instance_find(obj_slot, i);
    with (_obj)
	{
		if(_obj.slot = "Vazio")
		{
...
Usar ou nao usar o With? O objeto slot e um children

Muito obrigado pela ajuda.
Não amigo, da forma que você implementou, esta da forma errada, tem de ser assim:

Código: Selecionar todos

for(var i = 0; i < instance_number(obj_slot); i++) {
   var _obj = instance_find(obj_slot, i);
   if(instance_exists(_obj)) {
       if(_obj.slot == "Vazio"){
           global.item.x = _obj.x;
           global.item.y = _obj.y;
       }
   }
}

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

Re: GameMaker Studio 2: Como colocar um array no objeto clone

Mensagem por GhostPower » Dom Nov 08, 2020 1:00 pm

Boa tarde
Grononmc,

Entao, mas o erro continua mesmo colocando o seu codigo

ERROR in
Unable to find instance for object index -4

Código: Selecionar todos

 global.itemSave.y = objSlot.y;
O que pode ser?

Vlw

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

Re: GameMaker Studio 2: Como colocar um array no objeto clone

Mensagem por Chuaschinai » Dom Nov 08, 2020 2:51 pm

GhostPower escreveu:Boa tarde
Grononmc,

Entao, mas o erro continua mesmo colocando o seu codigo

ERROR in
Unable to find instance for object index -4

Código: Selecionar todos

 global.itemSave.y = objSlot.y;
O que pode ser?

Vlw
Pode ser que algum desses dois objetos não existam, ou o global.itemSave não existe, ou o objSlot não existe de um show_debug_message neles e veja qual retorna um valor de -4(noone).

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

Re: Re: GameMaker Studio 2: Como colocar um array no objeto clone

Mensagem por GhostPower » Ter Nov 10, 2020 8:47 pm

Boa noite

Vlw, ja arrumei o erro.

Existe uma maneira para usar o return? sabe para otimizar a memoria.

Acho o primeiro slot vazio ja sai do loop do for.

Vlw obrigado pela ajuda.

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

Re: GameMaker Studio 2: Como colocar um array no objeto clone

Mensagem por Chuaschinai » Ter Nov 10, 2020 9:25 pm

Para sair do loop, basta quando encontrar um slot vazio no final do código usar um break, para dar um stop no loop:

Código: Selecionar todos

for... {
    ...
    if(_obj.slot == "Vazio"){
        global.item.x = _obj.x;
        global.item.y = _obj.y;
        break;
    }
}


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

Re: GameMaker Studio 2: Como colocar um array no objeto clone

Mensagem por GhostPower » Sáb Nov 14, 2020 10:56 am

Bom dia
Grononmc,

Vlw, funcionou.

Muito obrigado pela ajuda.

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante