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.

Dúvida com código

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
dkoelho
Novato
Novato
Reações: 0
Mensagens: 18
Localização: holocausto de 1944.

Dúvida com código

Mensagem por dkoelho » Seg Jan 09, 2017 7:38 pm

Opa, e aí galera, beleza? Eu comecei a mexer com o GM:S e estou desenvolvendo um projeto para entender como funciona mais ou menos. Eu comecei fazendo as coisas através dos eventos para eu ver como funciona, e agora estou partindo pra programação.
Meu problema é o seguinte, eu quero que quando eu aperte alguma das setas do teclado, uma faca seja atirada pelo herói na direção correspondente da seta. Eu montei uma variável no herói onde cada valor indica uma direção quando alguma tecla for pressionada:

Código: Selecionar todos

if keyboard_check(vk_left){
    direction = 0;
    instance_create(x, y, obj_knife)
}
if keyboard_check(vk_right){
    direction = 1;
    instance_create(x, y, obj_knife)
}
Já no objeto da faca, eu coloquei num create o seguinte:

Código: Selecionar todos

if (obj_player.direction = 1){
    move_towards_point(+10, y, 10);
}
if (obj_player.direction = 0){
    move_towards_point(-10, y, 10);
}
Por algum motivo que eu não sei decifrar, a faca sempre é atirada pra esquerda. Eu sei que a variável da direção começa em 0 (que é esquerda), mas ela deveria estar mudando quando eu aperto a seta direita. Onde eu errei? dhawiudjauiwfjiwajfoaw

Avatar do usuário
Rodrigo Santiago
Colaborador
Colaborador
Reações: 0
Mensagens: 273

Re: Dúvida com código

Mensagem por Rodrigo Santiago » Seg Jan 09, 2017 7:52 pm

Primeiramente, direction é uma variavel 'built-in', ou seja, assim como x e y ele ja vem com o objeto e faz algumas coisas especificas. Se você usar direction e speed juntos, você pode mover o objeto para uma direção a uma determinada velocidade. direction deve variar de 0 - 360.

Pois bem,  move_towards_point ser justamente pra mudar essas duas variáveis ! Por isso que vc está tendo esses erros ! Tenta criar outra variavel com outro nome, por exemplo

//create

Código: Selecionar todos

lado = -1;
Então você substitui 'direction' pela nova variavel 'lado'. e no mais, na funcao move_towards_point você implementou estranhamente sem colocar o x !
Veja como deve ficar :

Código: Selecionar todos

move_towards_point( x - 10, y, 10);

Avatar do usuário
dkoelho
Novato
Novato
Reações: 0
Mensagens: 18
Localização: holocausto de 1944.

Re: Dúvida com código

Mensagem por dkoelho » Seg Jan 09, 2017 8:56 pm

muito obrigado, cara! eu estava conversando com um colega (que já é bem experiente) e ele me explicou isso das variáveis built-in, eu estava meio desligado disso. tô dando mais uma estudada aqui da parte teórica.
de qualquer jeito, muito obrigado! resolveu meu problema :)

Trancado

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes