:: PlayerAdvance.org ::  

Précédent   :: PlayerAdvance.org :: > :: Développement Amateur :: > Aide au développement

Publicité

Réponse
 
Outils de la discussion Modes d'affichage
Vieux 30/01/2013, 12h58   #1
Ninnin
Membre
 
Date d'inscription: 30/01/2013
Messages: 21
Par défaut Aide gestion animations sprites

Bonjour à tous.

J'ai à mon actif plusieurs développement de jeu sur DS depuis quelques années.
Je "bute" à présent car je suis sur un projet ayant pas mal d'animation de sprites sur le héro. Du style :
- sauter (direction haut)
- sauter (direction bas, quand le mouvement vers le haut est fini)
- sauter (tirer vers le haut)
- sauter (tirer vers le bas)
- tomber d'une plateforme (différent du mouvement sauter, direction bas)
- Sauter en diagonal sans équipement
- sauter en diagonal avec équipement

etc......

Bref, j'ai toujours su me débrouiller avec des sprites standard style mario and co qui restent somme toute basique; mais là je ne sais pas par quel bout commencer. Enfin si, je pense savoir, mais avant de me lancer, j'aimerai savoir si vous auriez des trucs ou astuces d'optimisation ? Comment gérer quelle animation doit être jouée ? Comment différencier tous les cas par exemple quand le perso tombe, savoir quelle animation "direction bas" jouer ?

Je code avec PALib.

Thanks
Ninnin est déconnecté   Réponse avec citation

Publicité

Vieux 30/01/2013, 18h02   #2
t4ils
Membre confirmé
 
Date d'inscription: 10/11/2005
Localisation: Morangis ( 91 )
Messages: 2 754
Voir les codes amis Wii
Par défaut

Hello

De mon côté, je gère ça avec une variable au niveau du perso qui indique l'animation courante (IDLE, MOVE, JUMP).

Ensuite, j'ai une méthode player.getCurrentSprite() qui renvoie le bon sprite selon l'animation courante et la frame courante. J'ai juste à dessiner ce sprite à l'écran, sans me soucier d'où j'en suis dans les animations.

Dans mon code côté jeu, j'ai juste a faire "player.setFrame(Player.IDLE)" et la prochaine fois que je voudrais dessiner le perso, ca sera son animation idle qui apparaitra.

Pour les mouvements :
if(player.getFrame() != Player.MOVE) {
player.setFrame(Player.MOVE)
}

Pour les sauts, j'indique que si la vitesse va vers le haut, faut afficher la frame de saut, sinon la frame de descente.

Voilà ma technique, expliquée à l'arrache
__________________
Un renard, en plus de voler, ca code !

t4ils est déconnecté   Réponse avec citation
Vieux 30/01/2013, 18h04   #3
Ninnin
Membre
 
Date d'inscription: 30/01/2013
Messages: 21
Par défaut

Thanks pour ta réponse

Et si tu as 2 animations différentes de descente comme dans mon cas, tu fais comment
Ninnin est déconnecté   Réponse avec citation
Vieux 30/01/2013, 20h47   #4
Ninnin
Membre
 
Date d'inscription: 30/01/2013
Messages: 21
Par défaut

Hé il est où le bouton "edit"

Bref

Que ce soit avec EFS ou nitroFS, une fois qu'on passe la barre des 32 megs, le stream mp3 deconne.... c'est moi ou ....

Pour mes soucis d'anim que je sais pas comment gérer le bouzin... j'ai gratté tout l'aprem.... ben bordel.... ça va être un sacré foutoir si je suis mes idées.... personne n'a un truc pour gérer ça facilement ou alors faut faire comme j'ai prévu: prévoir chaque cas, avec des if et des switch (mais alors là... la gueule de la liste de conditions )
Ninnin est déconnecté   Réponse avec citation
Vieux 31/01/2013, 22h10   #5
Ninnin
Membre
 
Date d'inscription: 30/01/2013
Messages: 21
Par défaut

Encore une question (si y a quelqu'un bien sûr ) :
Je veux jouer un son à chaque fois que mon perso touche le sol avec un pied.

Donc quand il marche ou qu'il court, ce sont les frames 14 et 19 de mon sprite que je dois vérifier.
J'ai donc fait (vite fait pour tester) :
Code PHP:
bool isPlayingSoundFoot false;
u8 actualFrame PA_GetSpriteAnimFrame(1perso.sprite);
if ((
actualFrame == 14 || actualFrame == 19) && !isPlayingSoundFoot) {isPlayingSoundFoot truePA_PlaySimpleSound(snd_walk);}
if (
actualFrame == 15 || actualFrame == 20) {isPlayingSoundFoot false;} 
J'ai essayé de remplacer PlaySimpleSound par AS_SoundQuickPlay mais toujours le même problème:
Le son arrive avec 40 trains de retard
Le perso commence à marcher ou courir, aucun son durant ses premiers pas, puis ça arrive (bien en rythme là), et quand j'arrête le perso, le son des pas continue durant presque une seconde.....

Qué passa ??????

Suis sur ce problème depuis 18h00 ce soir, j'en ai ma claque
Ninnin est déconnecté   Réponse avec citation
Vieux 03/02/2013, 13h27   #6
Ninnin
Membre
 
Date d'inscription: 30/01/2013
Messages: 21
Par défaut

OOooooooooooooooooooooookkkkkkkkkkkkkkkkKKKKKKKKKK KKKKKKK

....

...

..

.

Il est dead ce forum

Si je veux faire que mon perso se balance au bout d'une droite, style tarzan qui est au bout d'une liane, je me doute que je dois utiliser la rotation de sprite, mais j'ai aucune idée de comment faire pour le faire bouger en x,y à partir de mon point d'origine d'accrochage, ni comment faire pour associer un système de gravité à ça
Une piste
Ninnin est déconnecté   Réponse avec citation
Vieux 06/02/2013, 00h20   #7
Tiwaz
Newser
 
Date d'inscription: 18/03/2007
Localisation: Un coin trop froid...
Messages: 739
Par défaut

Citation:
Envoyé par Ninnin Voir le message
Il est dead ce forum
Un peu en effet

Citation:
Si je veux faire que mon perso se balance au bout d'une droite, style tarzan qui est au bout d'une liane, je me doute que je dois utiliser la rotation de sprite, mais j'ai aucune idée de comment faire pour le faire bouger en x,y à partir de mon point d'origine d'accrochage, ni comment faire pour associer un système de gravité à ça
Une piste
Un lien intéressant qui ne répond pas à ta question.
J'ai du mal à voir l'intérêt de la gravité dans ton cas.

Le plus simple étant de suivre l'équation d'un cercle avec le centre de la liane. Il y a pas mal de manière de faire.

Mais ca donne, avec x et y la position de ton sprite, size la longueur de la liane, et posX, posY la position du centre de la liane, alpha l'angle:
Code:
x = posX + cos(alpha) * size
y = posY + sin(alpha) * size
pour tes problèmes de sons, je n'ai plus l'environnement de dev, mais je te conseille de tester sur le matériel directement, parceque les émulateurs, surtout en ce qui concerne le son, ne sont pas toujours très fiable.
__________________
Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils, ça ce sont les attributs de la magie.
Tiwaz est déconnecté   Réponse avec citation
Vieux 06/02/2013, 00h35   #8
Ninnin
Membre
 
Date d'inscription: 30/01/2013
Messages: 21
Par défaut

Ca fait plaisir rencontrer une âme dans ces recoins sombres et desert

Merci de la réponse

Pour le son, le raw est foireux, j'en ai changé et ça à l'air de s'être amélioré.

Pour le truc des cosinus and co, merci du tips, je vais gratter en ce sens
Ninnin est déconnecté   Réponse avec citation
Réponse

Liens sociaux

Tags
animation, optimisation, plateforme, sprite

Publicité



Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
NDS Astuce pour gestion de plus de 128 sprites jomox2 Aide au développement 3 22/06/2010 08h47
NDS Fatlib et la gestion des animations de sprites :p djidane535 Aide au développement 10 16/02/2009 20h53
NDS Multiplexage de sprites MsK` Tutoriels 29 31/12/2007 13h51
[DEV] Fonds transparents des sprites Schyzophrenic [DEV] Divers 4 05/06/2007 15h38
[DEV] Des Sprites pour vos Projets omg Tutoriels 30 31/10/2006 16h44


Fuseau horaire GMT +2. Il est actuellement 05h57.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince