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
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
Re: Tiros saindo de forma diferente para cada lado
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 :)
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 :)
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes