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.

Movimentos do player através de posições definidas

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

Movimentos do player através de posições definidas

Mensagem por kintWOW » Sex Abr 01, 2022 7:34 pm

Meu problema é o seguinte

O player vai poder ir pra três posições da room, para cima, para baixo e no meio (o meio será a posição em que o player irá iniciar no jogo), não é através de movimento ou algo do tipo, eu não quero mover ele, ele vai direto pra posição, basicamente um teleporte.

O erro é que toda vez que eu vou pra cima ou para baixo, e depois quero ir pra umas dessas posições contrarias as que eu estou, ele vai direto pra elas, ignorando totalmente a posição do meio.

Eu não sei exatamente como tava o meu código pq eu acabei mudando pra tentar resolver esse problema, mas agora ele ta assim:

if (keyboard_check(vk_up) or keyboard_check(vk_down))
{
y = 352
}

if (keyboard_check(vk_up) && y = 352)
{
y = cima
}

if (keyboard_check(vk_down) && y = 352)
{
y = baixo
}

Avatar do usuário
ValdeciVieira
Moderador
Moderador
Reações: 8
Mensagens: 122
Localização: Rio de Janeiro, Brasil

Re: Movimentos do player através de posições definidas

Mensagem por ValdeciVieira » Sáb Abr 02, 2022 10:58 am

Esse código tá estranho.

Código: Selecionar todos

//1º - Aqui você verifica a tecla "cima" e/ou "baixo"
if (keyboard_check(vk_up) or keyboard_check(vk_down)) {
	y = 352; //E define y pra 352
}
//2º - Aqui verifica somente "cima" e se y é igual a 352
if (keyboard_check(vk_up) && y = 352) {
	y = cima; //E define y pra posição cima
}
//3º - Aqui verifica somente "baixo" e se y é igual a 352
if (keyboard_check(vk_down) && y = 352) {
	y = baixo; //E define y pra posição baixo
}
O código é executado de cima pra baixo, ele sempre para no meio mas no mesmo frame é movido pra outra posição.
Já que são poucas posição, recomendo usar switch:

Código: Selecionar todos

if keyboard_check(vk_up) {
	switch(y) {
		case 352: y = cima; break;
		case baixo: y = 352; break;
	}
}

if keyboard_check(vk_down) {
	switch(y) {
		case cima: y = 352; break;
		case 352: y = baixo; break;
	}
}

Responder

Quem está online

Usuários navegando neste fórum: Semrush [Bot] e 0 visitante