Conectar-se
Quem está conectado
22 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 22 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 27/06/2012
Número de Mensagens : 24
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 2
Ver perfil do usuário

Como fazer item ir para inventario

em Qua 04 Jul 2012, 11:57
Reputação da mensagem: 100% (1 votos)
É o seguinte fiz varios testes com meu inventario de 1 slot mas não consegui muitas coisas mas já compreendi +- o que tenho que fazer so não sei exatamente como.
ja tenho o inventario(com alguns codigos)
ja tenho o slot(sem codigos ou variaveis)
Player com codigos
poção (sem codigos)
O que eu quero fazer:
o player chega perto da poção e aperta z e o item vai para o slot vazio
O que eu sei fazer:
Evento de colisão na poção e o codigo if keyboard_check_press (ord('Z') {

intance_destroy()}
(so que não sei como fazer o item ir para o slot)
Obs:lembrando que meu slot não tem nenhum codigo ou variavel falando que ele está cheio o vazio.
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 106

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como fazer item ir para inventario

em Qua 04 Jul 2012, 12:32
Primeiramente você precisaria de uma variável (pode ser uma comum, já que só tem um slot) para armazenar os dados deste objeto. Numa linguagem de programação convencional, uma estrutura que contenha estes dados seria uma mão na roda. Mas para um exemplo simples, a variável contendo a sprite do objeto já basta (apesar de o método para criar o objeto no jogo precisar ser mais trabalhado).

Ao pressionar Z, defina essa variável do inventário para a sprite do objeto (usando a pseudo-variável sprite_index), e então destrua a instância. Agora no Draw do inventário, você vai usar a função draw_sprite para desenhar o conteúdo dessa variável. Mas para evitar quaisquer erros, precisamos verificar se a variável não está "vazia" - no GM há uma keyword chamada noone, que é usada para identificar recursos "vazios", não existentes. Assim, no Create de seu inventário, defina a variável para noone.

Agora, no evento de desenho, cheque se a variável não é igual a noone, e por fim desenhe a mesma usando a função que te disse antes. Mas obviamente, antes desta porção de código você deve desenhar o inventário em si.
Código:
if (var_do_obj != noone)
{
    // Sprite | index da sprite | x | y
    // Desenha a sprite nas coordenadas do inventário (acrescente uns valores no lugar do zero para alinhar ao slot)
    draw_sprite(var_do_obj, 0, x+0, y+0);
}
Agora para criar, você pode fazer o seguinte:
Código:
i = 0; // Define uma variável de iteração
obj = noone // Nosso objeto a ser criado

while (object_exists(i)) // Enquanto o objeto existir (afinal não há uma função pra determinar o número de objetos)
{
    if (object_get_sprite(i) == var_do_obj) // Checamos se a sprite do obj é a que está na variável
    {
        // É esse o nosso objeto. Yay! =D
        obj = i;
        break; // Quebra o loop while
    }
}
Isso dá certo porque cada recurso de determinado tipo no Game Maker tem seu próprio número de identificação. Assim, só é usar a variável obj e criar uma instância usando instance_create(). O código para posicionar (provavelmente usando o mouse) agorá é com você ;)

Bom desenvolvimento. Abraços!
avatar
Data de inscrição : 27/06/2012
Número de Mensagens : 24
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 2
Ver perfil do usuário

Re: Como fazer item ir para inventario

em Qua 04 Jul 2012, 16:45
Deu erro e não compreendi o segundo codigo aqui o erro e porque o draw do inventario tenho que colocar akele codigo la ele nao deveria ser no slot (o slot que ta vazio nao o inventario)
utilizo o obj inv e o obj slot
me explique um pouco mais sobre esse codigo. e me fale em que eu errei.
Código:


___________________________________________
ERROR in
action number 1
of  Step Event
for object obj_poçao:

Error in code at line 6:
      if (object_get_sprite(i) == var_do_obj) // Checamos se a sprite do obj é a que está na variável
                                  ^
at position 34: Unknown variable var_do_obj
avatar
Ranking : Nota B
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Número de Mensagens : 1013
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 79

Prêmios
   : 2
   : 0
   : 0
Ver perfil do usuário

Re: Como fazer item ir para inventario

em Qua 04 Jul 2012, 16:55
Crie a var var_do_obj no Create ou vá em Global Game Settings > Errors e ative a opção Treat unintialized variables as 0 (Que dá valor 0 à todas as variáveis não iniciadas).
avatar
Data de inscrição : 27/06/2012
Número de Mensagens : 24
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 2
Ver perfil do usuário

Re: Como fazer item ir para inventario

em Qua 04 Jul 2012, 18:55
com isso meu projeto fico travado e nao movia nada ai tive q finalizar e perdi o codigo a variavel que fez isso?ou o valor da variavel?
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1299
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 47

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuário

Re: Como fazer item ir para inventario

em Sex 06 Jul 2012, 10:59
Cara, faz 2 items, um para o slot e um pra ser pego, pq controlar 1 só é mais dificiul.

Vc coloca no item do slot pra ele ter x=posx (posição x) e y=posy. ai no create dele vc põe uma var define , e na colisão com o obj_slot e adquirir a posição x e y do slot e define=false. Pronto só isso .

E no seu código quando aperta Z o obj é destruido e tem que criar o obj do slot no proximo slot vazio. Isso vc pode trabalhar com array, na minha engine tem isso pronto.
avatar
Data de inscrição : 27/06/2012
Número de Mensagens : 24
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 2
Ver perfil do usuário

Re: Como fazer item ir para inventario

em Dom 15 Jul 2012, 00:34
vi sua engine : http://gmbr.forumeiros.com/t22920-engine-inventario-barra-de-vida-personalizada-pop-up-message
como você fez para aparecer todos inventarios fui procurar no draw so tinha uma sprite a ser desenhada ,e ainda nao compreendi como mandar o item para o inventario suas linhas de programação sao muito complexas.help me plis
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1299
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 47

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuário

Re: Como fazer item ir para inventario

em Dom 15 Jul 2012, 18:56
olha lá .
Perceba que quando vc abre o inventário, no obj_aba_item, Cria-se um loop.
é esse loop que vai definir qual slot vai ser o obj_slot, e vai criar um slot de 36 em 36 pixeis de diferença .
avatar
Data de inscrição : 27/06/2012
Número de Mensagens : 24
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 2
Ver perfil do usuário

Re: Como fazer item ir para inventario

em Seg 16 Jul 2012, 18:44
eu tava olhando o seu e notei que seu nivel de programação e super mega ulta power evoluido mas to pensando em decretar variaveis da seginte forma
create(plyaer)
poção=0
colisão com poção
destoyer blabla
poção +1
isso ainda não testei mas pode vir a funcionar!
no caso teria como fazer o que falei para fazer um inventario e qual seria a diferença dele para o seu me responsa se possivel.(se quizer explico mais detalhadamente).
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum