Bonsoir à tous!.
Je me suis remis à GM depuis peu (hier, en fait) et j'ai donc décidé de revoir mes bases.
J'ai écrit un petit code (placé dans l'event step) qui me permet de me déplacer (et de tirer) en diagonale. Le voici :
- Code:
-
if (keyboard_check(vk_left)==true && keyboard_check(vk_up)==true)
{
x -= 3;
y -= 3;
direction_is = 4;
if (sprite_index != sprt_boule_noire_gauche)
sprite_index = sprt_boule_noire_gauche;
image_angle = 315;
}
else if (keyboard_check(vk_up)==true && keyboard_check(vk_right)==true)
{
x += 3;
y -= 3;
direction_is = 5;
if (sprite_index != sprt_boule_noire_droite)
sprite_index = sprt_boule_noire_droite;
image_angle = 45;
}
else if (keyboard_check(vk_left)==true && keyboard_check(vk_down)==true)
{
x -= 3;
y += 3;
direction_is = 7;
if (sprite_index != sprt_boule_noire_gauche)
sprite_index = sprt_boule_noire_gauche;
image_angle = 45;
}
else if (keyboard_check(vk_right)==true && keyboard_check(vk_down)==true)
{
x += 3;
y += 3;
direction_is = 6;
if (sprite_index != sprt_boule_noire_droite)
sprite_index = sprt_boule_noire_droite;
image_angle = 315;
}
else if (keyboard_check(vk_left))
{
x -= 3;
direction_is = 0;
if (sprite_index != sprt_boule_noire_gauche)
sprite_index = sprt_boule_noire_gauche;
image_angle = 0
}
else if (keyboard_check(vk_up))
{
y -= 3;
direction_is = 1;
if (sprite_index != sprt_boule_noire_gauche)
sprite_index = sprt_boule_noire_gauche;
image_angle = 270;
}
else if (keyboard_check(vk_right))
{
x += 3;
direction_is = 2;
if (sprite_index != sprt_boule_noire_droite)
sprite_index = sprt_boule_noire_droite;
image_angle = 0;
}
else if (keyboard_check(vk_down))
{
y += 3;
direction_is = 3;
if (sprite_index != sprt_boule_noire_droite)
sprite_index = sprt_boule_noire_droite;
image_angle = 270;
}
if (keyboard_check(vk_space))
{
if (current_time > temps_de_tir + temps_recharge)
{
instance_create(x, y, obj_balle);
temps_de_tir = current_time;
}
}
Tout fonctionne parfaitement, sauf un petit détail.
Si j'appuie sur la flèche de gauche et d'en haut en même temps, je ne peux pas tirer.
De même, si j'appuie sur la barre d'espace, je ne peux pas me déplacer en diagonale (vers le haut/gauche uniquement..)
Toutes les autres diagonales fonctionnent sans problème (par exemple, si j'appuie sur bas et droite ou haut et droite, je peux tout de même tirer. Mon problème ne vient que de la diagonales haut/gauche)...
Merci d'avance!.
<édit> Autre phénomènes assez intriguant, je ne peux pas tirer en même temps que je me déplace vers le haut où vers la gauche, si j'utilise mon sprite3, ou vitesse (du projectile) de 15
Si je change la vitesse du projectile (en la mettant à 25, par exemple, sans changer de sprite), ça fonctionne.
Si je change de sprite (sans changer la vitesse), ça fonctionne aussi...
Mais les deux ensemble, non.
(Le sprite, c'est un cercle jaune, avec les options par défaut).