Conectar-se
Quem está conectado
15 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 14 Visitantes

CRP-Max

Ver toda a lista


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

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

[Pedido] Movimentação de quatro direções com mouse

em Ter 30 Jun 2015, 00:56
Pessoal, gostaria de saber como fazer um objeto(personagem) trocar de sprites dependendo da direção que está indo dentro de um path.
Acho que o mais parecido com isso seria a movimentação de Tibia.
Eu já procurei tutoriais, mas os q achei eram sempre com 8 direções(ou isométricos).

Explicando direitinho gostaria que o personagem fosse para onde o a pessoa clicou desviando dos objetos no caminho(pathfinding) e mudando de sprite, entre cima,baixo,esquerda e direita.(nada de diagonais).
Se alguém souber um link para um tutorial ou engine, ou puder fazer um (Tutorial ou engine), ficaria muito grato.

É isso aí, boa sorte pra todos.
Muito sucesso e poucos bugs... tongue
avatar
Ranking : Sem avaliações
Data de inscrição : 21/11/2010
Número de Mensagens : 775
Insígnias de JAM :

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

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

Re: [Pedido] Movimentação de quatro direções com mouse

em Ter 30 Jun 2015, 08:55
Opa, é só checar a direção dele, algo assim:

Código:

if direction<135 and direction>45 then sprite_index=spr_cima
if direction>135 and direction<225 then sprite_index=spr_esquerda
if direction>225 and direction<315 then sprite_index=spr_baixo
if direction>315 or direction<45 then sprite_index=spr_esquerda

joga isso ai no step e troca os spr_... pelas sprites que vc usa...

Flw flw
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 09/05/2013
Número de Mensagens : 821
Insígnias de JAM :

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

Re: [Pedido] Movimentação de quatro direções com mouse

em Ter 30 Jun 2015, 09:53
Tem meu tutorial logo ai abaixo na minha assinatura, você precisaria apenas adapta-lo.
avatar
Ranking : Nota C
Notas recebidas : D+C+C
Data de inscrição : 20/08/2013
Número de Mensagens : 77
Insígnias de JAM :

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

Re: [Pedido] Movimentação de quatro direções com mouse

em Ter 30 Jun 2015, 15:18
Para trocar de sprites faça oq o Tedi Ripper falou
Tedi Ripper escreveu:Opa, é só checar a direção dele, algo assim:

Código:

if direction<135 and direction>45 then sprite_index=spr_cima
if direction>135 and direction<225 then sprite_index=spr_esquerda
if direction>225 and direction<315 then sprite_index=spr_baixo
if direction>315 or direction<45 then sprite_index=spr_esquerda

joga isso ai no step e troca os spr_... pelas sprites que vc usa...

Flw flw
Agora se quer um pathfind com apenas 4 direções vc soh precisa mudar isso:
Código:

mp_grid_path(sua grid,seu path,x inicial,y inicial,x destino,y destino,PERMITO DIAGONAL coloque false ja que vc n quer)
Se não sabe usar pathfinding . é só pesquisar no google tem muito disso.
Espero ter ajudado alien
avatar
Data de inscrição : 11/04/2014
Número de Mensagens : 7
Insígnias de JAM :

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

Re: [Pedido] Movimentação de quatro direções com mouse

em Ter 30 Jun 2015, 15:30
Tedi Ripper escreveu:Opa, é só checar a direção dele, algo assim:

Código:

if direction<135 and direction>45 then sprite_index=spr_cima
if direction>135 and direction<225 then sprite_index=spr_esquerda
if direction>225 and direction<315 then sprite_index=spr_baixo
if direction>315 or direction<45 then sprite_index=spr_esquerda

joga isso ai no step e troca os spr_... pelas sprites que vc usa...

Flw flw

Valeu mesmo, só tive que adaptar, não sei pq, acho q por uma incompatibilidade com meu projeto colocar no step não funcionou, então eu guardei numa variavél:

e no draw eu fiz:
Código:
switch(direc){
case (1):
draw_sprite(spr_testeW,0,x,y);
break;
case (2):
draw_sprite(spr_testeA,0,x,y);
break;
case (3):
draw_sprite(spr_testeS,0,x,y);
break;
case (4):
draw_sprite(spr_testeD,0,x,y);
break;
}

Muito obrigado a todos.
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