Tu poses un peut trop de questions d'un coup.
1/ Si par exemple tu veux tirer avec "espace":
dans create tu déclares la variable tirer_ok=1
dans step:
if keyboard_check(vk_space)
{
if tirer_ok==1
{
tirer_ok=0
instance_create(x,y,obj_balle)
alarm[0]=12
}
}
dans l'alarme 0:
tirer_ok=1
2/ Tu veux par exemple un bonus à 100 point puis à 200 puis à 300 puis à 400...
dans create:
bonus=1
dans step:
if score>100 and bonus==1
{
instance_create(x,y,obj_bonus)
bonus=2
}
if score>200 and bonus==2
{
instance_create(x,y,obj_bonus)
bonus=3
}
if score>300 and bonus==3
{
instance_create(x,y,obj_bonus)
bonus=4
}
et ainsi de suite....
3/ Si tu programme ya pas de priorité pré établis des touches.
Dans un code c'est la dernière ligne lu par le programme qui prend le dessus sur les autres si elles se contredisent. Il faut faire en sorte qu'elles ne se contredisent pas, exemple si je dis:
if keyboard_check(vk_left)
{vspeed=-3}
if keyboard_check(vk_right)
{vspeed=3}
Si j'appuie sur les 2 touches en même temps l'objet ira vers la droite car c'est la dernière ligne que lira le programme qui comptera.
Par contre en modifiant directement la valeur des variables qui renseignent les coordonnés (x et y) on a plus ce problème:
if keyboard_check(vk_left)
{x-=3}
if keyboard_check(vk_right)
{x+=3}
4/Tu peux utiliser la fonction point_direction pour obtenir l'angle du boss par rapport au joueur exemple:
dans step boss:
direction=point_direction(x,y,obj_joueur.x,obj_jou
eur.y)
speed=10