GAMOPAT
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Comment bien élaborer des patterns ?

+2
drfloyd
Tryphon
6 participants

Aller en bas

Comment bien élaborer des patterns ? Empty Comment bien élaborer des patterns ?

Message par Invité Sam 13 Oct 2018 - 19:58

Bonjour tout le monde,

je souhaiterais savoir comment élaborer des patterns d'ennemis avec un peu de physique dans les mouvements.

Actuellement, j'utilise un tableau pour les actions des ennemis (10 actions par ennemis), mais je n'arrive à faire que des mouvements "rigide" basé sur la position x/y.

J'ai tenté d'ajouté de la velocity, cela donne un peu d'effet, mais c'est pas encore ce que je souhaite avoir.

Auriez-vous des exemples ou une piste à m'indiquer pour que je puisse réutiliser ou mettre au point des mes propres algo ?

Merci !
avatar
Invité
Invité


Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Tryphon Sam 13 Oct 2018 - 20:09

Est-ce que t'as un exemple de pattern à implémenter ?
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par drfloyd Sam 13 Oct 2018 - 21:21

Tu n'utilises pas de cos/sin ????? Que des mouvements horizontaux ou verticaux ?

_______________________________________________________
Comment bien élaborer des patterns ? Americ10




drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 183825
Age : 54
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Invité Sam 13 Oct 2018 - 23:05

@Tryphon pour le moment j'aimerais faire quelque chose comme dans Arrow Flash. Ce que j'aimerais faire, c'est par exemple faire un mouvement de vague comme un oscilator par exemple et se serait sympa de faire croiser des ennemis.

@drfloyd non pour le moment j'utilise que des mouvements horizontaux et verticaux justement...
avatar
Invité
Invité


Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par drfloyd Sam 13 Oct 2018 - 23:29

commence deja par faire des mouvements en vague... en faisant varier l'angle de déplacement

x=x+vitesse*cos(angle)
y=y+vitesse*sin(angle)

_______________________________________________________
Comment bien élaborer des patterns ? Americ10




drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 183825
Age : 54
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Invité Dim 14 Oct 2018 - 0:18

Merci :) J'ai pu reproduire l'effet bien que ça demande un peu d'ajustement encore :)
avatar
Invité
Invité


Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Invité Dim 14 Oct 2018 - 11:58

Bon avec la table COS et SIN de @Stef ça marche plutôt bien, je peux faire pleins de trucs sympatoche comme des vaisseaux qui se dirige légèrement vers le bas, puis sont propulsé en haut de l'écran.

Il faut que j'essaie pleins de choses pour créer des mouvements. Je trouve ça super cool, merci.
avatar
Invité
Invité


Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Tryphon Dim 14 Oct 2018 - 15:45

Essaie de faire en sorte que le "vitesse" des formules du Doc soit une puissance de 2, pour que tes multiplications soient transformées en décalages.

Sinon, tu risques vite d'avoir des problèmes de performances (une multiplication, c'est une opération très très lourde sur 16 bits).

Tu peux aussi créer tes propres tables où tu précalcules les "vitesse * (cos/sin)".
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Invité Dim 14 Oct 2018 - 21:22

Oui j'imagine, mais moins en ce qui concerne le tableau étant donné que je me base sur la position x/y de l'ennemi. Il faudrait que j'inscrive chaque déplacement dans ce tableau pour éviter la multiplication ?
avatar
Invité
Invité


Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Tryphon Dim 14 Oct 2018 - 22:12

oui.

Ta table contient directement les

vitesse*cos(angle)
vitesse*sin(angle)

En fait, tu peux même ne faire qu'une seule table, vu que cos(angle) = sin(angle + pi/2)
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Invité Dim 14 Oct 2018 - 22:24

En fait j'ai fais une table de Vect2D_f32.

J'ai effectivement fait les opérations, mais bizarrement l'effet est légèrement différent.

Je n'ai pas eu le temps de voir où ça coincait, mais je pense avoir une idée. Je regarde demain.
avatar
Invité
Invité


Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par drfloyd Dim 14 Oct 2018 - 22:31

Apres je ne suis pas un expert, mon SUPA ZAZAI DA ne pousse pas tres loin le concept... ici sur ST :



Mr. Green C'est basique  MDR

_______________________________________________________
Comment bien élaborer des patterns ? Americ10




drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 183825
Age : 54
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Tryphon Dim 14 Oct 2018 - 22:47

Il est chouette ton SupaZazai, mais tu l'as pas programmé sur 16 bits Wink

Templeton a certainement utilisé des tables précalculées.

De toutes façon je ne pense pas qu'il soit faisable sur MD (mais j'essaierai).
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par drfloyd Dim 14 Oct 2018 - 22:52

oui, désolé, j'ai pas de vidéo de la version PC... avec Beavis & Butthead.... la version la plus culte !!!

Je sais pas si il a précalculé, pas sur.... je lui demanderai.

_______________________________________________________
Comment bien élaborer des patterns ? Americ10




drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 183825
Age : 54
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par drfloyd Dim 14 Oct 2018 - 22:55

ah tiens si j'ai trouvé une vidéo de SUPA ZAZAI sur PC (mais pas le DA)



les deplacement sont hyper basiques, mais un petit coup de cos et de sin au hasard suffisent malgré tout a rendre le jeu dynamique et imprevisible.

_______________________________________________________
Comment bien élaborer des patterns ? Americ10




drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 183825
Age : 54
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Tryphon Dim 14 Oct 2018 - 22:59

drfloyd a écrit:oui, désolé, j'ai pas de vidéo de la version PC... avec Beavis & Butthead.... la version la plus culte !!!

Je sais pas si il a précalculé, pas sur.... je lui demanderai.

Je peux t'assurer que s'il utilise des sin/cos, il a précalculé Very Happy

Après, il est possible de se passer de sin/cos, mais c'est tordu, matheux, et ça reste plus lent qu'une table (mais ça utilise moins de RAM).
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Templeton Lun 15 Oct 2018 - 8:19

Tryphon a écrit:Templeton a certainement utilisé des tables précalculées.
Tu as certainement raison. Wink

Tryphon a écrit:Je peux t'assurer que s'il utilise des sin/cos, il a précalculé  Very Happy
Oui dans la première phase du développement j'utilisais des sin/cos precalculés, mais dans la version final les sin/cos ont disparus, car les résultats du calcul des trajectoires ont été implémentés dans une grosse table. Wink
Templeton
Templeton
Patient contaminé

Masculin Nombre de messages : 379
Age : 106
Localisation : France
Date d'inscription : 13/11/2016

Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Invité Lun 15 Oct 2018 - 19:33

Le truc que j'arrive pas à comprendre, c'est est-ce qu'il faut spécifié dans une table chaque déplacement d'un ennemi pour que cela fonctionne ? J'aimerais autant éviter pour le moment, car je me vois mal rentrer tout ça à la main pour chaque ennemi.

Pour cela, il me faudrait vraiment mettre en place mon éditeur de niveau.
avatar
Invité
Invité


Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par antifrog Lun 15 Oct 2018 - 19:42

Je sais pas si tu utilises Unity sur certains projets, mais y'a ce tool de Pixel Nest qui est très bien
https://pixelnest.io/docs/bulletml-for-unity/
https://assetstore.unity.com/packages/tools/bulletml-for-unity-16206
antifrog
antifrog
Docteur *
Docteur *

Masculin Nombre de messages : 26594
Age : 44
Localisation : Marseille
Date d'inscription : 10/12/2005

Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Invité Lun 15 Oct 2018 - 20:52

Putain ! J'ai compris, ce que j'avais codé au départ était bon, mais je pense que c'était la vitesse utiliser qui ne correspondait pas :

Code:
void enemyModeInit() {
    u8 i;
    for(i=0; i < 60; i++) {
        mode[i].x = FIX32(0.001) * cosFix32(i);
        mode[i].y = FIX32(0.003) * sinFix32(i);
    }
}

Voilà, j'utilise une boucle pour définir la valeur pour chaque angle et ça marche comme je le souhaite.

avatar
Invité
Invité


Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Tryphon Lun 15 Oct 2018 - 22:04

Pour multiplier 2 fix32, faut utiliser fix32Mul. Et du coup, ta vitesse se compte certainement pas en millièmes de pixels par frame...
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Invité Lun 15 Oct 2018 - 22:12

Merci @Tryphon ! Je me demandais pourquoi ça merdait à ce niveau...
avatar
Invité
Invité


Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Invité Lun 15 Oct 2018 - 22:20

Merci merci merci @Tryphon ! L'effet est super du coup, quad les vaisseaux descendent vers le bas pour remonter vers le haut, on a vraiment l'impression qu'il y a de la physique ! C'est vraiment le petit détail qui fait toute la différence !
avatar
Invité
Invité


Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Invité Mer 17 Oct 2018 - 0:10

Je commence à me débrouiller ^^



J'ai écris mon propre programme en C# qui me génère un cercle pour les patterns que j'ai simplement à mettre dans un tableau de Vect2D_f32 et voilà le résultat.
avatar
Invité
Invité


Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Stef Mer 17 Oct 2018 - 9:29

Tu peux faire ça, mais bon ça te prendre pas mal de place si tu stockes chaque position Wink Mais c'est sûr que le résultat est sympe... tu pourrais en faire autant en définissant des petits "scripts" de déplancement. En gros des struct qui contiendrait des paramètres type "vecteur accélération ou vecteur déplacement pendant X frames", avec pourquoi pas des mouvement type wave (en utilisant la table de sinus sur un range donné). Enfin y'a de quoi faire, c'est juste un peu plus long à mettre en place et surtout de définir les mouvements qu'on souhaite Wink
Stef
Stef
Interne
Interne

Masculin Nombre de messages : 5082
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par ichigobankai Mer 17 Oct 2018 - 10:39

Kaneda avait trouvé un éditeur de patterns :
Comment bien élaborer des patterns ? Dli68410

https://twitter.com/SpritesMind/status/914858518896955393
ichigobankai
ichigobankai
Patient incurable

Masculin Nombre de messages : 1922
Age : 45
Localisation : 49
Date d'inscription : 04/04/2011

https://www.2minds.fr

Revenir en haut Aller en bas

Comment bien élaborer des patterns ? Empty Re: Comment bien élaborer des patterns ?

Message par Invité Mer 17 Oct 2018 - 12:45

@Stef je ne sais pas si j'utilise déjà cela, mais pour le mouvement en cercle, j'utilise un tableau Vect2D_f32 contenant chaque position ce qui donne une taille de 126. Ce tableau, je peux l'utiliser plusieurs fois, du moins dès que je veux faire un mouvement ou demi mouvement en cercle.

Pour les autres mouvements plus classique, j'utilise un tableau shem comme dans ton exemple qui dit quoi faire quand et pendant combien de temps. Par exemple :

Code:
const EnemyShem waveEnemies[20] =
{
    {
        1, FIX32(SCREEN_WIDTH), FIX32(100), FIX32(20),
        {
            {1, TRUE, 0, FIX32(0), FIX32(50), FIX32(0)},
            {7, TRUE, 0, FIX32(50), FIX32(1000), FIX32(0)},
        }
    },

};

Le 1 signifie que je demande au sprite d'avance tout droit de 0 à 50 frames puis le 7 de tourner en cercle pendant 1000 frames en utilisant le tableau contenant les positions.

Tu penses que c'est une méthode trop lourde ?

@ichigobankai cela semble être un super outil, du moins de ce que je vois dans le screen, mais le tweet date d'un an ! Est-ce que depuis il a mit à disposition cet outil ?!
avatar
Invité
Invité


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum