Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

erro no gAmEmAkER

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
T4ILS
Novato
Novato
Reações: 0
Mensagens: 1

erro no gAmEmAkER

Mensagem por T4ILS » Ter Jan 11, 2022 7:07 pm

Se eu pressionar esquerda,e baixo ou cima,mudar sprite para o sprite andando invert, e se soltar,
mudar sprite para parado invert.
Se eu pressionar direita,e baixo ou cima,mudar sprite para o sprite andando.
Não consigo programar isso
CODIGO:
keydown = keyboard_check(vk_down)
sprite_index = spr_lolo_andando
keyup = keyboard_check(vk_up)
sprite_index = spr_lolo_andando
keyleft = keyboard_check(vk_left) and keyboard_check(vk_up)
sprite_index = spr_lolo_andando_invert


keyleft2 = keyboard_check(vk_left) and keyboard_check(vk_down)
sprite_index = spr_lolo_andando_invert

keyright = keyboard_check(vk_right) and keyboard_check(vk_up)
sprite_index = spr_lolo_andando

keyright2 = keyboard_check(vk_right) and keyboard_check(vk_down)
sprite_index = spr_lolo_andando_invert


if keyright2 & place_free(x+thecol,y)
x+=vel

if keyleft2 & place_free(x-thecol,y)
x+=vel

if keyright & place_free(x+thecol,y)
x+=vel

if keyleft & place_free(x-thecol,y)
x+=vel

if keydown & place_free(x,y+thecol)
y+=vel

if keyup & place_free(x,y-thecol)
y-=vel

if !keyup & !keydown & !keyright & !keyleft & !keyright2 & !keyleft
sprite_index = spr_lolo

Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 621
Localização: Dourados-MS

Contato:

Re: erro no gAmEmAkER

Mensagem por All-x » Ter Jan 11, 2022 9:01 pm

Fala T4ILS, tá bem bangunçada a coisa, mas vou tentar aqui.

Vou considerar só isso que disse:
Se eu pressionar esquerda,e baixo ou cima,mudar sprite para o sprite andando invert, e se soltar, mudar sprite para parado invert.

Se eu pressionar direita,e baixo ou cima,mudar sprite para o sprite andando.
Basta transformar isso em código. Existem outros jeitos mais simples de fazer, mas pra tu acompanhar como tranformar o que tu quer em código vamos de um jeito mais longo.

Primeiro evento 'Create' inicialize uma variável chamada 'invert' com valor 'false':

Código: Selecionar todos

invert = false
No 'Step' guardamos o estado das teclas (Lembre-se de remover seus códigos anteriores):

Código: Selecionar todos

keydown = keyboard_check(vk_down)

keyup = keyboard_check(vk_up)

keyleft = keyboard_check(vk_left)

keyright = keyboard_check(vk_right)
Em seguida colocamos a movimentação (Lembrando que vel já tem que ter um valor definido antes):

Código: Selecionar todos

if keyleft and place_free(x - vel, y)
{
	x -= vel
}
if keyright and place_free (x + vel, y)
{
	x += vel
}
if keyup and place_free(x, y - vel)
{
	y -= vel
}
if keydown and place_free (x, y + vel)
{
	y += vel
}
Agora colocamos a variável 'invert' para trocar de valor se teclar esquerda ou direita:

Código: Selecionar todos

if keyleft
{
	invert = true
}
else if keyright
{
	invert = false
}
Por último trocamos as sprites conforme você explicou. Como qualquer tecla faz ele se mover só checar isso para a sprite andando. Caso nenhuma tecla seja pressionada, então está parado. Dai só colocar a inversão dentro de cada condição:

Código: Selecionar todos

if (keyleft or keyright or keyup or keydown)
{
	if invert == true
	{
		sprite_index = spr_lolo_andando_invert
	}
	else
	{
		sprite_index = spr_lolo_andando
	}
}
else if (keyleft and keyright and keyup and keydown) == false
{
	if invert == true
	{
		sprite_index = spr_lolo_parado_invert
	}
	else
	{
		sprite_index = spr_lolo_parado
	}
}
Espero que ajude 👍

(Tópico movido pra sessão correta: Dúvidas)
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante