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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 18/04/2013
Número de Mensagens : 1
Insígnias de JAM :

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

Pergunta: segmentos de cobra

em Qui 18 Abr 2013, 14:27
Sou iniciante e estou tentando fazer um jogo estilo "cobrinha", e eu gostaria de saber como criar vários segmentos e como fazer esse segmentos ficarem alinhados.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

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

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

Re: Pergunta: segmentos de cobra

em Qui 18 Abr 2013, 16:20
Isso é mais complicado do que parece... Vamos começar assim: cada segmento é um quadrado de um pixel. A cobra se move a um pixel/step.
Então, na verdade, você tem um monte de quadrados seguindo outros quadrados, até um quadrado principal, que é a cabeça. Então temos algumas formas de criar a ilusão do movimento.

A primeira forma é a seguinte, a cabeça cria um corpo (segmento) por step. Cada segmento criado fica paradinho no lugar. Depois de um tempo (definido pela cabeça, na hora de criar o corpo), esse segmento é destruído. Quanto maior o tempo, maior a cobra.
Como a cabeça não pára de se mexer, um segmento nunca fica sobre o outro (a não ser, talvez, no começo do jogo).
Eu não gosto desse método.

Um outro método é fazer com que cada segmento tenha um "criador", tomando a posição dele no começo do step. Assim, o último pula pra posição do penúltimo, que pula pra posição do antepenúltimo, assim sucessivamente, até que o segundo pula pra posição da cabeça, que, essa sim, define uma posição nova.
Pra aumentar a cobra, o último segmento cria mais um, na mesma posição que ele, passando a ser o penúltimo. No step seguinte, o (novo) último não se mexe, porque a posição do penúltimo é igual à dele, e o penúltimo vai pra posição do antepenúltimo, que já não quer mais saber dessa conversa.
Esse método já permite um movimento mais suave, segmentos maiores. E também permite usar sprites nos segmentos, mas definir cada sprite pros casos da cobra fazer curva, já é um trabalho maior.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/04/2013
Número de Mensagens : 206
Insígnias de JAM :

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

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

Re: Pergunta: segmentos de cobra

em Sex 19 Abr 2013, 22:22
avatar
Data de inscrição : 15/08/2010
Número de Mensagens : 1598
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://spyreserver.16mb.com

Re: Pergunta: segmentos de cobra

em Sex 19 Abr 2013, 23:06
eu criei um joguinho desse tipo uma vez e era mais ou menos assim:
objetos:
Cobra, Cauda,Score

no step da cobra:
Código:
if(keyboard_check(vk_right)){dir=0}
if(keyboard_check(vk_up)){dir=90}
if(keyboard_check(vk_left)){dir=180}
if(keyboard_check(vk_down)){dir=270}

if(place_snapped(11,11)){
instance_create(x,y,Cauda)
}

alarm[0] da Cobra:
Código:
if(dir=0){x+=16}else
if(dir=90){y-=16}else
if(dir=180){x-=16}else
if(dir=270){y+=16}
alarm[0]=16

cobra, colisão com Score
Código:
score+=1
with(other){instance_destroy()}

no step da Cauda:
Código:
if(instance_number(Cauda)<score){instance_destroy()}

Acho que foi isso mesmo!

Ps: os sprites devem ser 16x16 para funcionar desse modo, do contrario faça mudanças no codigo
Conteúdo patrocinado

Re: Pergunta: segmentos de cobra

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