Página 1 de 2
GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Sáb Out 03, 2020 12:30 pm
por GhostPower
Boa tarde
Maker,
Agora estou fazendo o inventário usando array em um objeto chamado slot.
Neste objeto(slot) tenho um codigo simples de receber o objeto(item) quando ele colidir com a item.
Olhe abaixo o codigo:
Colisao com o objeto(item)
Perceba que estou usando o array de linha e colunas para fazer o inventario.
Tenho este objeto duplicado na room para adicionar cada posiçao :
slotSave = [0,0] -- Objeto(slot)
slotSave = [0,1] -- Objeto(slot) duplicado.
slotSave = [0,2] -- Objeto(slot) duplicado.
...
Assim por diante. Com faço isso sendo q nao consigo manipular as colisoes de cada objetos clonados? Tem outras formas de fazer o inventario com um unico objeto para armazenar cada posiçao?
Obs: Nao quero usar "ds_list".
Obrigado pela ajuda.
Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Sáb Out 03, 2020 6:56 pm
por Chuaschinai
Não entendi muito bem, você quer ter um objeto só para gerenciar todos os slots?
Re: Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Sáb Out 03, 2020 7:21 pm
por GhostPower
Boa noite
grononmc,
Isso e este objeto vou duplicar ele para cada um armazenar uma posiçao no array
Tem com fazer isso? tem outras opçoes?
Muito obrigado
Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Sáb Out 03, 2020 7:39 pm
por Chuaschinai
Ta, pelo que entendi na questão de colisão do slot, seria com o mouse quando passasse por cima?, se for isso basta usar um função chamada, point_in_rectangle para checar se o mouse esta dentro deste slot.
Código: Selecionar todos
var _mouse_on_slot = point_in_rectangle(mouse_x, mouse_y, bbox_left, bbox_top, bbox_right, bbox_bottom);
if(mouse_check_button(mb_left) && _mouse_on_slot) {
// Faz alguma coisa
}
Ele vai retornar true para a variável se o mouse estiver dentro do slot, assim você pode manipular slots duplicados.
Você pode tambem usar um Event->Mouse Enter e Mouse Leave, para saber se o mouse esta dentro do objeto.
Não sei se é realmente isso que você quer.
Re: Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Dom Out 04, 2020 2:41 pm
por GhostPower
Boa tarde
grononmc,
Entao cara, a parte de colisao ja sabia fazer.
Como sao objetos duplicado nao consigo fazer isso para cada objeto na room porque nao tenho esta opçao, ou consigo?
Obrigado pela ajuda.
Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Dom Out 04, 2020 4:03 pm
por Chuaschinai
No Gamemaker, cada objeto independente de ser duplicado, possui um ID único quando você cria ele, se você usar o Event->Mouse Enter(mouse entra no objeto) e Event->Mouse Leave(mouse sai do objeto), e colocar o código que necessita la, todos os objeto duplicados iram se comportar da mesma maneira, dai não precisa fazer para cada um.
Re: Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Dom Out 04, 2020 5:18 pm
por GhostPower
Boa Tarde
grononmc
Entao como faço isso, ex:
...
Evento Objeto original
if colidir com o item entao
slot[0,0] = other;
fim do if
Copia do objeto
if colidir com o item entao
slot[0,1] = other;
fim do if
...
Tenho 10 copia dele, so consigo ver a colisao do original.
Ou e melhor fazer 10 objeto e ai consigo ver cada colisao? ou faço com um objeto controlador?
Qual e a melhor maneira?
Obrigado.
Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Dom Out 04, 2020 6:53 pm
por Chuaschinai
Cria uma variável chamada uid nos slots, e numere eles de 0 a 9, quando colidir faça assim:
if colidir com o item entao
slot[0, uid] = other;
fim do if
Assim ele salvará com o uid respectivo do slot, pelo que entendi é isso.
Re: Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Ter Out 06, 2020 8:44 pm
por GhostPower
Boa noite
grononmc,
Blz, testarei isso, mas existe um jeito do objeto controlar o inventario de uma maneira mais facil?
Obrigado pela ajuda.
Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Ter Out 06, 2020 9:18 pm
por Chuaschinai
Normalmente quando faço inventário, uso um objeto de Controle, e somente desenho os slots com o Draw Gui, somente usando array, e ou ds_list, eu recomendo se for um Quick Inventory(inventário de acesso rápido), usar ds_list, pois é sempre mais fácil de manipular, e agora com a nova versão do Gamemaker é ainda mais prático de acessá-los.
Re: Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Qui Out 08, 2020 7:51 pm
por GhostPower
Boa noite
grononmc,
Cara, sem colisao? Podeira mostra um exemplo simples?
Muito obrigado.
Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Qui Out 08, 2020 9:16 pm
por Chuaschinai
Não entendi, você quer que o slot faça a colisão com o item?, eu estava achando que os slots eram fixos e quem colidia com os itens era o personagem, se for isso te mando um exemplo.
Re: Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Sáb Out 10, 2020 7:55 am
por GhostPower
Bom dia
grononmc,
Pensei que nao existia outra forma de pegar a refencia do objeto, sem o item colidir com o objeto(slot).
Entao, um exemplo de com vc faria o seu so usando o event Draw e ds_list e etc como vc falou, apenas para comparar se mais facil ou nao.
Obrigado.
Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Sáb Out 10, 2020 11:51 am
por Chuaschinai
Bom, fiz 2 exemplos bem simples, utilizando Objetos para o slot, e utilizando o Draw GUI para desenhar os slots na tela, dei um comentada no código qualquer coisa só perguntar.
Para colocar os itens nos Slots, basta arrastalos com o mouse.
Esse exemplo esta na versão 2.3 do GameMaker.
Exemplo Slot
Re: Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Dom Out 11, 2020 7:23 pm
por GhostPower
Boa noite grononmc,
Vlw cara, em questao de otimizaçao, voce saberia qual consome menos recurso do pc/android: ds_list, array, etc?
Muito obrigado.
Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Dom Out 11, 2020 8:18 pm
por Chuaschinai
Android não é minha área, porém depende muito da forma que você irá utilizar, creio que você nem notara a diferenças, pois normalmente não é necessário adicionar objetos a lista a todo momento, porque os problemas de performance acontece quando algo é usado por demasiado, como por exemplo adicionar milhares de dados em uma lista de uma só vez.
Arrays são sim mais rápidos não importa o sistema, a diferença entre eles e listas, é que listas são melhores manipuláveis dentro do código, e essa manipulação pode sim causar perda em performance.
Use array se preferir vai funcionar normalmente, as dicas que dou são para tomar cuidado em usar Accessors
Ex.: list[|0] = 0; é mais lento do que usar ds_list_add(list, 0)
No array tambem Ex.:
array = [];
array[@0] = 1;
é mais rápido fazer assim:
array = array_create(10); Inicia um tamanho fixo
array[@0] = 1;
É mais rápido pois você aloca o espaço na memória antes de adicionar valores ao array, em quanto opção mais lenta faz isso no momento que adiciona o valor.
No geral se precisa de performance user arrays.
Re: Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Seg Out 12, 2020 11:36 am
por GhostPower
Bom dia,
Vlw grononmc, Primeiro o @ e o ponteiro no game make? Este tamanho fixo esta ligado em um array com linhas e colunas? Posso acessa assim:
array = array_create(10);
array[@var] = 0;
e para coluna:
array[@linha,@coluna] = 0;
Muito obrigado.
Re: Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Seg Out 12, 2020 1:24 pm
por Chuaschinai
GhostPower escreveu:Bom dia,
Vlw grononmc, Primeiro o @ e o ponteiro no game make? Este tamanho fixo esta ligado em um array com linhas e colunas? Posso acessa assim:
array = array_create(10);
array[@var] = 0;
e para coluna:
array[@linha,@coluna] = 0;
Muito obrigado.
No caso creio que funcione assim:
array[@line, coluna], mas pode também usar de outras formas sem o
@.
Ex.:
array[line, coluna]
array[line][coluna] <- Funcional na nova versão 2.3 do GameMaker
ou
array[@line][@coluna] <- Funcional na nova versão 2.3 do GameMaker
O Accessor @, é usado como referencia, quando precisa modificar sem armazenar em outra variável como em um script.
Re: Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Ter Out 13, 2020 8:54 pm
por GhostPower
Boa noite grononmc,
Vlw cara, estarei testando os exemplos.
Muito obrigado.
Re: GameMaker Studio 2: Como colocar um array no objeto clone
Enviado: Seg Nov 02, 2020 10:31 am
por GhostPower
Bom dia,
Nao consigo acessar as variaveis dos objetos clones?
Codigo Create
Colidi com o item
Mas tenho varios objeto clones dele, como faço para acessa eles?
Queria um maneira de procurar todos os slots(objeto clone) que estajam "Vazio"?
Obrigado pela ajuda.