[RESOLVIDO]movimento de personagem

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

Resolvido [RESOLVIDO]movimento de personagem

Mensagem por GuiEdu em Ter 08 Jun 2010, 16:26

como fazer para quando apertar direita, aparecer o sprite do personagem andando à direita e esquerda aparecer o sprite do personagem andando à esquerda?
(em código)...

Mas quando soltar o botão de direção, ele pára virado para o lado apertado...
(tipo mário)
scratch


Última edição por GuiEdu em Qua 23 Jun 2010, 22:39, editado 1 vez(es)

GuiEdu

Número de Mensagens : 505
Idade : 23
Data de inscrição : 04/06/2010
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

Resolvido Re: [RESOLVIDO]movimento de personagem

Mensagem por itallo em Ter 08 Jun 2010, 16:46

siga o exemplo:
create:
char = sprite_parado

evento step:
if keyboard_check_pressed(vk_right)
{
char = spr_direita
}

evento draw:
draw_sprite(char,-1,x,y)

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO]movimento de personagem

Mensagem por Isaias em Ter 08 Jun 2010, 16:49

é mais facil usar sprite_index ...
[no step]
Código:

if keyboard_check_pressed(vk_right)
{
sprite_index = spr_direita
}

Isaias

Número de Mensagens : 374
Idade : 23
Data de inscrição : 16/08/2008
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://isaiasramos.com

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO]movimento de personagem

Mensagem por giosepeluiz em Ter 08 Jun 2010, 17:22

Ou senão, use uma sprite virada para a DIREITA e use isso

Código:
if (keyboard_check(vk_right) == true) {
  image_xscale = 1
  hspeed = 5
}

if (keyboard_check(vk_left) == true) {
  image_xscale = -1
  hspeed = -5
}

Se quiser que ele fique parado para frente:

Código:
if (keyboard_check(vk_right) == true) {
  image_xscale = 1
  hspeed = 5
}

if (keyboard_check(vk_left) == true) {
  image_xscale = -1
  hspeed = -5
}

if (keyboard_check_released(vk_left)) && (keyboard_check_released(vk_right))
{
  sprite_index = parado
  hspeed = 0
}
PS: Nos códigos acima já tem o movimento de andar...

giosepeluiz

Número de Mensagens : 110
Idade : 26
Data de inscrição : 21/05/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.orkut.com.br/Main#Profile?uid=12612551030963156921

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO]movimento de personagem

Mensagem por victor_aco em Ter 08 Jun 2010, 17:23

Complementando o que o Isaias falou.
O código dele faz você andar mas acho que ando voce para de precionar o botão para direita ele nem sempre volta pro lado correto.
Para isso temos que usar um váriavel que vai controlar a direção. Coloque no CREATE:
Código:
dir=direita
Se seu personagem começar indo para a esquerda coloque:
Código:
dir=esquerda

Agora no STEP coloca:
Código:
if keyboard_check_pressed(vk_right)
{
sprite_index = spr_direita
dir=direita
}
Bom essa função checa se o botão que está em parêntese está pressionado (no caso a seta para direita). Você encontra o código de cada tecla no manual do próprio gm, é só buscar lá vk_right.
Retomando... O código quer dizer: Se o botão pra direta estiver pressionado a sprite do objeto vai ser dele andando para direita e a váriavel dir vai ser igual direita.

Faça isso com as outras direções, substituindo a tecla entre parenteses pela tecla correspondente, a sprite dele se movendo na direção desejada e trocar direita pela direção desejada.

Adicione um evento Animatio End (Add Event > Other). Esse evento é ativado quando a animação de um sprite termina. Nele coloque:

Código:
if dir=direita {sprite_index=spr_paradodireita}
if dir=esquerda {sprite_index=spr_paradoesquerda}
Supondo que o player só tem as direções direita e esquerda, quando a animação de movimento acabar o pc vai verificar se a ultima movimentação foi para direita (dir=direita) ou esquerda (dir=esquerda) e vai colocar o sprite do player de acordo com o ultimo movimento.

victor_aco

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

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO]movimento de personagem

Mensagem por giosepeluiz em Ter 08 Jun 2010, 17:28

Quanto menos sprite o jogo tiver, mais leve e melhor fica... Imagine spr_direita

image_xscale = 1
(quando aperta direita)

image_xscale = -1
(quando aperta esquerda)

giosepeluiz

Número de Mensagens : 110
Idade : 26
Data de inscrição : 21/05/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.orkut.com.br/Main#Profile?uid=12612551030963156921

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO]movimento de personagem

Mensagem por GuiEdu em Qua 23 Jun 2010, 22:38

valew galera

Por favor, podem trancar o tópico Laughing

GuiEdu

Número de Mensagens : 505
Idade : 23
Data de inscrição : 04/06/2010
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

Resolvido Re: [RESOLVIDO]movimento de personagem

Mensagem por Conteúdo patrocinado Hoje à(s) 10:29


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