Página 1 de 1

Ajuda com IA simples de pássaro

Enviado: Dom Ago 26, 2018 11:48 am
por MatheusLX
Olá pessoal! Sou novo no Game Maker e decidi tentar criar uma ia simples para praticar, decidi então criar uma ia do voo de um pássaro. O problema é que chega um determinado ângulo em que o sprite fica de cabeça para baixo, e não consegui resolver. O código que estou utilizando é este:

Código: Selecionar todos

var flySpeed = random_range(1,3);
var birdAngle = random(359);
motion_set(birdAngle,flySpeed);
image_angle = birdAngle;
alarm[0] = room_speed*random(4);
Eu até encontrei algo sobre o image_xscale e image_yscale, mas não soube como aplica-los exatamente. Fico grato por qualquer ajuda.

Re: Ajuda com IA simples de pássaro

Enviado: Dom Ago 26, 2018 3:24 pm
por None
Você só usar o image angle como você fez se sua imagem pode girar por completo (top down).
Se você quer que ele só possa ir para a esquerda ou direita então você usa xscale.

Pelo seu código de movimento parece que se jogo é top down, mas pelo problema que você está tendo parece que sua visão é "horizontal".

Teria como você tirar um print para ver qual o problema exato?

Re: Ajuda com IA simples de pássaro

Enviado: Dom Ago 26, 2018 4:31 pm
por MatheusLX
None escreveu:Você só usar o image angle como você fez se sua imagem pode girar por completo (top down).
Se você quer que ele só possa ir para a esquerda ou direita então você usa xscale.

Pelo seu código de movimento parece que se jogo é top down, mas pelo problema que você está tendo parece que sua visão é "horizontal".

Teria como você tirar um print para ver qual o problema exato?
Imagem

Re: Ajuda com IA simples de pássaro

Enviado: Dom Ago 26, 2018 7:55 pm
por None
Neste caso você não usa image angle, você usa image_xscale.

Você faz
If (hspeed != 0)
image_xscale = sign(hspeed)

Eu tenho quase certeza que o motion_set usa speed para o movimento, então este código deve funcionar.

Da também para fazer ele angular para cima e para baixo dentro de um limite, mas isso envolve um pouco mais de código.