GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


Criando um Inventário

+8
rodrigo2219
david199
Fireheaddew
GMaker 81
Benjamim_M
Mr. Kaleb
Dancity
JV Justino
12 participantes

Ir para baixo

inventario - Criando um Inventário Empty Criando um Inventário

Mensagem por JV Justino Dom 02 Out 2011, 12:47

Nome: Criando um inventário
Requerimentos: GM8 Lite/Pro
Descrição: Como criar um inventário usando Arrays
Nível de Dificuldade: Intermediário/Avançado

Olá a todos!
Neste tutorial, será ensinado a criar um inventário usando Arrays e o loop For.
Para entender o tutorial, será preciso ter conhecimento sobre Arrays e o loop For.

Vamos Começar!


1- Preparando o Conteúdo


Para fazer o nosso inventário, usaremos alguns simples itens.
Para isso, crie uma sprite de nome spr_items. Carregue nela, respectivamente, as imagens:inventario - Criando um Inventário Spritens_strip11
E coloque como primeira sub-imagem um espaço vazio. Logo será explicado o porquê.
Crie também uma sprite chamada spr_arrow e carregue esta imagem: inventario - Criando um Inventário Spr_arrow

2- Criando o Inventário


Aqui é onde tudo começa. Nosso inventário terá 32 slots, ou seja, os espaços onde serão armazenados os itens.
Crie um objeto chamado obj_inv. Nele coloque o seguinte código:

Código:
for(i=1;i<=32;i+=1)
{
    global.inv[i,0]=0;
    global.inv[i,1]='-';
    global.inv[i,2]=0;
    global.inv[i,3]=0;
    global.inv[i,4]='';
}
selector=1;

Explicando:
A variável global.inv é uma array bi-dimensional. O primeiro índice define o slot que será criado/alterado. Foram criados 32 slots, mas você pode colocar mais slots também. O segundo índice define os atributos do slot. Eles são


  • 0- É a identificação do slot. Cada item tem um número de identificação. Quando o seu valor é 0, o slot ficará vazio
  • 1- É o nome do item.
  • 2- É a quantidade de itens no slot. Quando se tem mais de um item do mesmo tipo no inventário, eles podem ocupar o mesmo slot.
  • 3- É a sprite do item. Como a sprite dos itens é única, este índice definirá a sub-imagem de cada item. E quando não há nenhum item no slot, não será desenhado nada. Por isso foi colocada a sub-imagem em branco.
  • 4- É a descrição do item. Uma breve descrição sobre o item do slot, dizendo o que é e o que faz.


Selector será a variável que definirá o slot que será selecionado.





Agora no evento Step, vamos colocar este pequeno código:

Código:
if(keyboard_check_pressed(vk_up) && selector!=1)
{
    selector-=1;
}
if(keyboard_check_pressed(vk_down) && selector!=32)
{
    selector+=1;
}

Explicando:
Quando apertar para cima ou para baixo, o selecionador irá se mover.





Agora vamos desenhar o inventário. No evento Draw coloque:

Código:
for(i=1;i<=16;i+=1)
{
    draw_set_color(c_black)
    draw_text(112,128+i*14,string(global.inv[i,1]))
    draw_text(352,128+i*14,string(global.inv[i+16,1]))
    draw_text(288,128+i*14,'x'+string(global.inv[i,2]))    
    draw_text(512,128+i*14,'x'+string(global.inv[i+16,2]))
}
draw_sprite(spr_items,global.inv[selector,3],96,80)
draw_set_color(c_black)
draw_text(160,80,string(global.inv[selector,4]))
if(selector<=16)
draw_sprite(spr_arrow,0,96,128+selector*14);
else
draw_sprite(spr_arrow,0,336,-96+selector*14);

Teste o jogo e verá desenhados vários slots, e uma seta controlada pelo teclado.
Seu inventário já está pronto!


3- Configurando os Slots



O inventário já foi criado, mas não configurado. Mesmo que um item fosse adicionado ao inventário, ele não teria nome, imagem e nem descrição.

Para configurar tudo isso, será usado um script, chamado scr_inv_items. Nele será colocado o seguinte código:

Código:
for(i=1;i<=32;i+=1)
{
    if global.inv[i,0]=1
    {
        global.inv[i,1]='Tônico'
        global.inv[i,3]=1
        global.inv[i,4]='Recupera 50 HP de um#aliado'
    }
    if global.inv[i,0]=2
    {
        global.inv[i,1]='Tônico Médio'
        global.inv[i,3]=2
        global.inv[i,4]='Recupera 200 HP de um#aliado'
    }
    if global.inv[i,0]=3
    {
        global.inv[i,1]='Tônico Completo'
        global.inv[i,3]=3
        global.inv[i,4]='Recupera todo HP de um#aliado'
    }
    if global.inv[i,0]=4
    {
        global.inv[i,1]='Poção Simples'
        global.inv[i,3]=4
        global.inv[i,4]='Recupera 20 MP de um#aliado'
    }
    if global.inv[i,0]=5
    {
        global.inv[i,1]='Poção Mágica'
        global.inv[i,3]=5
        global.inv[i,4]='Recupera 50 MP de um#aliado'
    }    
    if global.inv[i,0]=6
    {
        global.inv[i,1]='Mega Poção'
        global.inv[i,3]=6
        global.inv[i,4]='Recupera todo o MP de#um aliado'
    }
    if global.inv[i,0]=7
    {
        global.inv[i,1]='Elixir'
        global.inv[i,3]=7
        global.inv[i,4]='Recupera todo o HP e#MP de um aliado'
    }
    if global.inv[i,0]=8
    {
        global.inv[i,1]='Ultra Elixir'
        global.inv[i,3]=8
        global.inv[i,4]='Recupera todo o HP e#MP de todos os#aliados'
    }
    if global.inv[i,0]=9
    {
        global.inv[i,1]='Cura'
        global.inv[i,3]=9
        global.inv[i,4]='Cura o status de um#aliado'
    }
    if global.inv[i,0]=10
    {
        global.inv[i,1]='Revive'
        global.inv[i,3]=10
        global.inv[i,4]='Revive um aliado com#metade do HP'
    }
}


E no evento Step coloque:

Código:
scr_inv_items()


Agora tudo foi configurado. Sempre que for adicionado um item no slot, ele receberá nome, descrição e imagem.


4- Armazenando Itens



Agora que tudo já foi preparado, vamos fazer os itens que serão armazenados.
Crie um objeto e chame-o de obj_items. No evento Create coloque:

Código:
sprite_index=spr_items;
image_speed=0;
image_index=1;

Explicando:
O objeto terá a sprite spr_items, não será animado, e sua sub-imagem é a número 1.

Agora no evento Key Press > Digits > 1 coloque:

Código:
for(i=1;i<=32;i+=1)
{
    if global.inv[i,0]=0
    {
        global.inv[i,0]=1;
        global.inv[i,2]=1;
        break;
    }
    if global.inv[i,0]=1 and global.inv[i,2]<99
    {
        global.inv[i,2]+=1;
        break;
    }
}

Explicando:
Assim que for pressionada a tecla 1, ele checará se há um slot vazio, ou um slot ocupado pelo mesmo item. Se houver, será quebrado o loop e o item será adicionado ao slot, e a quantidade será aumentada.

Teste o jogo. Pressione a tecla 1 e verá que o item é adicionado ao slot, e quando selecionado, desenha a sua imagem e sua descrição.





Podem ser feitos mais itens. Para isso, cole os códigos, seguindo o spoiler:
Clique aqui para ver os códigos:
Teste o jogo novamente, aperte as teclas correspondentes e veja o resultado





E este tutorial acaba por aqui. Como devem ter visto, ele está bem simples. Caso queira ver algo mais completo, veja minha Engine de RPG, que utiliza o sistema aqui ensinado.
Qualquer dúvida, crítica ou sugestão, é só falar!

さよぅなら!


Última edição por JV Justino em Ter 09 Dez 2014, 17:43, editado 5 vez(es)
JV Justino
JV Justino

Games Ranking : Nota A

Notas recebidas : A+A
Data de inscrição : 07/12/2010
Reputação : 20
Número de Mensagens : 619
Prêmios : inventario - Criando um Inventário Empty

Medalhas x 0 Tutoriais x 13 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

