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.

Tiros saindo de forma diferente para cada lado

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

Tiros saindo de forma diferente para cada lado

Mensagem por aaaa » Qua Fev 10, 2021 3:35 pm

Bem, comecei recentemente a programar e estava vendo uns videos de tutorial so pra fazer um joguinho basico sem muito esforço e tem um erro que eu não consigo encontrar onde ele esta. O jogo é bem simples, é so um quadrado com alguns obstaculos, meu problema é com os tiros que estou tentando criar, se eu atirar pra direita o tiro vai muito baixo e se eu atirar pra esquerda ele vai muito alto, alguem poderia me ajudar a resolver isso?

#region Controles
key_right = keyboard_check(ord("D"))
key_left = keyboard_check(ord("A"))
key_jump = keyboard_check(vk_space)
key_shoot = keyboard_check_pressed(ord("X"));
#endregion

#region Movimentação
var move = key_right - key_left

hspd = move * spd;

vspd = vspd + grv;

if (hspd != 0) image_xscale = sign(hspd);

//colisão horizontal
if place_meeting(x+hspd,y,obj_wall)
{
while (!place_meeting(x+sign(hspd),y,obj_wall))
{
x = x + sign(hspd);
}
hspd = 0;
}
x = x +hspd;

//colisão vertical
if place_meeting(x,y + vspd,obj_wall)
{
while (!place_meeting(x,y+sign(vspd),obj_wall))
{
y = y + sign(vspd);
}
vspd = 0;
}
y = y +vspd;

//pulo
if place_meeting(x,y+1,obj_wall) and key_jump
{
vspd -=14
}
#endregion

#region Tirasso
var flipped = direction;
var gun_x = (x+4)*(flipped)
var _xx = x + lengthdir_x(15, image_angle)
var y_offset = lengthdir_y(-20, image_angle)

if key_shoot and global.bullets > 0
{
with (instance_create_layer(_xx,y+10,"Shoot",obj_shoot))
{
global.bullets--;

speed = 10;

direction = -90 + 90 * other.image_xscale;

image_angle = direction;
}
}


#endregion

Avatar do usuário
WilzinMN
Programador
Programador
Reações: 0
Mensagens: 6

Re: Tiros saindo de forma diferente para cada lado

Mensagem por WilzinMN » Ter Mar 16, 2021 12:24 pm

Opa Amigo,nao sei qual tipo de jogo esta fazendo mas se for um plataforma isso pode ajuda-lo

no Step do Player:

key_shoot = keyboard_check_pressed(vk_space);//Tecla para atirar

#region Tiro

var flipped = direction;
var gun_x = x+4*(flipped)
var _xx = x + lengthdir_x(15,image_angle)
var y_offset = lengthdir_y(0,image_angle)

if key_shoot and global.bullets > 0
{
with (instance_create_layer(_xx,y+0,"Tiro",obj_bala))// "Tiro e o nome da layer onde vai criar o obj da bala"
{
global.bullets--;
//Velocidade do Tiro
speed = 30;
direction = -90 +90 * other.image_xscale;
image_angle = direction;
}
}

no Create do Player
global.bullets = 3000;// esses 3000 sao as balas que o player tem altere se quiser

Se nao funcionar me avise :)

Responder

Quem está online

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