Comment bien élaborer des patterns ?
+2
drfloyd
Tryphon
6 participants
Page 1 sur 1
Comment bien élaborer des patterns ?
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 !
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 !
Invité- Invité
Re: Comment bien élaborer des patterns ?
Est-ce que t'as un exemple de pattern à implémenter ?
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Comment bien élaborer des patterns ?
Tu n'utilises pas de cos/sin ????? Que des mouvements horizontaux ou verticaux ?
_______________________________________________________
Re: Comment bien élaborer des patterns ?
@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...
@drfloyd non pour le moment j'utilise que des mouvements horizontaux et verticaux justement...
Invité- Invité
Re: Comment bien élaborer des patterns ?
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)
x=x+vitesse*cos(angle)
y=y+vitesse*sin(angle)
_______________________________________________________
Re: Comment bien élaborer des patterns ?
Merci :) J'ai pu reproduire l'effet bien que ça demande un peu d'ajustement encore :)
Invité- Invité
Re: Comment bien élaborer des patterns ?
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.
Il faut que j'essaie pleins de choses pour créer des mouvements. Je trouve ça super cool, merci.
Invité- Invité
Re: Comment bien élaborer des patterns ?
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)".
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- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Comment bien élaborer des patterns ?
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 ?
Invité- Invité
Re: Comment bien élaborer des patterns ?
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)
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- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Comment bien élaborer des patterns ?
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.
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.
Invité- Invité
Re: Comment bien élaborer des patterns ?
Apres je ne suis pas un expert, mon SUPA ZAZAI DA ne pousse pas tres loin le concept... ici sur ST :
C'est basique
C'est basique
_______________________________________________________
Re: Comment bien élaborer des patterns ?
Il est chouette ton SupaZazai, mais tu l'as pas programmé sur 16 bits
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).
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- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Comment bien élaborer des patterns ?
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 sais pas si il a précalculé, pas sur.... je lui demanderai.
_______________________________________________________
Re: Comment bien élaborer des patterns ?
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.
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.
_______________________________________________________
Re: Comment bien élaborer des patterns ?
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é
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- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Comment bien élaborer des patterns ?
Tu as certainement raison.Tryphon a écrit:Templeton a certainement utilisé des tables précalculées.
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.Tryphon a écrit:Je peux t'assurer que s'il utilise des sin/cos, il a précalculé
Templeton- Patient contaminé
- Nombre de messages : 390
Age : 106
Localisation : France
Date d'inscription : 13/11/2016
Re: Comment bien élaborer des patterns ?
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.
Pour cela, il me faudrait vraiment mettre en place mon éditeur de niveau.
Invité- Invité
Re: Comment bien élaborer des patterns ?
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
https://pixelnest.io/docs/bulletml-for-unity/
https://assetstore.unity.com/packages/tools/bulletml-for-unity-16206
antifrog- Docteur *
- Nombre de messages : 26730
Age : 44
Localisation : Marseille
Date d'inscription : 10/12/2005
Re: Comment bien élaborer des patterns ?
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 :
Voilà, j'utilise une boucle pour définir la valeur pour chaque angle et ça marche comme je le souhaite.
- 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.
Invité- Invité
Re: Comment bien élaborer des patterns ?
Pour multiplier 2 fix32, faut utiliser fix32Mul. Et du coup, ta vitesse se compte certainement pas en millièmes de pixels par frame...
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Comment bien élaborer des patterns ?
Merci @Tryphon ! Je me demandais pourquoi ça merdait à ce niveau...
Invité- Invité
Re: Comment bien élaborer des patterns ?
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 !
Invité- Invité
Re: Comment bien élaborer des patterns ?
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.
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.
Invité- Invité
Re: Comment bien élaborer des patterns ?
Tu peux faire ça, mais bon ça te prendre pas mal de place si tu stockes chaque position 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
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Comment bien élaborer des patterns ?
@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 :
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 ?!
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 ?!
Invité- Invité
Sujets similaires
» Comment bien démarrer sur MSX ?
» CPC 464 - Comment bien alimenter le bestiau !
» Wii bruyante, comment bien la nettoyer?
» D64 manager ! Comment bien remplir une disquette C64 ?
» Comment bien conserver ses consoles et ses jeux
» CPC 464 - Comment bien alimenter le bestiau !
» Wii bruyante, comment bien la nettoyer?
» D64 manager ! Comment bien remplir une disquette C64 ?
» Comment bien conserver ses consoles et ses jeux
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum