Conectar-se
Quem está conectado
33 usuários online :: 6 usuários cadastrados, Nenhum Invisível e 27 Visitantes

dharrison, gart30, Katerp, PedroX, Tedi Ripper, Willy

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota A
Notas recebidas : D + A + A
Data de inscrição : 06/12/2009
Número de Mensagens : 1229
Insígnias de JAM :

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

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

Auto Draw GM

em Qua 10 Mar 2010, 17:48
O Auto draw é a criação automatica de sprites, que nem no RPG Maker, bem, em uma engine i que havia um bloco com um contorno preto e cor cinza, bem simples, então estava lá na room em uma engine de acho que tiro, então fui testar os simples blocos ficaram mais ou menos assim:


Curioso com isso fui verificar os codigos do objeto e no draw tinha algo como "metting, bom, como eu formatei o pc eu perdi ela.
Alguém poderia me dizer como fazer isso no GM?
Nota: O codigo que eu me lembre acho que tava no evento Draw do objeto
avatar
Data de inscrição : 26/09/2008
Número de Mensagens : 890
Insígnias de JAM :

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

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

Re: Auto Draw GM

em Seg 15 Mar 2010, 14:56
Um jeito que eu sei que dá para fazer é criar um sprite com todas as possibilidades de paredes que, se não me engano, são 29 (ou seja, em uma subimage, totalmente contornado (não há nenhum bloco por perto); em outra, aberto na direita (há um bloco à direita); outra, aberto em cima; aberto na esquerda; aberto embaixo; aberto na direita e em cima; em cima e na esquerda; esquerda e embaixo; embaixo e na direita; direita e esquerda; em cima e embaixo; na direita, em cima e na diagonal entre os dois; etc.).

E então, testar onde há blocos (do mesmo objeto) para escolher a subimage:

// Step:

if (!place_meeting(x+n, y, object_index)) // Não há à direita
{
if (!place_meeting(x, y-n, object_index)) // Não há em cima
{
if (!place_meeting(x-n, y, object_index)) // Não há à esquerda
{
if (!place_meeting(x, y+n, object_index)) // Não há embaixo
image_index = 0;
else // Há embaixo
image_index = 1;
}
else // Há à esquerda
{
if (!place_meeting(x, y+n, object_index)) // Não há embaixo
image_index = 2;
else // Há embaixo
image_index = 3;
}
...


O único problema é que tem que ser bem cuidadoso e paciente para ter certeza de que há todas as possibilidades, para relacionar todas as condições corretamente com as subimages, etc.

Se foi feito desse jeito e os códigos estavam no draw, pode ter sido usado draw_sprite em vez de image_index. Mas não dá pra ter nenhuma certeza do jeito que foi usado nessa tal engine.
Data de inscrição : 29/05/2009
Número de Mensagens : 351
Insígnias de JAM :

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

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

Re: Auto Draw GM

em Seg 15 Mar 2010, 15:51
@Igor KinGamer escreveu:Um jeito que eu sei que dá para fazer é criar um sprite com todas as possibilidades de paredes que, se não me engano, são 29 (ou seja, em uma subimage, totalmente contornado (não há nenhum bloco por perto); em outra, aberto na direita (há um bloco à direita); outra, aberto em cima; aberto na esquerda; aberto embaixo; aberto na direita e em cima; em cima e na esquerda; esquerda e embaixo; embaixo e na direita; direita e esquerda; em cima e embaixo; na direita, em cima e na diagonal entre os dois; etc.).

E então, testar onde há blocos (do mesmo objeto) para escolher a subimage:

<gml class="brush: gml;">// Step:

if (!place_meeting(x+n, y, object_index)) // Não há à direita
{
if (!place_meeting(x, y-n, object_index)) // Não há em cima
{
if (!place_meeting(x-n, y, object_index)) // Não há à esquerda
{
if (!place_meeting(x, y+n, object_index)) // Não há embaixo
image_index = 0;
else // Há embaixo
image_index = 1;
}
else // Há à esquerda
{
if (!place_meeting(x, y+n, object_index)) // Não há embaixo
image_index = 2;
else // Há embaixo
image_index = 3;
}
...</gml>

O único problema é que tem que ser bem cuidadoso e paciente para ter certeza de que há todas as possibilidades, para relacionar todas as condições corretamente com as subimages, etc.

Se foi feito desse jeito e os códigos estavam no draw, pode ter sido usado draw_sprite em vez de image_index. Mas não dá pra ter nenhuma certeza do jeito que foi usado nessa tal engine.
sim eh + ou - isso a diferença eh que sao 256 possibilidades e nao 29
ja q sao 8 lados
2 ^ 8 256
111
101
111
eu fiz uma engine
http://www.4shared.com/file/241867481/9e3dd0ee/RAYCAST_LIGHTING.html
pode usar como base , mais nao copia pq eu vou usar ele ( eh um projeto meu )
avatar
Ranking : Nota A
Notas recebidas : D + A + A
Data de inscrição : 06/12/2009
Número de Mensagens : 1229
Insígnias de JAM :

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

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

Re: Auto Draw GM

em Seg 15 Mar 2010, 17:16
Poxa pensei que esse topico tava esquecido, pois bem, Kin Games, não entendi muito o seu codigo porque deu alguns erros aqui com os { e }.
E dungeon333 não entendi a engine, mas pelo projeto ele esta ótimo, tentei fazer um parecido no meu jogo para um editor de mapas.
avatar
Data de inscrição : 22/12/2009
Número de Mensagens : 1164
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://nintendocenterbr.forumeiros.com

Re: Auto Draw GM

em Seg 15 Mar 2010, 18:05
creat:
Código:
{
edge1 = place_meeting(x+1,y,object_index) or (x+50 > room_width);
edge2 = place_meeting(x,y-1,object_index) or (y-2 < 0);
edge4 = place_meeting(x-1,y,object_index) or (x-2 < 0);
edge8 = place_meeting(x,y+1,object_index) or (y+50 > room_height);

image_index = edge1+edge2*2+edge4*4+edge8*8;
image_speed = 0;

shadow_image = edge1+edge4*2;
}
step:
Código:
{
draw_sprite(sprite_index,image_index,x,y);
if edge8 = 0
    {
    draw_set_blend_mode(bm_subtract);
    draw_sprite(spr_chao_sombra,shadow_image,x,y+48);
    draw_set_blend_mode(bm_normal);
    }
}
avatar
Ranking : Nota A
Notas recebidas : D + A + A
Data de inscrição : 06/12/2009
Número de Mensagens : 1229
Insígnias de JAM :

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

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

Re: Auto Draw GM

em Seg 15 Mar 2010, 18:51
donte ainda não entendo para que serve o objeto sombra, eu uso cubos pretos só quero fazer o contorno...
avatar
Data de inscrição : 26/09/2008
Número de Mensagens : 890
Insígnias de JAM :

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

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

Re: Auto Draw GM

em Seg 15 Mar 2010, 18:56
@dungeon333 escreveu:sim eh + ou - isso a diferença eh que sao 256 possibilidades e nao 29
ja q sao 8 lados
2 ^ 8 256
111
101
111

São 256 possibilidades de combinação, mas não há um sprite para cada combinação (por exemplo, se houver apenas um bloco na diagonal, o sprite vai ser o mesmo que se não houver nenhum bloco).

Essa é uma tile set que eu fiz para um jogo meu, tem 47 imagens (os 3 últimos quadrados são apenas espaços vazios), acho que todas possíveis estão aí:


@gabrielsch escreveu:Poxa pensei que esse topico tava esquecido, pois bem, *KinGamer*, não entendi muito o seu codigo porque deu alguns erros aqui com os { e }.

Eu não postei o código completo (por isso o '...' no final). Para fazer esse código, já tem que ter o sprite pronto, com todas subimages, sabendo a ordem. Só estava dando um exemplo.
avatar
Ranking : Nota A
Notas recebidas : D + A + A
Data de inscrição : 06/12/2009
Número de Mensagens : 1229
Insígnias de JAM :

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

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

Re: Auto Draw GM

em Seg 15 Mar 2010, 19:07
Vamos acabar com isso, o kin gamer você pode fazer uma engine para eu analizar bem isso dai eu posso ficar fazendo uns testes aqui, então fazer os meus sprites aqui.
avatar
Data de inscrição : 22/12/2009
Número de Mensagens : 1164
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://nintendocenterbr.forumeiros.com

Re: Auto Draw GM

em Seg 15 Mar 2010, 20:20
então tira o step ;) pega do mesmo jeito ;)
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