[Ajuda] Problema em criar pista estilo SimCity

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

[Ajuda] Problema em criar pista estilo SimCity

Mensagem por macedoboka em Sex 24 Jul 2015, 04:45

Olá pessoal , gostaria de uma ajudinha nesse problema ,está dando um erro.
a imagem abaixo é uma strip de 12 imagens




e estou ultilizando esse codigo pra poder modificar as imagens de acordo com a posiçao que ela for colocada na room

Código:
if place_meeting(x+1,y,obj_Pista) // horizontal direita
{
    image_index = 0
    image_speed = 0
}
if place_meeting(x-1,y,obj_Pista) // horizontal esquerda
{
    image_index = 0
    image_speed = 0
}
if place_meeting(x,y+1,obj_Pista) // vertical baixo
{
    image_index = 1
    image_speed = 0
}
if place_meeting(x,y-1,obj_Pista) // vertical cima
{
    image_index = 1
    image_speed = 0
}
if place_meeting(x-1,y,obj_Pista) && place_meeting(x,y+1,obj_Pista) // esquerda,baixo
{
    image_index = 2
    image_speed = 0
}
if place_meeting(x-1,y,obj_Pista) && place_meeting(x,y-1,obj_Pista) // esquerda,cima
{
    image_index = 3
    image_speed = 0
}
if place_meeting(x+1,y,obj_Pista) && place_meeting(x,y+1,obj_Pista) // direita,baixo
{
    image_index = 4
    image_speed = 0
}
if place_meeting(x+1,y,obj_Pista) && place_meeting(x,y-1,obj_Pista)// direita,cima
{
    image_index = 5
    image_speed = 0
}
if place_meeting(x-1,y,obj_Pista) && place_meeting(x-1,y,obj_Pista) && place_meeting(x,y+1,obj_Pista) //esquerda,direita,baixo
{
    image_index = 6
    image_speed = 0
}
if place_meeting(x-1,y,obj_Pista) && place_meeting(x-1,y,obj_Pista) && place_meeting(x,y-1,obj_Pista) // esquerda, direita, cima
{
    image_index = 7
    image_speed = 0
}
if place_meeting(x,y-1,obj_Pista) && place_meeting(x,y+1,obj_Pista) && place_meeting(x+1,y,obj_Pista) //cima,baixo,direita
{
    image_index = 8
    image_speed = 0
}
if place_meeting(x-1,y,obj_Pista) && place_meeting(x+1,y,obj_Pista) && place_meeting(x,y-1,obj_Pista)//cima,baixo,esquerda
{
    image_index = 9
    image_speed = 0
}

if place_meeting(x-1,y,obj_Pista) && place_meeting(x,y-1,obj_Pista) && place_meeting(x+1,y,obj_Pista) && place_meeting(x,y+1,obj_Pista)//todas as direcoes

{
    image_index = 10
    image_speed = 0
}

o problema é que a prioridade de algumas condicoes está passando por cima de outras , tipo se eu quero uma curva da direita pra esquerda a imagem desenhada é a como se eu tivesse colocado direita,esquerda,cima por exemplo, o teste de 3 condicoes esta passando a frente do teste de 2 condicoes.

agradeco a ajuda.

macedoboka

Número de Mensagens : 63
Idade : 25
Data de inscrição : 02/03/2014
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Ajuda] Problema em criar pista estilo SimCity

Mensagem por Gonçalves em Sex 24 Jul 2015, 07:21

Primeiro, tá certo ser x+1? Não deveria ser ao invés de 1 o tamanho da imagem? Não sou de usar place_meeting e posso estar equivocado, de qualquer forma... Eu uso collision_point().

Segundo, pra me facilitar nesses scripts, eu costumo criar vars locais ali antes de checar, assim:

Código:
var R,L,U,D;
R=place_meeting(x+1,y,obj_Pista)
L=place_meeting(x-1,y,obj_Pista)
U=place_meeting(x,y-1,obj_Pista)
D=place_meeting(x,y+1,obj_Pista)

Na hora de checar fica muito mais fácil, sendo assim:

Código:
if R && L && U//se tiver outro na esquerda, direita, e baixo
{
     //rá
}

Terceiro, se tu quer priorizar uma certa condição (se ela acontecer, outra será descartada) use else-if. Aí tu organiza por ordem de prioridade as condições, começando com as que checam mais (ou seja, a que checa os 4 lados, depois as que 3 e por aí vai...):


Código:
if R && L && U && D//se tiver outro em todos os lados (4 lados)
{
     //rá
}
else if R && L && U//se tiver outro na esquerda, direita, e cima (3 lados)
{
     //rá
}
else if R && L && D//se tiver outro na esquerda, direita, e baixo (3 lados)
{
     //rá
}

//e vai...

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Ajuda] Problema em criar pista estilo SimCity

Mensagem por LightSpeedy em Sex 24 Jul 2015, 13:07

mude de "+1" para metade do tamanho da sprite,por exemplo,se a sprite for 32x32 ponha "+16"

eu fiz um sistema identico ao seu rapidinho aqui,e isso funcionou



LightSpeedy

Ranking : Nota C
Número de Mensagens : 354
Data de inscrição : 24/04/2013
Notas recebidas : C
Reputação : 40
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Ajuda] Problema em criar pista estilo SimCity

Mensagem por macedoboka em Sab 25 Jul 2015, 01:13

Goncalves obrigado nao incluir o collision_point , deixei o place_meeting ,esse metodo de criar as variaveis e atribuir a funcao facilita muito , nos meus proximos scripts vou sempre usar dessa forma usei o else if e ficou lindo e
Lightspeed inclui esse raciocinio de colocar a metade do tamanho da sprite e fucionou , está perfeito

obrigado!
Joinha pros 2

macedoboka

Número de Mensagens : 63
Idade : 25
Data de inscrição : 02/03/2014
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Ajuda] Problema em criar pista estilo SimCity

Mensagem por Conteúdo patrocinado Hoje à(s) 12:31


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