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. |
Como movimentar pelo wasd (comecei agora no game maker)
- linkgl0600
- Novato
- Reações: 0
- Mensagens: 1
Como movimentar pelo wasd (comecei agora no game maker)
Olá, tenho tentado a mexer no game maker, mais toda vez que tento replicar o código que faz o player se mover pelo wasd NUNCA FUNCIONA, isso provavelmente ocorre pela meu incrível nível de burrice, alguém pode me dizer algum código que funciona?
Re: Como movimentar pelo wasd (comecei agora no game maker)
Boa noite, tudo bem ? espero que sim !!
Primeiro defina o tipo de jogo se é TOP DOWN(Jogos tipo zelda antigo) ou se é 2D(Super Mario), após definir isso vamos criar dois objetos o objPlayer e o objWall(Parede), agora vamos ao código!!
No seu evento criar do objPlayer deixe assim:
Feito isso, vamos criar dois scripts:
No primeiro script de CTRL+A e cole nosso script:
Este script verifica continuamente se você esta colidindo com algum objeto e se estiver ele diz que sua velocidade é igual a 0, ou seja, você não pode cair nem subir, caso não esteja colidindo, ai sua velocidade pode ser alterada, se quiser entender melhor, recomendo fortemente que leia sobre cada função !!
Vamos para nosso segundo script:
Agora vamos parti para nosso evento etapa(Event Step) no objPlayer, coloque isso:
Depois disso, ja esta funcionando, vamos apenas criar uma room e colocar o objWall no chão vai ficar assim:
Aqui esta um exemplo que fiz Exemplo Pratico!
Eu realmente espero ter lhe ajudado, boa noite e boa sorte ai !!
Primeiro defina o tipo de jogo se é TOP DOWN(Jogos tipo zelda antigo) ou se é 2D(Super Mario), após definir isso vamos criar dois objetos o objPlayer e o objWall(Parede), agora vamos ao código!!
No seu evento criar do objPlayer deixe assim:
Código: Selecionar todos
/// @description Inserir descrição aqui
// Você pode escrever seu código neste
speedH = 0; //Velocidade em que se move na HORIZONTAL
speedV = 0; //Velocidade em que se move na VERTICAL
mySpeed = 1; //Nossa velocidade de movimentação
myGravity = 0.2; //Velocidade em que cai (peso, digamos assim)
// Movimentação
right = 0; // Direita
left = 0; // Esquerda
up = 0; // Cima
down = 0; // Baixo
// Colisão
objColisWall = objWall; // Aqui coloque seu objeto colisão, esse objeto sera seu chão
No primeiro script de CTRL+A e cole nosso script:
Código: Selecionar todos
// Script desenvolvido por Luiz F. R. Pimentel
// https://github.com/KanekiZLF
function scrCollision() {
//Colisao X
if place_meeting(x + speedH, y, objColisWall) {
while !place_meeting(x + sign(speedH), y, objColisWall) {
x += sign(speedH);
}
speedH = 0;
}
x += speedH;
//Colisao Y
if place_meeting(x, y + speedV, objColisWall) {
while !place_meeting(x, y + sign(speedV), objColisWall) {
y += sign(speedV);
}
speedV = 0;
}
y += speedV;
//myGravity
if !place_meeting(x, y + 1, objColisWall) {
speedV += myGravity;
} // Esta parte é pra caso seu jogo seja 2D se for top down você pode comentar esta parte !!
}
Vamos para nosso segundo script:
Código: Selecionar todos
// Os recursos de script mudaram para a v2.3.0; veja
// https://help.yoyogames.com/hc/en-us/articles/360005277377 para obter mais informações
function scrMove() {
// Movimentação
if !left {
right = keyboard_check(ord("D"));
}
if !right {
left = keyboard_check(ord("A"));
}
/*if !up {
down = keyboard_check(ord("S"));
}
if !down {
up = keyboard_check(ord("W"));
}*/ // Desconte aqui se for jogo TOP DOWN
up = keyboard_check_pressed(ord("W"));
if (up) {
speedV -= 5;
}
speedH = (right - left) * mySpeed;
//speedV = (down - up) * mySpeed; // Descomente aqui se for jogo TOP DOWN
}
Código: Selecionar todos
/// @description Inserir descrição aqui
// Você pode escrever seu código neste editor
scrCollision();
scrMove();
Aqui esta um exemplo que fiz Exemplo Pratico!
Eu realmente espero ter lhe ajudado, boa noite e boa sorte ai !!
Ninguém vai bater tão forte como a vida, mas a questão não é o quão forte você consegue bater. É o quão forte você consegue apanhar e continuar seguindo em frente.
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes