Flipper 2D et sa physique
+5
Urbinou
Ricco59_59
Dobro
Tryphon
drfloyd
9 participants
Page 4 sur 5
Page 4 sur 5 • 1, 2, 3, 4, 5
Re: Flipper 2D et sa physique
oui t'es gentils de me rappeler qu"il y a un topic dedié
ce qu'avait deja fait DrFloyd
en meme temps , ici c'est mon topic ... je fais du HS si je veux !!
ce qu'avait deja fait DrFloyd
en meme temps , ici c'est mon topic ... je fais du HS si je veux !!
Dobro- Patient contaminé
- Nombre de messages : 293
Age : 59
Localisation : 43
Date d'inscription : 30/09/2019
Re: Flipper 2D et sa physique
Tiens doc, la semaine dernière j'ai fait 2 insomnies, du coup j'ai réfléchi un peu à un flipper. Je pense que je vois comment faire :
ce que tu vois sont les masques, pas les obstacles. Je teste le centre de la balle dessus donc c'est normal que ça morde. Les couleurs correspondent à l'angle d'inclinaison. Le plan incliné du milieu est "transparent en montée", c'est normal.
Ça t'intéresse de savoir comment ça marche ? (mathématiquement ça reste assez soft)
Si y'a des trucs qui te paraissent bizarre, dis le moi, je suis pas un pro du flipper...
ce que tu vois sont les masques, pas les obstacles. Je teste le centre de la balle dessus donc c'est normal que ça morde. Les couleurs correspondent à l'angle d'inclinaison. Le plan incliné du milieu est "transparent en montée", c'est normal.
Ça t'intéresse de savoir comment ça marche ? (mathématiquement ça reste assez soft)
Si y'a des trucs qui te paraissent bizarre, dis le moi, je suis pas un pro du flipper...
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Flipper 2D et sa physique
Ça donne bien, plutôt réaliste, il ne faudrait pas rajouter un peu plus de poids ? La balle me parait parfois rebondir trop haut par rapport à un flipper physique.
Ensuite y'a flipper et jeu de flipper, parfois pour un jeu et pour le fun la balle est moins réaliste.
Ensuite y'a flipper et jeu de flipper, parfois pour un jeu et pour le fun la balle est moins réaliste.
tetsuro- Patient contaminé
- Nombre de messages : 593
Age : 47
Localisation : Carcassonne
Date d'inscription : 27/12/2015
Re: Flipper 2D et sa physique
J'ai regardé des vidéo de Kirby pinball. C'est pas nécessairement ultra réaliste. Pour la gravité, c'est réglable bien sûr.
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Flipper 2D et sa physique
Ah oui y'a plus réaliste que Kirby Pinbal :)
Sinon je vois qu'il y a une direction qui reste assez fixe, bon je chipote car c'est pas moi qui code lol, mais la direction d'une balle de flipper devrait tourner plusieurs fois sur elle même durant des déplacement non ?
Ta direction c'est pour opposer le déplacement par rapporte à l'élément qu'elle touche ?
C'est vachement intéressant en tous cas, et bien prise de tête j'ai l'impression :)
Sinon je vois qu'il y a une direction qui reste assez fixe, bon je chipote car c'est pas moi qui code lol, mais la direction d'une balle de flipper devrait tourner plusieurs fois sur elle même durant des déplacement non ?
Ta direction c'est pour opposer le déplacement par rapporte à l'élément qu'elle touche ?
C'est vachement intéressant en tous cas, et bien prise de tête j'ai l'impression :)
tetsuro- Patient contaminé
- Nombre de messages : 593
Age : 47
Localisation : Carcassonne
Date d'inscription : 27/12/2015
Re: Flipper 2D et sa physique
Tu veux parler du spin de la balle ? Le trait tracé est juste la résultante de la vitesse (pour que je puisse juger des rebonds) mais je n'ai pas géré le spin. Je peux, mais je n'ai pas l'impression que Kirby le fasse, ni même aucun flip 16 bits console.
Un joueur de flip joué avec le spin ? Tu as des vidéos ?
Un joueur de flip joué avec le spin ? Tu as des vidéos ?
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Flipper 2D et sa physique
Je disais ça comme ça, je ne suis pas un pro du flipper lol et je ne sais pas dans quelle mesure tu voulais etre réaliste dans ton exercice. Je savais pas que c'était sur 16 bits, tu me dira vu le forum où on se trouve ^^
Ensuite j'ai regardé un peu et effectivement j'ai pas l'impression que beaucoup de flippers même réalistes gèrent le spin...
Ensuite j'ai regardé un peu et effectivement j'ai pas l'impression que beaucoup de flippers même réalistes gèrent le spin...
tetsuro- Patient contaminé
- Nombre de messages : 593
Age : 47
Localisation : Carcassonne
Date d'inscription : 27/12/2015
Re: Flipper 2D et sa physique
Non c'est pas sur 16 bits (mais ça pourrait, en precaculant quelques trucs) mais c'est dans l'esprit. Je voulais faire un truc pas trop dur à comprendre pour le Doc, pas un moteur physique complet.
Tiens j'essaierai sur MD...
Tiens j'essaierai sur MD...
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Flipper 2D et sa physique
@tryphon: Tu joues au flipper avec une balle rebondissante toi ???
Sinon pour un premier jet c'est pas mal du tout .
Sinon pour un premier jet c'est pas mal du tout .
Invité- Invité
Re: Flipper 2D et sa physique
Perso pour moi le jeu qui a le ressenti le plus fun sur console c'est Devil Crash sur PC Engine, même des accros aux pinball réalistes sont tombés sous le charme.
Très arcade forcément, mais c'est le dada du Doc l'arcade :)
Très arcade forcément, mais c'est le dada du Doc l'arcade :)
tetsuro- Patient contaminé
- Nombre de messages : 593
Age : 47
Localisation : Carcassonne
Date d'inscription : 27/12/2015
Re: Flipper 2D et sa physique
Touko a écrit:@tryphon: Tu joues au flipper avec une balle rebondissante toi ???
Bah dans Kirby elle rebondit. Mais oui, faudrait forcer un peu sur la gravité, j'ai pas essayé d'affiner la valeur
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Flipper 2D et sa physique
Il me semble top ton moteur physique Prof ! Proche de celui de Kirby Pinball
Pas d'un réalisme absolu, mais arcade, et c'est ça que je recherche...
Je suis interessé :)
Je suis pas sur d'avoir compris : tous ces dégradés de couleur pour les courbes sont important ?????
Pas d'un réalisme absolu, mais arcade, et c'est ça que je recherche...
Je suis interessé :)
Je suis pas sur d'avoir compris : tous ces dégradés de couleur pour les courbes sont important ?????
_______________________________________________________
Re: Flipper 2D et sa physique
Avec des nombre à virgules fixe , ça va être moins drôle crois moiTryphon a écrit:Tiens j'essaierai sur MD...
Invité- Invité
Re: Flipper 2D et sa physique
WaaaaaaaaaaahTryphon a écrit:Tiens doc, la semaine dernière j'ai fait 2 insomnies, du coup j'ai réfléchi un peu à un flipper. Je pense que je vois comment faire :
ce que tu vois sont les masques, pas les obstacles. Je teste le centre de la balle dessus donc c'est normal que ça morde. Les couleurs correspondent à l'angle d'inclinaison. Le plan incliné du milieu est "transparent en montée", c'est normal.
Ça t'intéresse de savoir comment ça marche ? (mathématiquement ça reste assez soft)
Si y'a des trucs qui te paraissent bizarre, dis le moi, je suis pas un pro du flipper...
lincruste- Interne
- Nombre de messages : 5619
Age : 45
Localisation : RP
Date d'inscription : 07/06/2014
Re: Flipper 2D et sa physique
Kannagi a écrit:Avec des nombre à virgules fixe , ça va être moins drôle crois moiTryphon a écrit:Tiens j'essaierai sur MD...
Je ferais pas tout à fait comme ça sur MD. Là j'ai écrit un truc générique qui calcule en fonction de l'angle avec de la trigo. Sur MD je me limiterais à quelques angles, et pour chaque angle je hard-coderais une routine de calcul différente (et certainement une spécifique pour le cercle), du coup ce serait des calculs à constante sur des entiers.
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Flipper 2D et sa physique
drfloyd a écrit:Je suis pas sur d'avoir compris : tous ces dégradés de couleur pour les courbes sont important ?????
Oui. La couleur te donne l'angle d'impact, qui sont nécessaires au calcul du rebond (j'ai juste fait une palette arc-en-ciel pour visualiser).
Mais encore une fois, normalement tu les affiches pas. Ils sont dans un tableau et toi t'affiches l'image normale de ton niveau.
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Flipper 2D et sa physique
Hello Tryphon,Tryphon a écrit:Kannagi a écrit:Avec des nombre à virgules fixe , ça va être moins drôle crois moiTryphon a écrit:Tiens j'essaierai sur MD...
Je ferais pas tout à fait comme ça sur MD. Là j'ai écrit un truc générique qui calcule en fonction de l'angle avec de la trigo. Sur MD je me limiterais à quelques angles, et pour chaque angle je hard-coderais une routine de calcul différente (et certainement une spécifique pour le cercle), du coup ce serait des calculs à constante sur des entiers.
Je serai intéressé par ton algorithme ou début de code sur MD , il nous manque souvent ce type d'algorithmiques dans nos remakes et ce n'est pas évident de trouver la bonne approche.
A+
Re: Flipper 2D et sa physique
Tryphon a écrit:Tiens doc, la semaine dernière j'ai fait 2 insomnies, du coup j'ai réfléchi un peu à un flipper. Je pense que je vois comment faire :
ce que tu vois sont les masques, pas les obstacles. Je teste le centre de la balle dessus donc c'est normal que ça morde. Les couleurs correspondent à l'angle d'inclinaison. Le plan incliné du milieu est "transparent en montée", c'est normal.
Ça t'intéresse de savoir comment ça marche ? (mathématiquement ça reste assez soft)
Si y'a des trucs qui te paraissent bizarre, dis le moi, je suis pas un pro du flipper...
Bonsoir Tryphon,
Bien vu, tu as codé ça dans quel langage?
Re: Flipper 2D et sa physique
troudki a écrit:Je serai intéressé par ton algorithme ou début de code sur MD , il nous manque souvent ce type d'algorithmiques dans nos remakes et ce n'est pas évident de trouver la bonne approche.
A+
C'est surtout des calculs. Je vais les expliquer quand j'aurai trois minutes mais c'est de la géométrie de lycée (vecteurs et trigo).
goux.m a écrit:Bien vu, tu as codé ça dans quel langage?
Là c'est du Python. Mais j'expliquerai en pseudo-code...
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Flipper 2D et sa physique
Tryphon a écrit:drfloyd a écrit:Je suis pas sur d'avoir compris : tous ces dégradés de couleur pour les courbes sont important ?????
Oui. La couleur te donne l'angle d'impact, qui sont nécessaires au calcul du rebond (j'ai juste fait une palette arc-en-ciel pour visualiser).
Mais encore une fois, normalement tu les affiches pas. Ils sont dans un tableau et toi t'affiches l'image normale de ton niveau.
oui oui j'avais réalisé mon proto comme ca (une image cachée avec des traits de couleur pour les rebonds) et la vraie image par dessus.
Mais ce sont les traits courbés multicolores que je ne pige pas. Le cercle au milieu pourquoi il est multicolore ??????
_______________________________________________________
Re: Flipper 2D et sa physique
Tryphon a écrit:goux.m a écrit:Bien vu, tu as codé ça dans quel langage?
Là c'est du Python. Mais j'expliquerai en pseudo-code...
explique nous en langage "logique" universel, le Tryphon+
_______________________________________________________
Re: Flipper 2D et sa physique
drfloyd a écrit:Mais ce sont les traits courbés multicolores que je ne pige pas. Le cercle au milieu pourquoi il est multicolore ??????
Parce que tu peux voir un cercle comme un assemblage de tous petits segments dont la pente évolue petit à petit !
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Flipper 2D et sa physique
Mais je me vois mal créer des courbes ou des cercles point par point avec une couleur par point (???)
_______________________________________________________
Re: Flipper 2D et sa physique
Non c'est pas bien difficile. Moi je trace en fait un anneau d'une certaine épaisseur (au moins 2 pixels, pour éviter de rater une collision), et je balaye tout bêtement les points de l'écran, et je vérifie si leur distance au centre est entre rayon et rayon + épaisseur :
angle_du_vecteur(x, y) renvoie l'angle que fait le vecteur qui va de (0, 0) à (x, y) avec l'horizontale. En python, la commande c'est math.atan2(y, x). En pure, tu as peut-être la fonction atan2, sinon c'est atan(y/x) (l'arc-tangente).
On peut faire beaucoup plus rapide (algo de Bresenham), mais vu qu'on trace le cercle une seule fois avant même de lancer le jeu, je m'en fous
- Code:
def trace_cercle(centre_x, centre_y, rayon, épaisseur):
pour x allant de 0 à largeur_ecran - 1:
pour y allant de 0 à hauteur_ecran - 1:
dx = x - centre_x
dy = y - centre_y
si rayon <= sqrt(dx^2 + dy^2) <= rayon + épaisseur:
angle = (angle_du_vecteur(dx, dy) + 90) % 360
colorie_le_point (x, y) avec la couleur angle
angle_du_vecteur(x, y) renvoie l'angle que fait le vecteur qui va de (0, 0) à (x, y) avec l'horizontale. En python, la commande c'est math.atan2(y, x). En pure, tu as peut-être la fonction atan2, sinon c'est atan(y/x) (l'arc-tangente).
On peut faire beaucoup plus rapide (algo de Bresenham), mais vu qu'on trace le cercle une seule fois avant même de lancer le jeu, je m'en fous
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Flipper 2D et sa physique
ah ok je crois comprendre :)
_______________________________________________________
Re: Flipper 2D et sa physique
Avant de commencer : je prétends pas que ça soit parfait, j'y ai pas passé des heures, j'ai pas essayé d'ajuster les paramètres comme sur Shinobi en regardant des vidéo image par image. J'avais juste une idée que je voulais mettre en pratique. Le code est pas non plus très propre, parce qu'au début je voulais pas faire de l'objet, et qu'à un moment je me suis dit que si. Y'a encore des bugs (je crois savoir les corriger, je le ferai peut-être avant de poster).
Bon, je commence par les collisions. Comme le point de contact de la boule et d'un obstacle peut être n'importe où sur le contour, j'ai bougé le problème en "grossissant" les obstacles : chaque obstacle est entouré d'une bande de l'épaisseur le rayon de la boule, et je teste si le centre de la boule est dans la bande (ce qui signifie qu'un point de la circonférence est sur l'obstacle). Ci-dessous, un obstacle (en blanc), la bande (en couleurs jolies dégradées, on verra pourquoi plus tard), la boule : elle touche l'obstacle, son centre est bien dans la bande :
La bande est stockée dans ce que j'appelle la collision_map. C'est un tableau d'entiers aux mêmes dimensions que l'écran. Il est rempli de -1 là où il n'y a rien, et d'un nombre >= 0 s'il y a quelque chose. Ce nombre représente l'inclinaison (en degrés) de l'obstacle, j'en aurai besoin pour les rebonds.
Quelques exemples :
* une barre : la bande autour est formée de 4 côtés inclinés à 90° les uns par rapport aux autres, avec des angles qui passent progressivement d'un côté à un autre (d'où le dégradé)
* un (arc de) cercle concave (on rebondit à l'intérieur) ; les inclinaisons augmentent progressivement le long de la circonférence
* un cercle convexe (on rebondit à l'extérieur). On remarque que les couleurs sont symétriques de celles de l'arc précédent, parce que les angles sont opposés.
Les flips sont juste des barres, mais je ne mets pas leur collision_map dans celle de la table (parce qu'elle bouge). Je la stocke à part, et quand la balle entre dans la zone où peut se trouver un flip, je teste la collision sur la collision_map du flip, et pas celle de la table.
Remarquez que je ne stocke que l'angle dans la collision_map (de 0 à 359), mais on pourrait imaginer stocker aussi un code pour déterminer la "puissance" de l'obstacle (genre un bumper) ; par exemple un code de 360 à 719 signifierait bumper (l'angle étant alors code - 360).
Je présente pas de code ici, j'ai juste écrit quelques fonctions pour générer des barres et des arcs de cercles dans la collision_map (mais en fait on pourrait la précalculer et la mettre directement dans le code ou dans un fichier binaire séparé). Au cas où, je les montre, mais y'a rien de sorcier (pas la peine de faire efficace puisque c'est fait avant le jeu).
Bon, je commence par les collisions. Comme le point de contact de la boule et d'un obstacle peut être n'importe où sur le contour, j'ai bougé le problème en "grossissant" les obstacles : chaque obstacle est entouré d'une bande de l'épaisseur le rayon de la boule, et je teste si le centre de la boule est dans la bande (ce qui signifie qu'un point de la circonférence est sur l'obstacle). Ci-dessous, un obstacle (en blanc), la bande (en couleurs jolies dégradées, on verra pourquoi plus tard), la boule : elle touche l'obstacle, son centre est bien dans la bande :
La bande est stockée dans ce que j'appelle la collision_map. C'est un tableau d'entiers aux mêmes dimensions que l'écran. Il est rempli de -1 là où il n'y a rien, et d'un nombre >= 0 s'il y a quelque chose. Ce nombre représente l'inclinaison (en degrés) de l'obstacle, j'en aurai besoin pour les rebonds.
Quelques exemples :
* une barre : la bande autour est formée de 4 côtés inclinés à 90° les uns par rapport aux autres, avec des angles qui passent progressivement d'un côté à un autre (d'où le dégradé)
* un (arc de) cercle concave (on rebondit à l'intérieur) ; les inclinaisons augmentent progressivement le long de la circonférence
* un cercle convexe (on rebondit à l'extérieur). On remarque que les couleurs sont symétriques de celles de l'arc précédent, parce que les angles sont opposés.
Les flips sont juste des barres, mais je ne mets pas leur collision_map dans celle de la table (parce qu'elle bouge). Je la stocke à part, et quand la balle entre dans la zone où peut se trouver un flip, je teste la collision sur la collision_map du flip, et pas celle de la table.
Remarquez que je ne stocke que l'angle dans la collision_map (de 0 à 359), mais on pourrait imaginer stocker aussi un code pour déterminer la "puissance" de l'obstacle (genre un bumper) ; par exemple un code de 360 à 719 signifierait bumper (l'angle étant alors code - 360).
Je présente pas de code ici, j'ai juste écrit quelques fonctions pour générer des barres et des arcs de cercles dans la collision_map (mais en fait on pourrait la précalculer et la mettre directement dans le code ou dans un fichier binaire séparé). Au cas où, je les montre, mais y'a rien de sorcier (pas la peine de faire efficace puisque c'est fait avant le jeu).
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Flipper 2D et sa physique
Pour la suite Doc, ça t'embête si j'écris des classes avec des méthodes ? Si oui, je peux transformer le code pour m'en débarrasser, mais c'est un poil moins "joli"...
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Flipper 2D et sa physique
Je crois avoir lu Dobro dire que oui. Des structs c'est sûr, mais il me semble l'avoir entendu parler de méthodes.
Sinon c'est juste un confort d'écriture, je peux m'en passer...
Sinon c'est juste un confort d'écriture, je peux m'en passer...
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Flipper 2D et sa physique
Tryphon a écrit:Pour la suite Doc, ça t'embête si j'écris des classes avec des méthodes ? Si oui, je peux transformer le code pour m'en débarrasser, mais c'est un poil moins "joli"...
c'est un peu chiant pour la compréhension..... le moins joli est plus compréhensible
_______________________________________________________
Page 4 sur 5 • 1, 2, 3, 4, 5
Sujets similaires
» FLIPPER 2D PHYSIQUE
» Documentaire sur le fabricant de flipper HOMEPIN à l'origine du flipper THUNDERBIRDS
» Moteur Physique
» Support physique, this is the end ?
» TOP PLAYSTATION 3 (support physique)
» Documentaire sur le fabricant de flipper HOMEPIN à l'origine du flipper THUNDERBIRDS
» Moteur Physique
» Support physique, this is the end ?
» TOP PLAYSTATION 3 (support physique)
Page 4 sur 5
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum