Oniromancie: Tutoriels - Masques de collisions


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Forstale
Par Ødd Clock

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Lije
Par Gaetz

LoveMaster
Par Cuddlefox

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

News: Concours des Alex d'Or 2017-18: (...) / News: MegaMaker : créez votre propre (...) / News: Test de Tinker Quarry / Sorties: Leave the Room / Jeux: Leave the Room /

Chat  (35 connectés)

Bienvenue
visiteur !






publicité RPG Maker!

Statistiques

Liste des
membres


Contact

64 connectés actuellement

9170818 visiteurs
depuis l'ouverture

1069 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires




TOP
GAMEMAKING


Les 5 plus
visités

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Pixelandgame

Tashiroworld

HeyMakeGames

Au hasard

RPG Network

RPG Maker VX Communauté

Console Fun

Les deux derniers

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs





Masques de collisions
Ecrit par Falco

Bonjour, bienvenue dans ce tutoriel.

Je vais vous expliquer ce qu'un masque de collision.
Comme son nom l'indique plus ou moins, il vous permettra de faire des collisions parfaite entre personnages et décors.


On va commencer avec un exemple, vous aimeriez faire un jeu de plates-formes. Vous programmez votre système, pour les collisions, vous faites "si sprite_héros touche décors" => "stopper mouvement".

GROSSE ERREUR !


En effet, même si le système sera fonctionnel, il sera buggé, et extrêmement soulant pour le joueur!
Pourquoi ?
Voyons cela en image :
image
Super, ça marche, le héros peut se déplacer sur le sol, essayons maintenant de sauter par dessus ce pilier
image
Heu... Le héros maintient en équilibre avec seulement 1 pixel, trop fort.

Vous comprenez ?
En faisant "si sprite_héros touche décors" le programme va prendre en compte tout le sprite, vous aurez beau toucher un mur d'un pixel, ça suffira pour stopper le mouvement.
Or dans un jeu de plates formes, il est préférable que la zone de détection soit le la tête, le buste, et les jambes.

Heureusement, les masques de collisions sont la pour nous sauver la vie.
Plutôt que de prendre en compte le sprite dans la condition, on va créé un nouveau sprite, en forme de rectangle sur le héros, qui servira de test pour la condition.
C'est ultra simple :

image
On place le rectangle sur le héros, on le rend invisible pendant le jeu, et on peut faire la condition :
"si masque_héros touche décors" => "stopper mouvement"

De ce fait,

image

Plus de problèmes pour des pixels qui dépassent, puisque la collision est testé avec le carré et non le héros.
Voila, vous voyez, c'était ultra simple !

N'oubliez pas de bien placer le rectangle sur le héros, et de le déplacer en même temps que ce dernier pendant le jeu.
Sachez aussi que les masques s'utilisent pour tout, décors, adversaire, PNJ, etc...
Prenez par exemple une map de mon projet Castlevania. Voila à quoi elle ressemble in game :

image

Et depuis l'éditeur :

image

J'espère avoir été clair, sachez que si vous voulez des collisions parfaites, il n'y a pas d'autres solutions <IMG SRC="


Zeus81 - posté le 25/11/2009 à 00:48:46. (11072 messages postés) - bocauxharam

Tu peux pas gérer ça en données virtuelles plutôt qu'en images invisibles ?


Alegreto - posté le 25/11/2009 à 11:16:08. (60 messages postés)

Devinez qui est mon avatar...oui c'est Alex Mercer il n'a pas peur des helicopter xD

Sympa la technique.

Vive AIRBOURNE !! rocks yourself http://street-fightor.labrute.fr inscrivez vous


Drakasan - posté le 25/11/2009 à 11:20:33. (148 messages postés)

Oo Un CastleVania :ange
Très bon tuto (et quel programme? *cours*)
(et a quand la sortie du CastleVania *sort*)

FFIII:Tableau des jobs


Alegreto - posté le 25/11/2009 à 11:24:09. (60 messages postés)

Devinez qui est mon avatar...oui c'est Alex Mercer il n'a pas peur des helicopter xD

C'est vrais qu'un Castlevania ça fait bien plaisir après on espère qu'il sera a la hauteur ^^

Vive AIRBOURNE !! rocks yourself http://street-fightor.labrute.fr inscrivez vous


Falco - posté le 25/11/2009 à 12:44:06. (15288 messages postés) - heberge

L'homme à Abattre

Citation:

Tu peux pas gérer ça en données virtuelles plutôt qu'en images invisibles ?



Comment ça ?
Avec des coordonnées tu veux dire ?

Sur Game Maker il y a une fonction pour intégrer un masque directement depuis un sprite, donc du coup pas besoin de créer une image pour chaque sprite, c'est plutôt sympa, mais malheureusement ça n'existe pas sur MMF.

Citation:

Très bon tuto (et quel programme? *cours*)



Merci.
Le système de masque de collision ne marche pas pour tel programme, mais pour tout. C'est un procedé qu'on utilise aussi bien en C++ qu'avec MMF ou autre logiciel permettant de créer des moteurs.
Avec RM pas besoin, puisque le moteur est déjà créé. (par contre c'est tout à fait possible avec VX ou XP, si jamais vous décidez de faire un jeu de plates formes en script, comme le fait l'ami Trebor.)

Pour Castlevania MOS il y a un topic au fin fond du forum "vos projets avancés", mais il est assez vieux, et ne reflète plus l'avancement actuel du projet ;)

Pixold - Site web sur mes créations - Inexistence - Disponible sur Steam- Zelda Creator -Suivez moi sur Twitter


Naked-Snake - posté le 25/11/2009 à 12:53:55. (8468 messages postés)

"Hey ! Dallas ! Follow my lead !" - Hoxton

En fait tu expliques surtout ce qu'est une hitbox, et pourquoi il faut préférer cette dernière à une collision par pixel.

Remarque c'est pas plus mal, quand on sait pas trop comment s'y prendre.

Une ènième chaine livestream | Page Facebook de 8 Bit Runner


Falco - posté le 25/11/2009 à 13:43:52. (15288 messages postés) - heberge

L'homme à Abattre

Ouep, je préférais rester dans du théorique, parce que je pense que ça doit pas marcher exactement pareil pour chaque langage/moteur, même si le principe reste le même.

Pixold - Site web sur mes créations - Inexistence - Disponible sur Steam- Zelda Creator -Suivez moi sur Twitter


TRPGE - posté le 26/11/2009 à 22:15:35. (306 messages postés)

Reste poli.

-
“Tu peux pas gérer ça en données virtuelles plutôt qu'en images invisibles ?”

Bien sûr, mais cela ferait beaucoup de lignes de “code”, alors qu’une solution intégrée est utilisée non pas pour rallonger le temps de coder mais pour le raccourcir.

Le tuto expose une méthode, heureusement, il en existe au moins une autre qui permet de se servir d’un sprite sans son masque de collision.

Les cliqueurs sur Oniro, des gros lourds, ce ne sont pas des pro, ils vous donnent ce qu’ils ont, à condition de rester poli.


MoonLight Shadow - posté le 01/12/2009 à 13:25:09. (451 messages postés)

Maker et graphiste fainéant

"It is not by my hand I was given flesh again. I was called here by humans who wanted to pay me tribute."

A quand une sortie ? Castlevania d'action ? D'exploration ? :bave

Ma galerie et son topic

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe

Plan du site:

Activité: Accueil | News | Forum | Flash-news | Chat | Commentaires | Galerie | Screen de la semaine | Sorties | Articles perso | Livre d'or | Recherche
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Rubriques: Le Wiki | Collection Oniro | Tutoriaux | Scripts | Guides | Gaming-Live | Tests | Making-of | Interviews | Articles perso | OST | L'Annuaire | Divers | Palmarès
Hébergés: Aëdemphia | Fighting Robots Quest | Forstale | Geex | Inexistence | La Légende d'Ibabou | Lije | LoveMaster | Sarcia | Super Mario RPG - Lost Souls
Ressources: Jeux | Programmes | Packs de ressources | Midis | Eléments séparés | Sprites
RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis