[Game Maker]Besoin d'aide pour paramétrer des murs

Pour tout ce qui est fan arts, homebrew, shooters codés à la main, rip de sprites, doujins et toute autre productions artistiques ou logicielles faites maison.
Répondre
Toofi
No-bullet mode
Messages : 20
Inscription : 07 janv. 2014, 02:14

Salut tout le monde, j'espère ne pas me tromper pour la création de ce topic.

J'essaie depuis quelques temps d'apprendre les bases de game maker pour réaliser un premier prototype de shmup, et j'ai quelques soucis pour garder le player dans les limites de l'écran.

J'ai placé sur les limites de la room des murs invisibles, et en event de collision qu'il imprimait au vaisseau un mouvement sans direction, a zéro de vitesse.

Problème, quand il touche le mur, il part dans tous les sens, contraire a la direction du vaisseau, ou pas.

J'ai essayé d'ajouter des arrêts de mouvements aux key release, la ça marche mais ça parasite clairement les mouvements libres du vaisseau ( diagonales, gauche/droite rapide )

J'aimerais savoir s'il y avait une solution pour ce problème ? Comment faites-vous, vous, utilisateurs de game maker ?
:)
Avatar de l’utilisateur
Alec
King Fossile
Messages : 15788
Inscription : 12 juil. 2004, 18:04
Localisation : nstc-j

Salut !

Mets ça dans l'évenement step de ton objet vaisseau :

Code : Tout sélectionner

if (keyboard_check(vk_up) && y-12 > 0)
y -= 4;

if (keyboard_check(vk_down) && y+12 < room_height)
y +=4;

if (keyboard_check(vk_left) && x-16 > view_xview[0])
x -= 4;

if (keyboard_check(vk_right) && x+16 <  view_xview[0] + view_wview[0])
x += 4;
if (keyboard_check(vk_up) && y-12 > 0)
y -= 4;

if (keyboard_check(vk_down) && y+12 < room_height)
y +=4;

if (keyboard_check(vk_left) && x-16 > view_xview[0])
x -= 4;

if (keyboard_check(vk_right) && x+16 < view_xview[0] + view_wview[0])
x += 4;
c'est la partie du code en rouge qui permet cela, le reste c'est du contrôle basique : "check direction droite, on va à droite"


Voilà, normalement il ne quittera plus la view0 (la vue)

Par contre quand il entre en collision avec un décor, je sais pas, vu que moi en général dès que le vaisseau joueur touche un rocher ou un ennemi, il explose ^^ !

Si tu as d'autres trucs qui te chiffonnent n'hésite pas !
ImageImageImage
Toofi
No-bullet mode
Messages : 20
Inscription : 07 janv. 2014, 02:14

J'ai appliqué ton code pour les mouvements basiques seuiement, et laissé l'event de collision avec le mouvement remis à zéro, pour l'instant ça a l'air de marcher sans la partie en rouge qui vérifie la position par rapport à la view. J'essayerai après avec tout le reste du code, merci !

Pourquoi pas faire un topic global d'aide à game maker ? C'est quand même un outil assez puissant quand on prend du temps à coder en GML, surtout quand on voit les jeux indés qui l'ont utilisé (Spelunky, Hotline Miami, ..) on se dit qu'avec du boulot y'a moyen de faire un truc cool !

J'ai également essayé le GMOSSE, le "moteur" de shmup libre sur game maker, mais c'est un peu le bordel, difficile de comprendre comment il a été fait (pour le modifier) quand on débute.
:)
Avatar de l’utilisateur
Radigo
Counter Stop
Messages : 7577
Inscription : 22 mai 2003, 17:31
Localisation : Paris
Contact :

Toofi a écrit :Pourquoi pas faire un topic global d'aide à game maker ?
Parce que ça existe déjà à plein d'endroits différents et qu'on risque de passer du temps à copier-coller des tutos existants. Pour les bases, Google te servira tout ce que tu veux savoir. Pour les bonnes pratiques à adopter je pense qu'on peut t'aider par contre, mais cela reste centré sur les shmups et ce n'est pas très "généraliste".
Toofi a écrit :C'est quand même un outil assez puissant quand on prend du temps à coder en GML, surtout quand on voit les jeux indés qui l'ont utilisé (Spelunky, Hotline Miami, ..) on se dit qu'avec du boulot y'a moyen de faire un truc cool !.
Oui, je suis moi-même épaté des performances du dernier GM (la version compilée) et de la facilité avec laquelle on peut faire des essais de gameplay. Mais pour les jeux que tu cites, il y a un gros boulot de game design et de graphismes (sans parler du parti pris graphique et de la musique dans le cas de Hotline Miami).

Bref, pour résumé, les bases de GM sont trouvables partout. Les bases d'un shmup sont trouvables ici (en parcourant un peu les topics dédiés, fait une recherche (un peu cassée, hum hum)), et pour les points précis, poses des questions ici !
"HYPER GAGE : 500%"
Image
Avatar de l’utilisateur
Alec
King Fossile
Messages : 15788
Inscription : 12 juil. 2004, 18:04
Localisation : nstc-j

Toofi a écrit :J'ai appliqué ton code pour les mouvements basiques seuiement, et laissé l'event de collision avec le mouvement remis à zéro, pour l'instant ça a l'air de marcher sans la partie en rouge qui vérifie la position par rapport à la view. J'essayerai après avec tout le reste du code, merci !

et tu as mis des objects "collision" tout autour de ta room ? c'est super lourd de faire comme ça (et c'est moi qui dit ça en plus, un comble)


Pour un shmup basique, il y a moyen de faire très vite
-1 objet joueur :
-qui se déplace
-qui tire
-qui explose sous un tir ennemi
-qui explose sur un décor
-sur des ennemis/sur des décors

-2 des ennemis :
-qui tirent aussi (fréquence, direction)
-qui explosent



Le plus long, c'est tout le reste, la musique, les graphismes et surtout le level design, tenter de le rendre bon, c'est très difficile et très long !
ImageImageImage
Répondre