inventario - Criando um Inventário Empty Re: Criando um Inventário

Mensagem por Dancity Dom 02 Out 2011, 13:51

Parabéns, o tutorial está muito bem explicado, organizado e formatado. A divisão ficou ótima. Me agradou a forma com que você explicou cada passo. Não tenho muito o que falar, é um tutorial excelente e de alto nível educacional para o fórum. Aprovado!
Dancity
Dancity

Games Ranking : Nota A

Notas recebidas : A
Data de inscrição : 11/01/2009
Reputação : 8
Número de Mensagens : 1340
Prêmios : inventario - Criando um Inventário Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

inventario - Criando um Inventário Empty Re: Criando um Inventário

Mensagem por Mr. Kaleb Dom 02 Out 2011, 14:44

Ow, eu fui testar mas não tem a spr_arrow.
No mais, o tutorial está muito bem explicado.
Mr. Kaleb
Mr. Kaleb

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 07/09/2010
Reputação : 21
Número de Mensagens : 1400
Prêmios : inventario - Criando um Inventário Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

inventario - Criando um Inventário Empty Re: Criando um Inventário

Mensagem por JV Justino Dom 02 Out 2011, 14:53

Acabei me esquecendo do spr_arrow
Me desculpe por isso, já estou consertando ;)

flw
JV Justino
JV Justino

Games Ranking : Nota A

Notas recebidas : A+A
Data de inscrição : 07/12/2010
Reputação : 20
Número de Mensagens : 619
Prêmios : inventario - Criando um Inventário Empty

Medalhas x 0 Tutoriais x 13 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

inventario - Criando um Inventário Empty Re: Criando um Inventário

Mensagem por Benjamim_M Dom 19 Fev 2012, 18:23

quando eu aperto 1 naum acontece nada :/
Benjamim_M
Benjamim_M

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 16/02/2012
Reputação : 1
Número de Mensagens : 57
Prêmios : inventario - Criando um Inventário Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.minegamesb.blogspot.com

Ir para o topo Ir para baixo

inventario - Criando um Inventário Empty Re: Criando um Inventário

Mensagem por GMaker 81 Dom 05 Ago 2012, 17:24

Benjamim_M escreveu:quando eu aperto 1 naum acontece nada :/

Você já experimentou por o obj_items na room
GMaker 81
GMaker 81

Data de inscrição : 27/07/2012
Reputação : 0
Número de Mensagens : 26
Prêmios : inventario - Criando um Inventário Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

inventario - Criando um Inventário Empty Re: Criando um Inventário

Mensagem por Fireheaddew Qua 08 Ago 2012, 19:29

aproveitando que o tópico foi revivido...
Ótimo tutorial, faz um tempo que procurava algo parecido!
A forma como você explica o tutorial permite que o usuário entenda para que serve cada função e dessa forma ele saberá como personalizar o inventário.
Uma coisa interessante que pode diminuir o tamanho código do para adicionar um item ao inventário é colocar-lo um script(scr_adicionar_item), assim:
Código:
//argument0=código do item
for(i=1;i<=32;i+=1)
{
    if global.inv[i,0]=0
    {
        global.inv[i,0]=argument0;
        global.inv[i,2]=1;
        break;
    }
    if global.inv[i,0]=argument0 and global.inv[i,2]<99
    {
        global.inv[i,2]+=1;
        break;
    }
}
Fireheaddew
Fireheaddew

Data de inscrição : 04/11/2010
Reputação : 1
Número de Mensagens : 235
Prêmios : inventario - Criando um Inventário Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

inventario - Criando um Inventário Empty Re: Criando um Inventário

Mensagem por david199 Dom 28 Jul 2013, 20:41

blz  valew ai gostei muito do tutorial eu estava prescisando aprender a criar um inventario.
david199
david199

Data de inscrição : 11/07/2013
Reputação : 4
Número de Mensagens : 72
Prêmios : inventario - Criando um Inventário Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://gmrds.blogspot.com

Ir para o topo Ir para baixo

inventario - Criando um Inventário Empty Re: Criando um Inventário

Mensagem por rodrigo2219 Ter 10 Dez 2013, 13:16

E pra fazer usar o item selecionado?
rodrigo2219
rodrigo2219

Data de inscrição : 15/09/2013
Reputação : 0
Número de Mensagens : 14
Prêmios : inventario - Criando um Inventário Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

inventario - Criando um Inventário Empty Re: Criando um Inventário

Mensagem por Zero. Ter 10 Dez 2013, 15:28

Adicione uma condição onde o item esteja colidindo com o arrow ou q o item esteja selecionado de alguma forma.
Zero.
Zero.

Data de inscrição : 19/08/2010
Reputação : 47
Número de Mensagens : 1300
Prêmios : inventario - Criando um Inventário Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

inventario - Criando um Inventário Empty Re: Criando um Inventário

Mensagem por rodrigo2219 Ter 10 Dez 2013, 15:47

Poderia dar um exemplo??
rodrigo2219
rodrigo2219

Data de inscrição : 15/09/2013
Reputação : 0
Número de Mensagens : 14
Prêmios : inventario - Criando um Inventário Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

inventario - Criando um Inventário Empty Re: Criando um Inventário

Mensagem por luizbills Ter 10 Dez 2013, 17:52

@FlyAway
Você poderia fazer um projeto com o inventório que você ensina nesse tutorial e disponibiliza-lo para download? Acho legal tutoriais com exemplos.
luizbills
luizbills

Data de inscrição : 14/09/2013
Reputação : 1
Número de Mensagens : 29
Prêmios : inventario - Criando um Inventário Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

inventario - Criando um Inventário Empty Re: Criando um Inventário

Mensagem por Isaque Onix Ter 10 Dez 2013, 18:05

não acredito que não comentei esse post
cara me ajudou muito!
adaptei para meu jogo, e funfou direitinho.
Isaque Onix
Isaque Onix

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 15/08/2010
Reputação : 147
Número de Mensagens : 1626
Prêmios : inventario - Criando um Inventário Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Unity
  • C#
  • Outros


http://spyreserver.16mb.com

Ir para o topo Ir para baixo

inventario - Criando um Inventário Empty Re: Criando um Inventário

Mensagem por Zero. Qua 11 Dez 2013, 16:10

luizbills, o tutorial n é meu =D kkkkkk mas eu tenho uma engine de inventário aqui no forum, mas acho q n ta comentada =X .
Rodrigo, se a arrow for um obj ( a arrow q falo é algo q informe oq está selecionada, como um cursor) e ele estiver em cima de um item por exemplo. faz assim.
em um evento de colisão do item com o cursos.
if keyboard_check_pressed(vk_space) // se estiver colidindo com um item e apertar espaço
{
// fazer a ação de usar o item.
}
Zero.
Zero.

Data de inscrição : 19/08/2010
Reputação : 47
Número de Mensagens : 1300
Prêmios : inventario - Criando um Inventário Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

inventario - Criando um Inventário Empty Re: Criando um Inventário

Mensagem por Isaque Onix Qua 11 Dez 2013, 16:54

spr_arrow é o sprite que mostra o objeto selecionado... da pra fazer com um quadrado transparente no meio!

esse inventario é bom pq só precisa de um objeto pra coloca-lo em ação... flw Smile
Isaque Onix
Isaque Onix

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 15/08/2010
Reputação : 147
Número de Mensagens : 1626
Prêmios : inventario - Criando um Inventário Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Unity
  • C#
  • Outros


http://spyreserver.16mb.com

Ir para o topo Ir para baixo

inventario - Criando um Inventário Empty Re: Criando um Inventário

Mensagem por rodrigo2219 Qui 12 Dez 2013, 11:15

Vou tentar.VLW
rodrigo2219
rodrigo2219

Data de inscrição : 15/09/2013
Reputação : 0
Número de Mensagens : 14
Prêmios : inventario - Criando um Inventário Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

inventario - Criando um Inventário Empty Re: Criando um Inventário

Mensagem por Riccardoric Qua 05 Nov 2014, 10:00

N consigo abrir as imagens '-' aparece um sapo e uma messagens "Click and discover imageshack" como faço ?? :/
Riccardoric
Riccardoric

Data de inscrição : 17/06/2014
Reputação : 34
Número de Mensagens : 206
Prêmios : inventario - Criando um Inventário Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

inventario - Criando um Inventário Empty Re: Criando um Inventário

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos