CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Python erreur que je ne comprends pas !

caelacanthe
caelacanthe
Niveau 10
04 mars 2011 à 00:44:21

tu devrais séparer les images de ton gif en fichiers image séparés, les charger manuellement et les afficher quand il faut. avec un compteur temporel régulièrement rafraichi et remis a zéro (pour une animation qui se répète), et afficher telle image à telle date :oui:

Tob-Tob
Tob-Tob
Niveau 10
04 mars 2011 à 01:26:10

Mais justement, j'ai les fichier séparés également, mais ce que tu me dis là, je ne sais pas le faire... :(

_Xaar
_Xaar
Niveau 10
04 mars 2011 à 01:43:12

Salut,

Ils ont foiré grâve la dernière update de mon mmo actuel alors j'ai que ça à faire que de ressortir mon compte poussièreux et te répondre en retrainant par ici pour passer le temps au lieu de jouer :)

J'ai fais un exemple simple de comment je procédais quand je programmais encore. Télécharge l'image ici et renomme la en "lapin.png" : http://www.noelshack.com/om/old/up/lapin-ea1079b577.png

Ca marche en lancant ce code là dans le même dossier que l'image, ça donne un lapin qui court sur place : http://pastebin.com/b5wiSrfW

Commentaires en vrac :

- lignes 1 à 7 on initialise et on ouvre une fenêtre de jeu;

- lignes 9 et 11 on charge l'image du lapin puis on définit avec l'instruction set_colorkey la couleur magenta (le rose de l'image du lapin) comme transparente pour qu'elle ne s'affiche pas avec le lapin (comme ça si tu met une image d'herbe sous le lapin elle ne sera pas effacée par un cube de couleur rose). Le 255,0,255 c'est la façon dont est définie la couleur magenta dans le système rgb, c'est pas spécifique au python, ça te servira partout en programmation et tu trouvera de la doc parotut sur ce système sur le net (dont là : http://fr.wikipedia.org/wiki/Couleurs_du_Web );

- ligne 13 c'est là que commence le début de la gestion de l'animation du lapin, pour l'instant c'est juste une variable à zéro ;

- ligne 15 tu connais déjà c'est pour sortir de la boucle du programme ;

- ligne 16 c'est une instruction pour lancer une horloge qui te permettra de fixer le nombre d'images par seconde que doit afficher ton programme ;

- ligne 18 début de la boucle ;

- ligne 20 on dit au programme d'afficher 20 images par secondes, pas besoin d'une vitesse de ouf pour ce qu'on veut faire ;

- ligne 22 à 32 : si on appuie sur echap ou on clique sur la croix le programme s'arrête, ça tu connais déjà ;

- ligne 34 : on remplit l'écran de couleur bleue (tu peut mettre une image d'herbe à la place si tu veut pour que le lapin courre sur de l'herbe) ;

- ligne 36 : ligne très importante pour l'animation, on dit d'afficher aux coorodnnées 0,0 (en haut à gauche de la fenêtre) le lapin correspondant à l'étape d'animation. Pour lapin_etape_animation=0 on affichera le lapin en haut à gauche du fichier lapin.png, pour lapin_etape_animation=1 le 2e lapin en haut à gauche, etc. Chaque lapin fait 96*96 pixels de côté (si tu sais pas ce qu'est un pixel apprends le de suite sur le net parce que c'est indispensable pour de la création de jeu, en gros c'est le plus petit carré de couleur d'une image/d'un écran), donc à chaque étape d'animation on décale de 96 pixels sur la droite avec "lapin_etape_animation*96", 96*96 c'est pour dire au programme de pas copier l'image entière mais juste le carré de 96 pixels de côté du lapin désiré ;

- ligne 38 à 42 on augmente lapin_etape_animation qu'on ramene à zéro si on dépasse le 8e lapin du haut de lapin.png ;

- ligne 44 : affichage des modifications de la boucle à l'écran.

Bon après c'est ma façon de faire, il y en a pas qu'une seule, par exemple j'utilise pas de rect() alors que pas mal de gens le font et je met tout dans une image au lieu d'avoir des images séparées. A toi de te trouver un style de programmation, là c'était juste pour te donner un exemple de comment faire.

Tob-Tob
Tob-Tob
Niveau 10
04 mars 2011 à 03:11:37

J'ai tout lu et je pense avoir compris, je ne te remercierai jamais assez !

Tob-Tob
Tob-Tob
Niveau 10
04 mars 2011 à 03:25:08

Il me manque juste une chose, comment je peux savoir sur l'image combien il y a de pixels qui sépare ? Comme sur cette image par exemple : http://spriters-resource.com/custom_edited/sonic/sheet/18165
Merci !

_Xaar
_Xaar
Niveau 10
05 mars 2011 à 03:01:41

Tu peut savoir ça en ouvrant l'image dans un logiciel d'édition graphique, en sélectionnant la zone et en regardant les coordonnées que ça t'indique. Par exemple pour le 3 sonic de la 3e ligne ici : http://www.noelshack.com/om/old/up/sonic-09834ef887.png il se trouve par rapport au haut de la ressource à 87 pixels sur la gauche, 143 en bas, et fait 45 sur 42 pixels de large.

Par contre le problème des ressources trouvées sur internet c'est qu'elles doivent être souvent modifiées pour convenir à ta façon de programmer. La planche sonic telle qu'elle a été faite ne pourrait pas fonctionner avec ma façon de faire, et si je voulais l'utiliser je finirais probablement par découper tout les sprites et les remettre à des coordonnées qui me conviennent. Le 3e sonic qui court il fait plus en largeur sans les marges que le 1er de la même ligne avec les marges comprises, c'est pas compatible avec ma méthode où j'aime bien avoir tout les sprites marges comprises tout les x pixels avec x un nombre fixe. Après tu peut aussi découper tout les sprites un par un et en faire des images séparées comme dit pus haut, ou encore reprendre bêtement la planche sans la modifier et donner les coordonnées une par une dans le code, mais a ça serait hyper lourd au niveau du programme.

Dans tout les cas ne t'attends pas à faire un sonic qui court et saute de partout simplement avec mon exemple plus haut, ça te demandera bien plus de travail et d'expérience que ça, il vaut mieux commencer par plus simple qu'un jeu de plate forme. En plus du code si tu veut faire des jeux 2d qui tiennent la route au niveau des animations il va falloir que tu fasse aussi de l'édition graphique de base, et réussir à tout coordonner pour que ça rendre bien à l'écran comme disait ChevalierdAncre plus haut.

Tob-Tob
Tob-Tob
Niveau 10
05 mars 2011 à 04:03:44

Je compte me servir du logiciel Pivot pour tester au départ les animations (C'est un logiciel où on déplace les membres d'un stickman pour faire une animation), il faudra donc par exemple que je mette tous en 256/256 dans une seul image ? Mais comment savoir exactement combien il y a entre chaque image, c'est ça le soucis en faite...
C'est donc un problème un peu de faire comme ça non ?
Tu aurais une technique pour faire les images l'une après l'autre sinon ? Même si ta technique est bien, pour des images séparé comme moi...
Merci beaucoup de m'aider comme ça en tout cas !

Tob-Tob
Tob-Tob
Niveau 10
12 mars 2011 à 21:42:22

:up:

Tob-Tob
Tob-Tob
Niveau 10
14 mars 2011 à 18:01:10

:up:

Tob-Tob
Tob-Tob
Niveau 10
20 mars 2011 à 20:11:29

:up:

Tob-Tob
Tob-Tob
Niveau 10
24 mars 2011 à 14:52:41

:up:

punky_dookie
punky_dookie
Niveau 10
24 mars 2011 à 16:09:10

Normalement, une palette de sprites bien construite doit pouvoir se découper en suivant un quadrillage. Par exemple 16px x 32px. Et tu insères tes personnages dans les cases.
Si tu utilises Photoshop, je te conseille d'utiliser le repère visuel "grille".

Donc on ne peut pas parler d'écart entre les sprites, mais plutôt de largeur des rectangles dans lesquels ils sont contenus.

La palette de Sonic ne me parait pas utilisable telle quelle au premier coup d'oeil.

Tob-Tob
Tob-Tob
Niveau 10
24 mars 2011 à 17:59:44

Ah ok, je n'avais pas pensé au grilles, donc tu penses que je devrais faire par exemple un découpage des futures images pour les placer ensuite sur une grille ? C'est une bonne idée à laquelle je n'avais pas pensé !

Mais n'y a-t-il pas d'autre méthode quand même ?

punky_dookie
punky_dookie
Niveau 10
25 mars 2011 à 08:43:39

La grille est la méthode la plus simple pour ne pas avoir à recalculer des milliers de trucs :-)

Tu peux laisser tes images telles quelles, et spécifier pour chaque sprite la largeur, la hauteur, le point d'origine du rectangle, le tout dans un fichier de paramétrage, ou en dur dans le code. L'angoisse quoi ^^

Je te confirme, le plus simple, c'est encore la méthode de la grille ! Cette méthode est utilisée sur Super Mario Bros X, ou RPG Maker par exemple.

Tob-Tob
Tob-Tob
Niveau 10
27 mars 2011 à 01:35:40

Arf, bon ben merci, je ferais donc comme ça !

punky_dookie
punky_dookie
Niveau 10
27 mars 2011 à 01:38:45

Pense plutôt aux avantages d'une telle méthode !
Une seule image à mettre en mémoire, des palettes de couleur qui se retravaillent sur tous tes sprites en un temps trois mouvements, etc.

Tob-Tob
Tob-Tob
Niveau 10
27 mars 2011 à 01:56:20

Ah ouais. :bave
J'y avais pas pensé, j'essaierai comme ça une fois rentré chez ma mère dimanche soir, si j'ai des soucis, je viendrais les poster sur le topic, encore merci à tous !

Tob-Tob
Tob-Tob
Niveau 10
21 avril 2011 à 03:10:59

Bonsoir, je me demandais comment gérer les collisions avec la méthode cité plus haut ?
Et si je veux faire un jeu de combat plus tard, comment dois-je faire (Je connais le coup des carrés etc... mais avec cette méthode, je sais pas comment faire...) ?
Merci !

SonicBrawl
SonicBrawl
Niveau 8
21 avril 2011 à 20:32:58

Salut, je profite qu'un topic comme celui ci est déjà créer pour poser une question dans le même thème.
J'ai suivi le code donné plus haut pour l'animation et j'ai bien compris, cependant, je ne parviens pas à trouver comment gérer une animation quand on fait bouger un personnage par exemple. J'voudrais juste que quand je déplace mon personnage vers le bas, il se déplace d'un certain nombre de pixel et qu'il exécute une animation de marche pour y aller.
Voila merci d'avance pour les réponses en espérant qu'il y en ait.

tbop2
tbop2
Niveau 10
21 avril 2011 à 21:40:01

http://www.siteduzero.com/tutoriel-3-254492-theorie-des-collisions.html

Moi je trouve toujours que ce tutorial est plutôt pas mal fait en matière de collisions pour les néophytes.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment