Bonne nuit si vous lisez cà de suite, bonjour si vous lisez cà à une heure normale ou que vous êtes québecois.
J´ai fait une petite démo destinée à me faire travailler les animations de sprites, c´est téléchargeable ici:
http://perso.orange.fr/pyxsoftware/fichiers/linkle_petite_demo.zip
Pour démarrer le jeu il faut dézipper l´archive et lancer linkle_petite_demo.exe.
Screenshot (c´est normal qu´il soit tout petit vu que le jeu se joue en plein écran):
http://perso.orange.fr/pyxsoftware/images_exterieures/linkle_01.gif
Scénario (le lire est facultatif, vous pouvez sauter direct à la partie "Le jeu"): Link est bien embêté depuis ce matin: il vient de se rappeller que ce soir c´est l´anniversaire de la princesse Zelda, et il n´a pas acheté de cadeau! Le problème c´est qu´il n´a plus de rubis pour en prendre un, ayant tout dépensé hier soir en whisky au bar. S´il veut continuer à hum... rester en bon termes avec la princesse il a intérêt à trouver des rubis et vite! Il passe toute la matinée à couper des herbes avec son épée, à fouiller des coffres et à trucider des monstres mais rien à faire: il ne trouve pas de rubis... Déséspéré il rentre dans la capitale d´Hyrule et là, placardé sur un panneau, il apercoit une offre d´emploi pour une place de magasinier chez FDH, Fournitures de Donjon d´Hyrule, à pourvoir de suite.
Le jeu: Linkle est un clône de Sokoban/Boxxle avec des graphismes repris de A link to the Past sur snes où vous incarnez Link qui doit ranger les pierres de chaque entrepôt sur les croix rouges peintes sur le sol. C´est fait en python/pygame, cà tourne en plein écran 320*240 à 60 fps et si cà marche nickel sur mon pc qui n´arrive même pas à faire fonctionner hl1 correctement cà n´aura sûrement pas de mal à marcher correctement chez vous. Pour l´instant il n´y a que 4 niveaux, pas de son.
Les touches:
- haut, bas, gauche, droite pour déplacer link/pousser une pierre;
- F1 à F4 pour charger un des 4 niveaux;
- la touche F pour désactiver/activer l´affichage des fps;
- echap pour sortir du jeu.
Bon jeu et n´hésitez pas à faire des remarques.
Ah ce genre de jeu, j´accroche a fond ![]()
A quand les prochains niveaux ?
Sinon j´ais vu auncun bug ou truc de ce genre, chapeaux ![]()
C´est une bonne question cà à quand les prochains niveaux
En fait je pourrais en rajouter très rapidement si je le voulais, l´éditeur de niveaux est plutôt bien avancé, mais d´abord je compte rendre le jeu un peu plus présentable parce que là être jeté de niveaux en niveaux c´est pas terrible, et jusqu´ici dans les autres petits projets que j´ai fait rendre un jeu présentable m´a toujours pris beaucoup plus de temps que de développer le mécanisme de jeu principal... Donc comme en plus je n´aime pas m´avancer sur des dates ou des délais que je ne tiendrais pas forcément je suppose que la réponse à la question est "quand je serais satisfait avec le contenu d´une nouvelle démo" ![]()
haha j´ai fini ta démo ;. . j´y est mis le temps mais héhhé
bref c´est assez terrible !!
pour le niveau trois faut te demerder pour mettre le bloc de droite en haut et celui du haut a droite, après tu devrait finir facilement
lol c´est là qu´on reconnait les gros glandeur ![]()
En fait j´aurait du mettre de la musique, j´imagine bien tout les collègues de travail se retournant brusquement en entendant une musique de Zelda
"Mais je vous jure les mecs, je ne sais pas ce que c´est, je suis en train de bosser là"
Pour un mode fenêtré je vais voir cà, là effectivement je l´avais viré d´office parce qu´une petite fenêtre 320*240 sur des moniteurs grosse résolution genre 1600*1200 cà fait pas terrible.
Deux petits screenshots de l´éditeur de maps en zoom fois 3, fait avec wxPython.
La première map bien sûr terminée:
http://perso.orange.fr/pyxsoftware/images_exterieures/editeur_linkle_01.png
Une map en cours d´édition, qui utilise ce qui sera sûrement le 2e thème pour la 2e série de maps, les cavernes de glace:
http://perso.orange.fr/pyxsoftware/images_exterieures/editeur_linkle_02.png
Avoir plusieurs environnements cà permettra de ne pas être barbé à jouer sans arrêt dans le même décor, parce que si tout va bien je prévois quand même 50 niveaux (cà fera normalement 5 thèmes différents).
Ca m´a l´air sympa tout ca. Fait avec python en plus, c´est cool.
T´as pas de probleme de vitesse d´execution avec python ? (ca me semblait un peu lent)
_Xaar -----> En fait j´aurait du mettre de la musique, j´imagine bien tout les collègues de travail se retournant brusquement en entendant une musique de Zelda
"Mais je vous jure les mecs, je ne sais pas ce que c´est, je suis en train de bosser là"
C´est fatiguant le boulot hein ![]()
T´as pas de probleme de vitesse d´execution avec python ? (ca me semblait un peu lent) <<<
Si cà affichait constamment une moyenne de 60 fps en haut à gauche alors cà fonctionnait à la vitesse normale pour laquelle j´ai prévu le jeu. Cà peut toutefois paraitre lent pour deux raisons, d´abord j´ai réglé les différentes étapes de l´animation de link pour qu´elles se succèdent moins vite que sur snes où Link à l´air d´être un super actif, ce qui peut donner une impression de lenteur si l´on est habitué à la version snes, et surtout ensuite je réduit la vitesse de Link de moitié quand il pousse un bloc; cà me semble plus logique qu´il soit ralenti quand il pousse quelque chose mais c´est vrai que dans des stages où il passe 80% du temps à pousser des caisses (comme le 2e niveau) cà ralenti le jeu. Je crois que je vais rajouter dans les options la possibilité d´accélerer le jeu et de désactiver la perte de vitesse de link quand il pousse un bloc, comme cà tout le monde pourra adapter la vitesse comme il veut.
Par contre si cà n´affichait pas 60 fps alors cà vient probablement de mon code qui pour l´instant ne s´occupe pas trop de savoir ce qui se passe si l´accélération matérielle n´est pas disponible
En mode fenêtré où je ne peut pas avoir d´accélération matérielle ou sur une carte graphique qui ne le supporte pas c´est vrai que cà tourne plus lentement.
En fait j´ai pas tester ta demo, je disais juste "le python me semble lent a executer" car j´ai deja vu des scripts phyton qui etaient lents.
Je ne vais pas trop me mouiller en disant cà mais je suppose que cà dépend de ce que fait le script et surtout de la façon dont il est codé, et donc pour le 2e point indirectement cà dépend de la compétence du codeur. Par exemple pour reprendre un truc sur lequel j´avais buté à mes débuts pour produire des thumbnails à la chaine j´avais pensé qu´il fallait utiliser une fonction générique du genre Scale qui redimensionne les images bien comme il faut, sauf que c´était tellement lent à éxécuter que sur le coup quelqu´un qui voyait cà aurait effectivement pu dire "mais c´est de la daube le python, c´est super lent!!!". Alors qu´en fait en utilisant la fonction Thumbnail de pil cà và bien plus vite pour obtenir le même réultat (j´avais pris des chronos à l´époque, cà allait même plus vite que certains freewares disponibles sur le net).
Je n´ai jamais fait des scripts de la mort qui tue genres des millions de calculs scientifiques à la suite qu´on aurait pu faire dans un domaine pro ou à la nasa, mais pour l´instant pour ce que je fait je ne trouve pas que le python soit un language lent.
Et au pire, est-ce que Psyco ne pourrait pas améliorer un peu les performances ?
cool il est vraiment bien ce ptit jeu
tu donne pas les codes sources? car j´étudie le python et ça m´intéresserait de voir comment c´est fait, à mon avis j´apprendrai pas mal de nouveaux trucs
Bon boulot
Psyco j´avais essayé une fois, et cà m´avait rien amélioré. je suppose parce que c´est du au fait que le principe de Psyco c´est de rendre plus rapide des portions de code alors que le code en fait je n´en ai pas énormément, c´est surtout les opérations graphiques de blittage qui me ralentissent les jeux quand elles sont trop nombreuses, et cà cà dépend plutôt des capacités du matériel.
Sinon j´ai mit une version source ici:
http://perso.orange.fr/pyxsoftware/fichiers/linkle_petite_demo_source.zip
Seulement je précise deux petits trucs:
- j´ai laissé tombé le côté poo pour faire que du procédural parce que c´est plus adapté à ma logique, mais quand je vois que 90% des pythonneux utilisent de la poo quand je vois des sources quelque part je ne sais pas si j´ai une attitude à conseiller ![]()
- il y a quelques trucs que j´ai déterminé sur papier, notamment la succession des animations de link, donc je ne crois pas que 100% du code va t´être compréhensible facilement.
Merci beaucoup
Waou j´avais pas vu que
http://perso.orange.fr/pyxsoftware/accueil.shtml c´est ton site! je suis tombé dessus justement tantôt, j´ai essayé PyxRamide et PyxTris et c´est super bien fait!
Le jeu PyxTris me rappelle quand je jouait Tetris y a des années de ça, et PyxRamide, je ne connaissais pas du tout, mais c´est un très bon jeu, bien développé, j´aime beaucoup :P
Même si je comprends pas encore énormément de choses dans le code de ces jeux (je serai bientôt à la fin du cours de Swinnen et j´ai pas encore vraiment vu PyGame ou PySonic) ça me motive d´apprendre de voir ça lol
Puis-je savoir avec quels cours/tutoriaux/livres tu as appris à maîtriser tout ça? (Python, Pygame, Pysonic, wxpython etc)
car j´ai beaucoup de tutos (la plupart de developpez.com) mais je ne sais pas dans lesquels me lancer.
Et si tu peux me dire un ordre dans lequel c´est bien de voir tout ça, ce serait sympa, car je ne pense pas que c´est bien de tout voir à la fois.
Merci beaucoup a+
Wulfgar> Si tu veux te lancer dans le Python y´a deux ressources majeures, celles de Devellopez.com que je connais pas et
http://www.ulg.ac.be/cifen/inforef/swi/ (faut chercher le cours) qui est une quasi-référence pour les débutants. Ensuite, fréquente des communautés de quelques Pythonneux (je sais que Xaar et moi sommes sur le Site du Zéro, par exemple)
_Xaar> Je vais regarder la source, moi aussi, tiens
merci. Mais pour Pysco à ma connaissance ça s´occupe surtout de gérer les listes et éventuellement les objets, les trucs comme ça quoi. Donc effectivement dans un code procédural et simple qui passe son temps à appeler Pygame, ça doit pas jouer.
Merci pour les sources, je vais pouvoir etudier ca de plus pres ^^
Wulfgar --> merci pour les compliments, et puis je suis bien content de voir que cà te motive puisqu´au fond c´est un peu le but quand je met tout cà en ligne, le python étant sous-utilisé chez les francophones pour faire des jeux 2d. Je ne dis pas non plus que c´est le meilleur language, mais il y a moyen de faire des bons trucs avec.
Pour les tutoriaux j´ai commencé comme beaucoup d´autres avec le cours de Swinnen. J´ai trouvé assez rapidement Tkinter et Pmw plutôt pas terribles, alors en cherchant si mieux existait je suis tombé sur wxPython, que j´ai appris à partir des tutoriaux qui se trouvent sur le site officiel, en farfouillant dans la doc wx.chm et surtout en faisant énormément de recherches Google quand j´étais bloqué quelque part. Pour pygame cà a été à peu près pareil. Pysonic c´est plutôt simple, il n´y a pas grand chose à connaitre pour jouer/arrêter des sons/musiques, mais pour faire un truc audio plus évolué je pense que c´est encore trop limité et qu´il faudra se tourner vers autre chose.
Dans l´ordre je pense que tu devrais d´abord potasser des tutos de base (Swinnen, les cours de développez.com, et puis pourquoi pas le tuto python du site du zéro (il n´est pas encore complet toutefois, il manque des trucs essentiels comme les listes ou les fonctions mais il fait déjà un bon début)). Ensuite il faut déterminer ce que tu veux faire: des applications genre windows ou des jeux, pour le 2e apprendre wxPython n´est absolument pas nécessaire même si cà sert bien pour faire un éditeur de niveaux. Tu n´es même pas obligé de choisir wxPython d´ailleurs, moi je l´utilise parce que je suis devenu habitué, qu´il convient pour ce que je fais et que j´ai donc la flemme de changer de librairie pour obtenir le même réultat, mais toi vu que tu n´es pas encore conditionné à une seule librairie tu peut jeter un coup d´oeil à pyqt ou pygtk, j´ai souvent vu des gens dire que c´est meilleur que wxPython.
Pour les sources si tu ne comprends pas trop le code du tetris c´est normal, même moi à la fin j´avais du mal à m´y retrouver et je ne pense pas que cà fasse un bon exemple pour apprendre. Il est plutôt là pour changer 2-3 options dans le jeu et puis c´est tout, en plus j´ai changé pas mal de choses dans ma façon de programmer depuis que je l´ai fait. Le code de Linkle est beaucoup plus clair et organisé.
Bon, j´arrête là mon roman ![]()
Merci pour ton roman ![]()
Sais-tu ce qu´il y a de mieux dans PyQt ou PyGtk par rapport à wxPython? ou les grands changements qu´il y a.
J´ai installé wxPython, mais je n´arrive pas à installer PyQt et PyGtk, j´ai installé correctement (appremment car il n´y a pas eu d´erreur) SIP pour PyQt, j´ai placé SIP et PyQt dans C:\Python24\sip-4.4.5 et C:\Python24\PyQt-4.0.1
après avoir tapé cd \Python24\sip-4.4.5 puis python configure.py dans l´invité de commandes (comme dit dans la documentation officielle), je ne sais pas comment faire pour installer PyQt...
et pour PyGtk, après avoir installé Gtk+ correctement avec Glade, je ne sais pas comment faire, je vais dans le répertoire de pygtk et je tape python setup.py, mais ça me met
"
Warning: too old version of gobject-2.0
Need gobject-2.0, but 2.6.6 is installed
ERROR: Nothing to do, gobject could not be found and is essential.
"
j´ai téléchargé gobject, mais je ne vois pas comment l´utiliser...
Désolé pour toutes ces questions, mais je ne trouve pas sur internet.. ou alors j´ai trouvé, mais ça ne fonctionne pas car ce n´est pas la même version etc
Merci de votre aide
je pars demain en vacances donc si vous saviez répondre avant ce serait sympa