Pergunta: segmentos de cobra

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Pergunta: segmentos de cobra

Mensagem por UrielGB 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.

UrielGB

Número de Mensagens : 1
Data de inscrição : 18/04/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Pergunta: segmentos de cobra

Mensagem por saim 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.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Pergunta: segmentos de cobra

Mensagem por MagnetBomber em Sex 19 Abr 2013, 22:22


MagnetBomber

Ranking : Nota C
Número de Mensagens : 206
Idade : 15
Data de inscrição : 07/04/2013
Notas recebidas : C
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Pergunta: segmentos de cobra

Mensagem por Isaque Onix 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

Isaque Onix

Número de Mensagens : 1597
Idade : 23
Data de inscrição : 15/08/2010
Reputação : 147
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Re: Pergunta: segmentos de cobra

Mensagem por Conteúdo patrocinado Hoje à(s) 08:52


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum