La question du lancé de pavé de GG dans la gueule des CRS m’intéressait au plus au point et pour faire ça réaliste, il faut que le pavé fasse le même mouvement qu’une hache lancée dans le ciel ou du moins en avant. On parle donc d’un arc de cercle.

Bien sûr, il est hors de question pour moi de faire appel à mes connaissance en mathématique pour réaliser ce genre de mouvement, bien trop complexe et surtout imbitable pour moi. Je me suis donc mis à la recherche d’un code tout fait à copier-coller. La recherche fût longue et douloureuse, car chaque recherche m’amenait vers une nouvelle méthode de réalisation différente. Je voulais quelque chose le plus réaliste possible et j’ai fini par trouver un bout de code sur cette page que je vous partage ci-dessous :

with(instance_create_layer(x,y,"GiletsJaunes",obj_pave)) {
var _y = mouse_y - y;
var _x = mouse_x - x;
var _g = 0.5; // gravité
var _a = _g / 2;
if (abs(_x) > abs(_y)) {
var _t = abs(_x) / 10;
hspeed = sign(_x) * 10;
vspeed = -_a - _a * _t + _y / _t;
gravity = _g;
} else {
var _t = sqrt(4 * _a * abs(_y)) / (2 * _a);
if (_y < 0) { vspeed = -_t * _g - _a; }
hspeed = _x / _t;
gravity = _g;
}
}

Dans ce code là, y’a rien à comprendre, une histoire de gravité de vitesse horizontale et verticale, de blabla, bref, mise à part que le with, sert ici à donner des paramètres à une nouvelle instance de mon objet « obj_pave » et à la créer aux coordonnées données en paramètre (x et y de ma souris en réalité).

Non ce que vous devez savoir c’est ou mettre ce code? Personnellement je me suis assuré de récupérer la position x et y de mon GG sélectionné à la souris avec ce code :

inst_gg = instance_position(mouse_x, mouse_y, obj_gg);

Puis l’instance du CRS pointé (dans une autre partie du code) :

inst_crs = instance_position(mouse_x, mouse_y, obj_crs);

Ensuite il était facile de vérifier que je pointais sur un CRS et surtout de sélectionner (with (inst_gg)) la bonne instance du GG, sinon au début c’était tous les GG qui lançaient un pavé (ATTAQUE EN MASSE !!).

if (inst_crs != noone) {
with (inst_gg) {
METTRE LE CODE ICI

Bref, je vous laisse penser à tout ça. Dans cette vidéo ci-dessous, vous pouvez voir la hache représentée par un carré marron partir dans une belle courbe et à la bonne vitesse à partir de la 18e seconde.