Mot :   Pseudo :  
 
 Page :  1  2  3
Page Précédente 
Projet Java
 
n°1967
Profil : Internaute
Posté le 14-02-2007 à 10:04:58   answer
 

Ancien projet:
 

Spoiler :

Bon, je me lance dans une petite démo de shoot'em up old school à la R-Type en Java.
Si ça intéresse du monde, je peux poster mes sources au fur et à mesure que je développe ;)
 
Si vous avez quelques liens pour obtenir des sprites/backgrounds de shoots, ça serait gentil de m'en faire part, car je n'ai pas trouvé grand chose pour le moment :/
 
Pour l'instant, ce qui est prévu :
- Programmation des déplacements, du scrolling, 1 ou 2 ennemis qui arrivent aléatoirement à l'écran
- Résolution : 640 * 480
- Contrôles au clavier uniquement pour le moment
- Gestion des sons
- Mode plein écran
 
Et pour commencer, quoi de mieux qu'un joli background blanc et un carré noir pour le vaisseau ? :mdr:
 
HS : Bizarrement, ma démo de Zelda 2D qui ramait à mort sur mon Mac avant tourne nickel maintenant, je n'ai pas du tout touché au code... Etrange :/ La musique saccade un peu par contre, mais le jeu est fluide !


 
Nouveau projet:
Un ensemble d'outils pour la création de jeux 2D (principalement RPG) de type RPG Maker.


Message édité par Aru le 10-03-2008 à 15:06:47

---------------
Playfrance's Monk of Twilight -> Aru
n°1968
Profil : Internaute
Posté le 14-02-2007 à 10:37:27   answer
 

J'avais trouvé ça il y a maintenant pas mal de temps, c'est ptet pas les plus jolis sprites du monde mais ça sera mieux que des carrés pour tes tests et au moins tu as le droit de les utiliser ;)

n°1969
Profil : Internaute
Posté le 14-02-2007 à 11:08:00   answer
 

Merci Zeross :)


---------------
Playfrance's Monk of Twilight -> Aru
n°1972
Profil : Internaute
Posté le 15-02-2007 à 12:56:53   answer
 

Un pote (qui était dans le groupe de création de la démo de Zelda dont j'ai parlé plus haut mais qui finalement n'a rien fait du tout) m'a fait remarquer l'existence d'une méthode intersects dans la classe Rectangle de Java (étonnant de sa part, vu que c'est un gros glandeur :mdr:) qui aurait pu vachement me simplifier la vie si je l'avais trouvée à l'époque !
 
C'est moi qui me suit occupé des collisions dans la démo (ainsi que tout ce qui touche à Link : animations, combats...), les seuls trucs que je n'ai pas codé sont les évènements (coeurs, herbes...) et l'éditeur de cartes (bien que j'ai fourni des billes à mon autre pote pour l'aider dans sa tâche, je pouvais pas tout faire :/) et aussi barbare que ça puisse être, j'ai fait tous les tests avec les valeurs des coordonnées avec des signes de comparaison, le truc bien relou :mdr:
 
Si vous la voulez, je peux vous la mettre quelque part (mais pour le code source, théoriquement je n'ai pas le droit, le projet appartient à l'école, mais bon, je doute qu'ils s'en aperçoivent ;)), mais vous risquez de me dire que c'est très buggué :mdr:
C'est jouable mais les animations sont mal fichues (en particulier les attaques).
 
Le tout marche sur tout système d'exploitation mais la musique saccade un peu sur MacOS X.


---------------
Playfrance's Monk of Twilight -> Aru
n°1974
Profil : Modérateur
Posté le 15-02-2007 à 15:01:45   answer
 

Aru a écrit :

Un pote m'a fait remarquer l'existence d'une méthode intersects dans la classe Rectangle de Java qui aurait pu vachement me simplifier la vie si je l'avais trouvée à l'époque !


En même temps (et surtout si c'était un projet de programmation), ce n'est vraiment pas perdu. C'est un bon coup à prendre, et quand quelqu'un veut apprendre la programmation, je lui suggère souvent de s'essayer à coder un clone d'Arkanoïd. C'est quelque chose qu'il est bon d'avoir envisagé au moins une fois.
 

Aru a écrit :

mais pour le code source, théoriquement je n'ai pas le droit, le projet appartient à l'école


Y'a un cadre juridique pour ça ?
Parce que dans un sens, c'est assez inadmissible... Dans un projet, en général, je réutilise du code de programmes que j'ai écrit avant. Si ça voulait dire que je n'étais plus autorisé à m'en resservir après... Les droits sur le code source, c'est assez compliqué à gérer, alors si les écoles s'y mettent...

n°1975
Profil : Internaute
Posté le 15-02-2007 à 15:18:50   answer
 

Koren a écrit :

En même temps (et surtout si c'était un projet de programmation), ce n'est vraiment pas perdu. C'est un bon coup à prendre, et quand quelqu'un veut apprendre la programmation, je lui suggère souvent de s'essayer à coder un clone d'Arkanoïd. C'est quelque chose qu'il est bon d'avoir envisagé au moins une fois.


 
Bah, en même temps j'y toucherais plus à cette démo, quitte à faire quelque chose dans le genre je préfère recommencer.
 

Koren a écrit :

Y'a un cadre juridique pour ça ?
Parce que dans un sens, c'est assez inadmissible... Dans un projet, en général, je réutilise du code de programmes que j'ai écrit avant. Si ça voulait dire que je n'étais plus autorisé à m'en resservir après... Les droits sur le code source, c'est assez compliqué à gérer, alors si les écoles s'y mettent...


 
Apparemment oui, d'après ce que m'avait dit un de mes profs à l'école. Bon, en même temps si je le réutilise ils vont avoir du mal à le prouver sauf si je n'y fais aucune modification (quasi-impossible).


---------------
Playfrance's Monk of Twilight -> Aru
n°1976
Profil : Modérateur
Posté le 15-02-2007 à 16:32:02   answer
 

Aru a écrit :

Bah, en même temps j'y toucherais plus à cette démo, quitte à faire quelque chose dans le genre je préfère recommencer.


Certes, mais la façon d'envisager la chose, c'est une connaissance qui te sera peut-être utile dans la suite. Si tu as un problème de collisions plus complexe, par exemple.
 

Aru a écrit :

Apparemment oui, d'après ce que m'avait dit un de mes profs à l'école.


Il peut dire ce qu'il veut, ça ne signifie pas forcément grand-chose. Si tu es sous contrat avec une boite, en général, il est précisé ce qui, en terme de code, leur appartient (dans le cas du labo où je travaillais, c'est tout le code que je produisais sur leurs machines et/ou dans leurs locaux et/ou avec des connaissances que j'aurais acquis sur place... ce qui déjà en soi est problématique puisque ce que je codais le dimanche, pour peu que j'utilise le contenu d'un article dont on ne peut pas dire si je l'ai trouvé au boulot ou de chez moi, est difficile à attribuer).
 
Si tu es dans une école d'ingénieur, tu dois avoir signé un papier spécifiant ce qu'il advient de tes travaux, et si ce n'est pas le cas, il y a peut-être un cadre juridique derrière, mais j'aimerais savoir parce que je ne suis pas au courant.
 

Aru a écrit :

Bon, en même temps si je le réutilise ils vont avoir du mal à le prouver sauf si je n'y fais aucune modification (quasi-impossible).


Oh, là... c'est un sérieux problème, mais même si tu fais des modifications sérieuses, ça peut ne pas suffire. Ca revient à de l'interprétation, et les jurys ne sont souvent pas très compétents pour juger ça...
 
M'enfin un code de ce genre, je vois mal comment il peut contenir suffisamment de complexité pour qu'on puisse réellement trancher dans un sens ou un autre.

n°1980
Profil : Internaute
Posté le 25-02-2007 à 18:13:13   answer
 

Citation :

Bon, je me lance dans une petite démo de shoot'em up old school à la R-Type en Java.


Java t'es impose ou c'est un "choix artistique" :??:


---------------
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d.
1f u c4n wr1t3 1t t00.
n°1981
Profil : Modérateur
Posté le 25-02-2007 à 19:27:32   answer
 

Skyfighter a écrit :

Java t'es impose ou c'est un "choix artistique" :??:


On peut choisir Java pour des raisons artistiques ?
On peut choisir Java tout court, d'ailleurs ? :mdr:

n°1982
Profil : Internaute
Posté le 26-02-2007 à 00:20:04   answer
 

Koren a écrit :


On peut choisir Java pour des raisons artistiques ?


Bien sur, tu sais y'a bien des gens qui developpent un OS multitache pour intellivision donc l'un dans l'autre :D

Citation :


On peut choisir Java tout court, d'ailleurs ? :mdr:


Moi qui essayait d'etre subtile :whistle:  
Je suppose qu'on peut le "choisir" si le but est de mettre a dispo le jeu derriere sous forme d'applet sur une page web.
Apres perso clairement je tenterais pas de faire un danmaku, suis pas sur que le frame rate suive :whistle:  

Spoiler :


M'enfin en meme temps vu le frame rate des jeux java sur portables... :lol:  


---------------
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d.
1f u c4n wr1t3 1t t00.
n°1983
Profil : Modérateur
Posté le 26-02-2007 à 11:26:13   answer
 

Ah, d'accord, je prêche un converti :mdr: De toute façon, les querelles de langage, c'est encore plus la foire que les guerre des consoles, chacun a son ou ses langages fétiches etn'en démordra pas. Et finalement, pourquoi pas.
 
Le plus rigolo, c'est que la moitié des raisons ne sont pas rationnelles mais plutôt affectives. Enfin, pas nécessairement de façon évidente, mais il est fréquent qu'on "aime moins" la syntaxe d'un langage parce que quand on l'a appris, elle différait de celle dont on avait l'habitude.
 
 
Je ne suis en revanche pas certain que Java pose des problèmes de performances. Je suis persuadé qu'on peut faire un danmaku à coup de JSDL (ou alors tu parlais applets ?). Remarque, j'ai bien joué à un Ikaruga en applet Java, et ça tournait bien malgré un grand nombre de balles à l'écran.

Message cité 1 fois
Message édité par Koren le 26-02-2007 à 11:26:33
n°1984
Profil : Rédacteur PF
Posté le 26-02-2007 à 13:33:30   answer
 

C'est assez étrange ces histoires de sources JAVA protégés, quand on sait la sécurité liés au JAVA lol


---------------
Toute l'actualité PS3, PSP et PS2 sur Playfrance.com
 
PSN : Halouf
Wii : 8216 1846 7242 3813
n°1985
Profil : Internaute
Posté le 27-02-2007 à 10:05:12   answer
 

Skyfighter a écrit :

Citation :

Bon, je me lance dans une petite démo de shoot'em up old school à la R-Type en Java.


Java t'es impose ou c'est un "choix artistique" :??:


 
Java ne m'est pas imposé car il s'agit d'un projet personnel, je ne suis plus à l'école ;)
 

Koren a écrit :

On peut choisir Java pour des raisons artistiques ?
On peut choisir Java tout court, d'ailleurs ? :mdr:


 
Roh, des jeux 3D professionnels en Java, ça existe vous savez ? (j'ai oublié le nom d'un des jeux sur lequel j'étais tombé par hasard)  
 

Skyfighter a écrit :

Bien sur, tu sais y'a bien des gens qui developpent un OS multitache pour intellivision donc l'un dans l'autre :D

Citation :


On peut choisir Java tout court, d'ailleurs ? :mdr:


Moi qui essayait d'etre subtile :whistle:  
Je suppose qu'on peut le "choisir" si le but est de mettre a dispo le jeu derriere sous forme d'applet sur une page web.
Apres perso clairement je tenterais pas de faire un danmaku, suis pas sur que le frame rate suive :whistle:  

Spoiler :


M'enfin en meme temps vu le frame rate des jeux java sur portables... :lol:  



 
Mon but n'est pas du tout de faire une applet.
 

Koren a écrit :

Ah, d'accord, je prêche un converti :mdr: De toute façon, les querelles de langage, c'est encore plus la foire que les guerre des consoles, chacun a son ou ses langages fétiches etn'en démordra pas. Et finalement, pourquoi pas.
 
Le plus rigolo, c'est que la moitié des raisons ne sont pas rationnelles mais plutôt affectives. Enfin, pas nécessairement de façon évidente, mais il est fréquent qu'on "aime moins" la syntaxe d'un langage parce que quand on l'a appris, elle différait de celle dont on avait l'habitude.
 
 
Je ne suis en revanche pas certain que Java pose des problèmes de performances. Je suis persuadé qu'on peut faire un danmaku à coup de JSDL (ou alors tu parlais applets ?). Remarque, j'ai bien joué à un Ikaruga en applet Java, et ça tournait bien malgré un grand nombre de balles à l'écran.


 
Je ne savais même pas que la SDL existait en Java :heink: A mon avis, les classes du JDK bien utilisées suffisent à créer un shoot'em up performant et fluide, même un Danmaku !
J'ai choisi Java car c'est effectivement le langage dans lequel je suis le plus à l'aise, je hais le C++ que je trouve trop barbare :kaola: Java n'est pas du tout plus lent que C++, mais il est plus lent que "le C du C++", si je me fais bien comprendre ;) A part un démarrage moins rapide, les applications Java bien programmées sont performantes.
De plus, en choisissant Java, tout le monde pourra essayer ma démo. Si j'avais choisi un autre langage comme l'Objective-C, le C++ ou l'AppleScript, j'aurais été obligé de faire plusieurs versions (sauf pour l'AppleScript, ça aurait été un peu difficile vu qu'il appartient à Apple) selon les systèmes d'exploitation.
 

Halouf a écrit :

C'est assez étrange ces histoires de sources JAVA protégés, quand on sait la sécurité liés au JAVA lol


C'est étrange mais utile et pratique :)


---------------
Playfrance's Monk of Twilight -> Aru
n°1986
Profil : Modérateur
Posté le 27-02-2007 à 10:25:53   answer
 

Aru a écrit :

Roh, des jeux 3D professionnels en Java, ça existe vous savez ? (j'ai oublié le nom d'un des jeux sur lequel j'étais tombé par hasard)


Je sais :mdr: Ne le prends pas mal, c'est commun entre informaticiens la guéguerre des langages, et c'est bon enfant comme querelles. Si c'est le langage qui te plaît, tu fais bien.
 
Mon choix personnel, c'est le D, et celui que j'utilise le plus souvent pour l'instant, ça reste le C++. Plus le Ocaml quand j'ai à faire de l'algorithmique, et du perl dans certaines situations. Plus une foule de trucs de temps en temps (Python, Lua, Ada, Lisp, F90, et Java à l'occasion). Je ne crois pas qu'il y ait un langage définitivement supérieur à un autre, c'est complètement une question de préférences.
 
J'ai même fait des trucs rigolos, comme du LT, Befunge, Chef, Shakespeare...
 

Aru a écrit :

Je ne savais même pas que la SDL existait en Java :heink:


SDL a des bindings pour à peu près tous les langages, c'est bien pratique... Il y en a même deux sous Java. Ca fait partie des attraits de SDL*
 
Ada (AdaSDL), C# (SDL.Net), Ch (Ch SDL), Eiffel (EiffelMedia, ewg), Erlang (ESDL), Euphoria (SDL_Wrap), Guile (guile-sdl), Haskell (HSDL), Java (JSDL, SDLJava), Lisp (CL-SDL, SDL-CCL), Lua (luaSDL), ML (SDLML, OCamlSDL), Objective C (SDLObjC), Pascal (SDL4Freepascal, JEDI-SDL), Perl (SDLPerl), PHP (SDL module), Pike (natif), Pliant (Pligame), Python (PyGame), Ruby (RUDL), Smalltalk (SDLSmalltalk)
 
* le seul défaut que je trouve à SDL, c'est que c'est un cauchemar à compiler sous cygwin, et même avec mingw sous cygwin ce n'est pas facile (et à l'usage, ça limite la compatibilité). Si quelqu'un sait installer compiler SDL en natif sous cygwin, qu'il me contacte !
 
 

Aru a écrit :

A mon avis, les classes du JDK bien utilisées suffisent à créer un shoot'em up performant et fluide, même un Danmaku !


C'est bien possible, je ne m'y essaierais pas (principalement parce que bien les utiliser requerrait un investissement peu rentable pour moi), mais je te fais confiance là-dessus. Cela dit, il y a quand même une bonne couche d'interface, si je ne m'abuse, quand vraiment je pars pour ce genre de chose, j'essaie de la diminuer au maximum (d'où souvent SDL).


Message édité par Koren le 27-02-2007 à 10:26:49
n°1987
Profil : Internaute
Posté le 27-02-2007 à 10:33:06   answer
 

Pour l'instant, le Danmaku n'est pas à l'ordre du jour pour moi :D
Je suis un peu occupé en ce moment, pas trop le temps de programmer cette démo... Entre continuer mes jeux, regarder des animes, programmer et apprendre le japonais, il me reste pas grand chose du peu de vie sociale que j'ai :mdr:


---------------
Playfrance's Monk of Twilight -> Aru
n°1988
Profil : Modérateur
Posté le 27-02-2007 à 10:59:18   answer
 

Aru a écrit :

Pour l'instant, le Danmaku n'est pas à l'ordre du jour pour moi :D


Tiens, en parlant de ça, un truc bien utile pour ceux qui veulent développer un shoot'em up (à fortiori si c'est en Java ;) ) : BulletML
 
http://www.asahi-net.or.jp/~cs8k-c [...] dex_e.html
 
C'est un langage de description de pattern d'attaque en XML, très très pratique pour avoir des shémas intéressants...
 

Aru a écrit :

Je suis un peu occupé en ce moment, pas trop le temps de programmer cette démo... Entre continuer mes jeux, regarder des animes, programmer et apprendre le japonais, il me reste pas grand chose du peu de vie sociale que j'ai :mdr:


Je vois tout à fait :mdr:

n°1989
Profil : Internaute
Posté le 27-02-2007 à 11:15:04   answer
 

Koren a écrit :

Tiens, en parlant de ça, un truc bien utile pour ceux qui veulent développer un shoot'em up (à fortiori si c'est en Java ;) ) : BulletML
 
http://www.asahi-net.or.jp/~cs8k-c [...] dex_e.html
 
C'est un langage de description de pattern d'attaque en XML, très très pratique pour avoir des shémas intéressants...
 
 
Je vois tout à fait :mdr:


 
Je vais voir ça :)
Ah la dure vie d'informaticien :whistle:
 
EDIT : Hallucinant ton BulletML là :ouch:  
Je pense que ça devrait bien me servir :D
Merci :)


Message édité par Aru le 27-02-2007 à 11:18:26

---------------
Playfrance's Monk of Twilight -> Aru
n°1990
Profil : Internaute
Posté le 27-02-2007 à 19:32:37   answer
 

Aru a écrit :


J'ai choisi Java car c'est effectivement le langage dans lequel je suis le plus à l'aise, je hais le C++ que je trouve trop barbare :kaola:


C'est un choix, je peux comprendre. Moi je peux pas voir le LISP et pourtant je fais de l'IA :D

Citation :


Java n'est pas du tout plus lent que C++, mais il est plus lent que "le C du C++", si je me fais bien comprendre ;) A part un démarrage moins rapide, les applications Java bien programmées sont performantes.


Je demande une definition de bien programme alors, parce que les techniques barbares de programmation full-statique pour pas que le garbage collector se lance c'est pas ce que j'appelerais bien programmer :whistle:

Spoiler :


Bon, maintenant histoire de troller un peu...
J'ai un prof qui disais: "Faut arreter de dire que le Java c'est lent, il est juste plus lent que les autres.".
(troll 2: "Java c'est lent, la preuve c'est un langage interprete." )


 

Citation :


De plus, en choisissant Java, tout le monde pourra essayer ma démo. Si j'avais choisi un autre langage comme l'Objective-C, le C++ ou l'AppleScript, j'aurais été obligé de faire plusieurs versions (sauf pour l'AppleScript, ça aurait été un peu difficile vu qu'il appartient à Apple) selon les systèmes d'exploitation.


C'est un mythe qui a la vie dure, mais entre la SDL, QT, OpenGL, Ogre, boost et cie faut presque le vouloir pour arriver a coder un truc pas cross plateforme en C++ (ou coder avec les API microsoft mais ca c'est un autre probleme). Je dis pas que le code est 100% identique mais les differences se limitent a deux ou trois macros et la compilation dans la majorite des cas.


---------------
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d.
1f u c4n wr1t3 1t t00.
n°1991
Profil : Internaute
Posté le 27-02-2007 à 21:09:14   answer
 

Bah une recompilation c'est parfois bien chiant ! Je déteste ça :D
Et puis toutes tes librairies là me demanderaient un certain investissement supplémentaire pour un résultat quasi-identique, donc inintéressant pour moi pour l'instant :) Je préfère me perfectionner avec Java ;)


---------------
Playfrance's Monk of Twilight -> Aru
n°1992
Profil : Modérateur
Posté le 27-02-2007 à 23:06:58   answer
 

Skyfighter a écrit :

C'est un choix, je peux comprendre. Moi je peux pas voir le LISP et pourtant je fais de l'IA :D


Et Prolog ? :mdr:
 

Aru a écrit :

Bah une recompilation c'est parfois bien chiant ! Je déteste ça :D


Ca fait un moment que je veux écrire un truc pour générer des "universal binairies" Win/Linux/OS-X à coup de cross-compilation gcc...
 
Sinon, je me demande si ce serait gérable à coup de Cint :mdr:
 

Aru a écrit :

Et puis toutes tes librairies là me demanderaient un certain investissement supplémentaire


Pas supplémentaire... Tu te lance dans SDL à la place de creuser le JDK dans tous les sens pour en sortir les librairies graphiques. C'est un choix, de toute façon...

n°1993
Profil : Modérateur
Posté le 27-02-2007 à 23:10:28   answer
 

Au passage, Java n'est pas vraiment interprété, le bytecode, c'est presque de l'assembleur. Certes, il y a une perte de puissance, mais bon...
 
Et puis, sinon, il y a les compilateurs "à l'arrache" (je ne parviendrai jamais à retenir la traduction de "Just in time" )

n°1995
Profil : Internaute
Posté le 27-02-2007 à 23:55:58   answer
 

Koren a écrit :


Et Prolog ? :mdr:


J'ai ete tente de tester parce qu'on a eu un proj de systeme expert (qui se termine demain a minuit \o/). Mais bon, je sortais de stage, fallait que je refasse du  beau C++ ca me manquait :sweat: :D

Citation :


Ca fait un moment que je veux écrire un truc pour générer des "universal binairies" Win/Linux/OS-X à coup de cross-compilation gcc...


C'est possible via a vis du format des binaires de windows? J'ai jamais cherche a le faire mais il me semblait que c'etait trop heteroclyte :??:  

Citation :


Au passage, Java n'est pas vraiment interprété, le bytecode, c'est presque de l'assembleur. Certes, il y a une perte de puissance, mais bon...


Je sais, c'est pour ca que je dis qu'il est interprete :whistle: :mdr:
Encore que je suis assez curieux de voir les consequences en fonction des archis: la prediction de branchements des P4 je suis pas persuade qu'elle comprenne le bytecode java :whistle:  

Citation :


Et puis, sinon, il y a les compilateurs "à l'arrache" (je ne parviendrai jamais à retenir la traduction de "Just in time" )


C'est d'ailleurs marrant de voir les perfs des jeux sur telephones portables: a meme hard le portable avec JIT fait x2 le frame rate du portable sans...

Citation :


Bah une recompilation c'est parfois bien chiant ! Je déteste ça :D
Et puis toutes tes librairies là me demanderaient un certain investissement supplémentaire pour un résultat quasi-identique, donc inintéressant pour moi pour l'instant :) Je préfère me perfectionner avec Java ;)


bibliotheques ;)
Ca je dis pas, c'est un choix.


---------------
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d.
1f u c4n wr1t3 1t t00.
n°1996
Profil : Modérateur
Posté le 28-02-2007 à 01:32:48   answer
 

Skyfighter a écrit :

J'ai ete tente de tester parce qu'on a eu un proj de systeme expert (qui se termine demain a minuit \o/). Mais bon, je sortais de stage, fallait que je refasse du  beau C++ ca me manquait :sweat: :D


Suis pas fan de Prolog, mais si tu le croises à l'occasion, tu te feras un avis toi-même. L'idée à la base est intéressante, elle permet de faire certaines choses facilement (genre démontrer que Dieu existe) mais comme tu ne maîtrise pas ce qu'il fait (va t'en comprendre le raisonnement sur le truc qui précède...), je ne trouve pas ça aisé pour programmer.
 

Skyfighter a écrit :

C'est possible via a vis du format des binaires de windows? J'ai jamais cherche a le faire mais il me semblait que c'etait trop heteroclyte :??:


Je n'en suis pas sûr, je connais bien le format ERF de Linux, mais mal le format PE de windows. Cela dit, je pense que c'est potentiellement jouable. A voir.
 
Il y a plein de trucs rigolos, quand même (la gestion d'une arborescence de fichiers virtuelles stockée dans l'exécutable, j'ai découvert ça il y a peu, c'est marrant).
 

Skyfighter a écrit :

Encore que je suis assez curieux de voir les consequences en fonction des archis: la prediction de branchements des P4 je suis pas persuade qu'elle comprenne le bytecode java


Bonne question. M'est avis que ça marche plutôt bien, mais cela ne repose sur rien... Et si c'est du 'just in time', ça devrait aller encore mieux. De toute façon, qui veut d'un P4 ? :D

n°1997
Profil : Internaute
Posté le 28-02-2007 à 11:12:40   answer
 

Skyfighter a écrit :

C'est un mythe qui a la vie dure, mais entre la SDL, QT, OpenGL, Ogre, boost et cie faut presque le vouloir pour arriver a coder un truc pas cross plateforme en C++ (ou coder avec les API microsoft mais ca c'est un autre probleme). Je dis pas que le code est 100% identique mais les differences se limitent a deux ou trois macros et la compilation dans la majorite des cas.


 
Euh de mon expèrience ça serait presque le contraire : même en utilisant des API soit disant cross plateformes il faut se motiver pour que faire du code vraiment portable le dernier exemple que j'ai en tête c'est une appli utilisant Performer, Qt et la STL et qui devait tourner sur IRIX et Linux, donc pas le truc le plus compliqué du monde, ben au final ça marche pas aussi bien tu es obligé comme tu dis de tester et d'appliquer des petites verrues localement pour corriger tel petit truc qui n'est pas géré pareil.
 
Et je passe sur OpenGL ou déjà avoir du code "portable" entre deux cartes 3D ATI et NVIDIA même sous windows est déjà une sacré gageure (surtout quand t'utilises du GLSL entre NVIDIA qui respecte pas la norme, ATI qui a des bugs c'est fun :D)

n°1998
Profil : Modérateur
Posté le 28-02-2007 à 15:43:59   answer
 

Zeross a écrit :

Euh de mon expèrience ça serait presque le contraire : même en utilisant des API soit disant cross plateformes il faut se motiver pour que faire du code vraiment portable


Bizarre... J'utilise SDL, Fltk, un peu de Fox ou de WxWidgets, la STL, la GSL, la Boost de temps en temps, OpenGL... et ça fait longtemps que je n'ai pas eu de gros problème à passer d'un OS à l'autre (Linux/Windows quotidiennement, OS-X relativement régulièrement).
 
En fait, les seuls trucs parfois manqués, ce sont des bugs d'endianness non repérés de suite, et le fait que Windows n'est pas case sensitive (paf le include qui ne marche plus sous Linux :lol:)
 
A moins d'utiliser la couche hardware, je trouve quand même rare de faire des choses compatibles Linux et pas Cygwin (ils ont quand même réussi à recompiler sans soucis Gnome et KDE pour Windows, et ça fonctionne bien...)

n°2000
Profil : Internaute
Posté le 28-02-2007 à 22:21:31   answer
 

Zeross a écrit :


Et je passe sur OpenGL ou déjà avoir du code "portable" entre deux cartes 3D ATI et NVIDIA même sous windows est déjà une sacré gageure (surtout quand t'utilises du GLSL entre NVIDIA qui respecte pas la norme, ATI qui a des bugs c'est fun :D)


Ca je dis pas, mais je partais plus sur une comparaison vis a vis des utilisations courantes du java.
De mon cote, j'ai eu l'occasion de faire un proj cross plateforme avec gestion de webcam. Si la recuperation du flux differe entre les archis, le code de l'affichage sous QT etait identique.

Citation :


A moins d'utiliser la couche hardware, je trouve quand même rare de faire des choses compatibles Linux et pas Cygwin (ils ont quand même réussi à recompiler sans soucis Gnome et KDE pour Windows, et ça fonctionne bien...)  


En meme temps, sans un serveur X "natif" derriere sur ton cygwin, ca tournerait moins bien :D
 
EDIT: on remarquera la magnifique publicitee ciblee que ce thread arrive a generer:
http://tasogarenorequiem.free.fr/java.jpg

Message cité 1 fois
Message édité par Skyfighter le 28-02-2007 à 22:27:55

---------------
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d.
1f u c4n wr1t3 1t t00.
n°2001
Profil : Modérateur
Posté le 01-03-2007 à 11:09:34   answer
 

Skyfighter a écrit :

En meme temps, sans un serveur X "natif" derriere sur ton cygwin, ca tournerait moins bien :D


Certes... Mais peu me chaud l'environnement nécessaire, toujours est-il que ça ne pose pas de problème majeur. Je développe sans X, pour ma part, Fltk, Fox, SDL et consorts se débrouillent très bien sans.
 

Skyfighter a écrit :

EDIT: on remarquera la magnifique publicitee ciblee que ce thread arrive a generer:
http://tasogarenorequiem.free.fr/java.jpg


:mdr:

n°2002
Profil : Internaute
Posté le 09-03-2007 à 23:09:22   answer
 

Tiens, je ne savais pas qu'il y avait des trucs aussi passionnants sur PF XD
Votre tendre java me rappelle mes récentes douceurs nocturnes sur JSF et le terrible viol de JBOSS sur mon esprit de non initié.
 
Comme je dis souvent "Java, ça pue". Mais au délà de ça, j'aurais dû dire que "Aaaah Java, le temps de prendre un café entre deux traitements"

n°2004
Profil : Internaute
Posté le 11-03-2007 à 08:54:18   answer
 

Fonkypij a écrit :


Tiens, je ne savais pas qu'il y avait des trucs aussi passionnants sur PF XD


Faut dire qu'a partir du moment ou c'est pour troller sur java, y'a des fora plus adaptes :D  

Citation :


Votre tendre java me rappelle mes récentes douceurs nocturnes sur JSF et le terrible viol de JBOSS sur mon esprit de non initié.


Pareil avec Jonas (et Globus aussi d'ailleurs...) mais J2SE c'est quand meme heureusement moins le bordel que J2EE.

Citation :


Comme je dis souvent "Java, ça pue". Mais au délà de ça, j'aurais dû dire que "Aaaah Java, le temps de prendre un café entre deux traitements"


Ca par contre, ca me rappelle un partiel de modelisation objet de systeme de gestion de cafetiere: l'interface machine fournie etait en java :sweat:


---------------
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d.
1f u c4n wr1t3 1t t00.
n°2005
Profil : Internaute
Posté le 12-03-2007 à 09:55:09   answer
 

J'avais déjà pas eu le temps de faire grand chose comme travail sur cette démo mais étant encore une fois privé d'ordi pendant 1 mois (vive Apple :fou:), ça ne risque pas de progresser :/

n°2120
Profil : Internaute
Posté le 14-05-2007 à 20:21:56   answer
 

Bon, quand j'aurais un ordi à moi, je pourrais éventuellement m'y mettre :fou:


---------------
Playfrance's Monk of Twilight -> Aru
n°2157
Profil : Internaute
Posté le 01-08-2007 à 20:15:46   answer
 

Bon, j'y pu m'y remettre un peu (enfin commencer surtout :mdr: ) pendant une petite période creuse au taf :P
J'ai commencé à programmer les bases, et là je me suis attaqué vite fait au moteur graphique.
 
Je vais nettoyer un peu le code et poster ici, j'aimerais avoir vos commentaires sur la manière dont j'ai réalisé ce premier fragment qui dessine dynamiquement tous les types d'objets du jeu à l'écran, sans que je n'ai à déclarer explicitement à la main ce qu'il faut faire, la méthode est "générique". Et ça tranche pas mal avec mon Zelda avant qui avait été programmé à la va vite pour tenir les délais et dans lequel le moindre ajout d'objet ou de personnage nécessitait un copié/collé de plusieurs lignes et quelques modifications au niveau de certaines valeurs. Ici, tout devrait être transparent :)


---------------
Playfrance's Monk of Twilight -> Aru
n°2160
Profil : Internaute
Posté le 02-08-2007 à 17:17:03   answer
 

Moi en tout cas je suis intéressé. J'ai eu l'occasion de faire quelques petits jeux avec SDL en C/C++ à l'école mais jamais en Java (que j'utilise le plus pourtant, mais pour des application métier destinées à l'entreprise )

 

Bon courage ;)


Message édité par wadisnake le 02-08-2007 à 17:17:20

---------------
http://www.top-series.net/  => LE forum des séries tv  
n°2163
Profil : Internaute
Posté le 02-08-2007 à 19:37:45   answer
 

Je vais essayer de montrer la méthode que j'ai choisi pour rendre mon moteur souple et dynamique, il est très loin d'être fini. J'en suis encore au tout début, mais ne voulant pas faire fausse route, des commentaires sur ma méthode s'imposent.
Je repasse tout à l'heure pour mettre ça si je suis pas trop pris par Ninja Gaiden :mdr:


---------------
Playfrance's Monk of Twilight -> Aru
n°2164
Profil : Internaute
Posté le 02-08-2007 à 21:57:22   answer
 

Donc voici le code en question :  

Code :
  1. public class DrawingManager extends Frame
  2. {
  3. /*
  4.  * BufferStrategy for the double buffering
  5.  */
  6. private BufferStrategy strategy;
  7. private Graphics drawer;
  8. /*
  9.  * List of all objects that are drawn on the screen
  10.  * Initial capacity : 20
  11.  * May set a max capacity ? 50 ?
  12.  */
  13. private Vector drawedObjects;
  14. /**
  15.  * Instantiates a new Drawing Manager and creates a 640 * 480 pixels Frame, undecorated.
  16.  * Other properties : no menu bar, not resizable.
  17.  */
  18. public DrawingManager()
  19. {
  20.  /*
  21.   * Frame properties
  22.   */
  23.  setBounds(100, 100, 640, 480);
  24.  setUndecorated(true);
  25.  /*
  26.   * Important : the Frame must be set visible
  27.   * BEFORE initialiazing the double buffering (createBufferStrategy)
  28.   */
  29.  setVisible(true);
  30.  new ScreenManager().setFullScreen(this);
  31.  /*
  32.   * Double buffering configuration
  33.   */
  34.  createBufferStrategy(2);
  35.  strategy = getBufferStrategy();
  36.  drawedObjects = new Vector(20);
  37. }
  38. /**
  39.  * Instantiates a new Drawing Manager and creates a width * height pixels Frame, undecorated.
  40.  *  
  41.  */
  42. public DrawingManager(int width, int height)
  43. {
  44.  /*
  45.   * Frame properties
  46.   */
  47.  setBounds(100, 100, width, height);
  48.  setUndecorated(true);
  49.  /*
  50.   * Important : the Frame must be set visible
  51.   * BEFORE initialiazing the double buffering (createBufferStrategy)
  52.   */
  53.  setVisible(true);
  54.  /*
  55.   * Double buffering configuration
  56.   */
  57.  createBufferStrategy(2);
  58.  strategy = getBufferStrategy();
  59.  drawedObjects = new Vector(20);
  60. }
  61. public void draw()
  62. {
  63.  /*
  64.   * Iterator : incremental variable for the "for" loop
  65.   * x : horizontal position of the selected object
  66.   * y : vertical position of the selected object
  67.   */
  68.  int iterator, x, y;
  69.  /*
  70.   * These objects are used to get the elements to be drawn
  71.   * and their methods
  72.   */
  73.  Object objectToDraw;
  74.  Class classOfObjectToDraw;
  75.  drawer = strategy.getDrawGraphics();
  76.  /*
  77.   * Erasing the screen
  78.   */
  79.  drawer.setColor(Color.white);
  80.  drawer.fillRect(0, 0, getWidth(), getHeight());
  81.  /*
  82.   * Draw background
  83.   */
  84.  //TEMP
  85.  // TODO
  86.  drawer.setColor(Color.red);
  87.  drawer.fillRect(0, 0, getWidth(), getHeight());
  88.  /*
  89.   * Draw objects
  90.   */
  91.  // TEMP
  92.  drawer.setColor(Color.blue);
  93.  if(drawedObjects.isEmpty() == false)
  94.  {
  95.   /*
  96.    * Must create a variable which contains the new size of the drawedObjects Vector to avoid many reallocations of the class
  97.    * when objects are removed.
  98.    * This variable must be synchronized !!!!!!!
  99.    */
  100.   try
  101.   {
  102.    /*
  103.     * Get all the objects to draw on the screen.
  104.     * Algorithm :  
  105.     * - get the Object from the list
  106.     * - get the Class of this object
  107.     * - from the Class : invoke the methods to get the drawing properties of the object  
  108.     * - draw
  109.     */
  110.    for(iterator = 0;iterator < drawedObjects.size();iterator++)
  111.    {
  112.     objectToDraw = drawedObjects.get(iterator);
  113.     classOfObjectToDraw = objectToDraw.getClass();
  114.     x = ((Integer) classOfObjectToDraw.getMethod("getX", null).invoke(objectToDraw, null)).intValue();
  115.     y = ((Integer) classOfObjectToDraw.getMethod("getY", null).invoke(objectToDraw, null)).intValue();
  116.     drawer.fillRect(x, y, 50, 50);
  117.    }
  118.   }
  119.   catch(NoSuchMethodException nsme)
  120.   {
  121.    System.err.println("Cannot draw the object : " + nsme);
  122.   }
  123.   catch(IllegalAccessException iae)
  124.   {
  125.    System.err.println("Cannot draw the object : " + iae);
  126.   }
  127.   catch(InvocationTargetException ite)
  128.   {
  129.    System.err.println("Cannot draw the object : " + ite);
  130.   }
  131.  }
  132.  /*
  133.   * Update the screen
  134.   */
  135.  strategy.show();
  136. }
  137. public void addObjectToDraw(Object objectToDraw)
  138. {
  139.  drawedObjects.add(objectToDraw);
  140. }
  141. }


 
Bon y a encore quelques morceaux de code très temporaires, pour les tests, cette classe est loin d'être finie. Vous vous en doutiez vu le peu de choses qu'elle contient :mdr:
Donc, j'ai utilisé le principe de la réflexion pour coder ce moteur. En gros, j'utilise des objets de base pour fabriquer une sorte de pointeur qui va aller me récupérer les objets à dessiner dans une liste chaînée(de type Vector). Ensuite, vu que tous les objets à dessiner héritent d'une classe qui contient les méthodes utiles pour le dessin, les noms de méthodes sont donc les mêmes à chaque fois quelque soit la classe. Ce qui me permet d'utiliser la méthode invoke() de la classe Class afin de lui dire d'invoquer la méthode indirectement. Dans le cas actuel, je me sers de ça juste pour récupérer les coordonnées des objets et les envoyer à l'écran.
 
Ah, n'empêche, les listes chaînées sont très simple d'accès avec Java (enfin je n'en doutais pas vraiment mais je ne m'étais pas encore penché sur le sujet) et là je me rends compte que j'aurais dû utiliser ça pour le Zelda, ça aurait été plus pratique ! Ici, il me suffit de déclarer l'objet et de faire un addObjectToDraw() pour l'envoyer à la suite et qu'il soit rendu à l'écran, sur le Zelda je vous explique pas comment c'était peu pratique pour rajouter ne serait-ce qu'un seul objet à l'écran...  
Beaucoup de pertes de temps, des trucs bâclés, on était pressés car le temps passait vite et on n'avait pas tout le temps qu'on voulait pour bien coder ça :/ Mais quand je vois le peu de temps que j'ai pris pour mettre ça en oeuvre, je me dis que franchement j'ai fait n'importe quoi avec le Zelda :P M'enfin c'est comme ça qu'on apprend ;)
J'ai lu une partie d'un article sur l'architecture d'un jeu en 3D en C++, qui m'a donné des idées pour mon code. Et 2 ou 3 trucs appris à droite à gauche me font utiliser sans m'en rendre compte quelques principes des Design Pattern.


---------------
Playfrance's Monk of Twilight -> Aru
n°2165
Profil : Internaute
Posté le 03-08-2007 à 14:40:37   answer
 

A la lecture j'ai quatre remarques qui me viennent à l'esprit:

 

1. draw est un verbe irrégulier: drawedObjects me fait mal aux yeux personnellement ;)

 

2. Je préfererais que quelqu'un te le confirme, pour moi le java ça remonte à un moment. Mais il me semble que vector n'est pas une liste chaînée mais juste un vecteur. La différence étant qu'en cas de dépassement dépassement de capacité ça cause un realloc de tout le vecteur. Tant que t'en es conscient c'est bon, mais faut faire gaffe au dimensionnement de la bestiole (il me semble qu'il y a une classe du genre list qui pour le coup est une vraie liste chaînée).

 

3. Je suis pas spécialiste du Java (enfin vu mes posts ça tu t'en doutes :D), mais je pense très sincèrement qu'il vaudrait mieux caster plutôt que de passer une récupération de la classe avec une recherche de méthode par strings. Ca te fait faire un cast vers l'interface ou la classe en question mais ça me semble quand même beaucoup mieux niveau temps d'exécution parce que là pour chaque objet tu vas avoir deux recherches de méthodes en log (voire en linéaire... je sais pas comment java gère son bordel) du nombre de méthodes de la classe ce qui risque de dégrader pas mal les perfs si tu as beaucoup d'objets.

 

4. C'est pas forcément pertinent vu que je sais pas ce que tu comptes faire exactement. Mais vu que tu comptes coder un shooting game, je serais d'avis d'organiser tes objets en plans (du genre arrière plan, vaisseau au 2e plan et projectiles au premier), donc plutôt avec un Vector de Vector par exemple (il doit y avoir mieux comme structure mais c'est pour l'idée). Comme ça au moment de la mise à jour de l'affichage tu peux tranquilement faire du plan par plan plutôt que d'essayer de maintenir un genre de Z-buffer.

 

Autrement ça me paraît pas mal. Mention spéciale à l'indentation ;)  :D

Message cité 2 fois
Message édité par Skyfighter le 03-08-2007 à 14:46:06

---------------
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d.
1f u c4n wr1t3 1t t00.
n°2166
Profil : Internaute
Posté le 03-08-2007 à 18:32:12   answer
 

Citation :

2. Je préfererais que quelqu'un te le confirme, pour moi le java ça remonte à un moment. Mais il me semble que vector n'est pas une liste chaînée mais juste un vecteur. La différence étant qu'en cas de dépassement dépassement de capacité ça cause un realloc de tout le vecteur. Tant que t'en es conscient c'est bon, mais faut faire gaffe au dimensionnement de la bestiole (il me semble qu'il y a une classe du genre list qui pour le coup est une vraie liste chaînée).
 

 

Je confirmes, d'ailleurs Vector est déconseillé par Sun depuis Java 1.2 il me semble, ils le garde pour des raisons de comptabilité.
Tu peux avoir une liste chainée avec la classe List effectivement (List liste = new LinkedList(); ). Si tu travaille avec java 1.5 ou supérieur, tu peux utiliser les generics et éviter les casts.

 

J'essaierai de lire (et comprendre :mdr: ) le code ce soir (là je suis au boulot :p)


Message édité par wadisnake le 03-08-2007 à 18:34:57

---------------
http://www.top-series.net/  => LE forum des séries tv  
n°2167
Profil : Modérateur
Posté le 03-08-2007 à 19:12:05   answer
 

En quelque mots, la structure paraît assez naturelle, et pour avoir utilisé souvent des choses de ce genre, c'est utilisable et assez souple...
 

Skyfighter a écrit :

1. draw est un verbe irrégulier: drawedObjects me fait mal aux yeux personnellement ;)


Je m'étais fait la même réflexion... Mais quand on corrige des projets dans des écoles d'ingénieur, c'est pratique, les fautes d'orthographe pour détecter les plagiats :mdr:
 

Skyfighter a écrit :

2. Je préfererais que quelqu'un te le confirme, pour moi le java ça remonte à un moment. Mais il me semble que vector n'est pas une liste chaînée mais juste un vecteur. La différence étant qu'en cas de dépassement dépassement de capacité ça cause un realloc de tout le vecteur.


Je me posais la même question. Je pense que tu as raison, mais je ne fais pas assez souvent de java pour en être sôr non plus. Mais si avec Wadisnake on est trois, ce doit être effectivement le cas ;)
 

Skyfighter a écrit :

Mais vu que tu comptes coder un shooting game, je serais d'avis d'organiser tes objets en plans (du genre arrière plan, vaisseau au 2e plan et projectiles au premier), donc plutôt avec un Vector de Vector par exemple


Autre solution, c'est de gérer une liste chaînée plutôt qu'un vecteur, en faisant des insertions à l'intérieur, grâce à une série de pointeurs qui indiquent en gros le début de chaque plan. C'est un poil plus délicat à gérer au niveau de l'insertion/suppression (quoique si la liste est doublement chaînée, ce n'est vraiment rien), mais ça permet de simplifier pas mal de choses après (un seul parcours plutôt qu'une boucle de parcours).
 
Pour le reste, je suis (aussi) d'accord concernant la recherche des méthodes par nom... mais c'est peut-être un apriori de quelqu'un assez peu versé dans le Java.
 
Par contre, je trouve bizarre de récupérer les x et y... en général, mes objets ont une méthode draw(), se souviennent de leur position, et j'appelle directement la méthode draw() dans le parcours de la chaîne (en passant un SDLSurface* si c'est du SDL, ou en m'assurant que le contexte est adapté si c'est de l'OpenGL...). C'est juste pour voir si ça fonctionne pour le moment ? Ou alors c'est que la classe dérivée de frame est la seule à pouvoir tracer quelque chose ?
 
(ça va se voir que je suis une quiche en Java, surtout graphique :mdr: )

n°2168
Profil : Internaute
Posté le 03-08-2007 à 21:32:28   answer
 

Skyfighter a écrit :

A la lecture j'ai quatre remarques qui me viennent à l'esprit:
 
1. draw est un verbe irrégulier: drawedObjects me fait mal aux yeux personnellement ;)
 
2. Je préfererais que quelqu'un te le confirme, pour moi le java ça remonte à un moment. Mais il me semble que vector n'est pas une liste chaînée mais juste un vecteur. La différence étant qu'en cas de dépassement dépassement de capacité ça cause un realloc de tout le vecteur. Tant que t'en es conscient c'est bon, mais faut faire gaffe au dimensionnement de la bestiole (il me semble qu'il y a une classe du genre list qui pour le coup est une vraie liste chaînée).
 
3. Je suis pas spécialiste du Java (enfin vu mes posts ça tu t'en doutes :D), mais je pense très sincèrement qu'il vaudrait mieux caster plutôt que de passer une récupération de la classe avec une recherche de méthode par strings. Ca te fait faire un cast vers l'interface ou la classe en question mais ça me semble quand même beaucoup mieux niveau temps d'exécution parce que là pour chaque objet tu vas avoir deux recherches de méthodes en log (voire en linéaire... je sais pas comment java gère son bordel) du nombre de méthodes de la classe ce qui risque de dégrader pas mal les perfs si tu as beaucoup d'objets.
 
4. C'est pas forcément pertinent vu que je sais pas ce que tu comptes faire exactement. Mais vu que tu comptes coder un shooting game, je serais d'avis d'organiser tes objets en plans (du genre arrière plan, vaisseau au 2e plan et projectiles au premier), donc plutôt avec un Vector de Vector par exemple (il doit y avoir mieux comme structure mais c'est pour l'idée). Comme ça au moment de la mise à jour de l'affichage tu peux tranquilement faire du plan par plan plutôt que d'essayer de maintenir un genre de Z-buffer.
 
Autrement ça me paraît pas mal. Mention spéciale à l'indentation ;)  :D


 
Mince, je m'étais pas du tout rendu compte de la faute d'anglais que j'ai fait :sweat: Ca m'arrive parfois d'oublier certains verbes irréguliers :mdr: C'est pas très grave pour le code, mais bon merci de me l'avoir signalé :P Et sans chercher dans un livre d'anglais, je corrige tout de suite ma faute : c'est drawnObjects ;)
 
2. Pour la réalloc je sais, c'est pour ça que j'ai mis un bloc de commentaire à un moment pour me rappeler de me préoccuper de cette gestion. Car si on le laisse faire tout seul, il fait 1 réalloc à chaque ajout après le nombre défini par défaut :/ Je ne savais pas que Vector était déconseillé, je vais donc utiliser autre chose :)
 
4. La gestion en plans, c'est prévu mais là je n'ai fait qu'une toute petite partie pour tenter et voir ce que valait cette méthode.

Koren a écrit :

En quelque mots, la structure paraît assez naturelle, et pour avoir utilisé souvent des choses de ce genre, c'est utilisable et assez souple...
 
Pour l'indentation, je code toujours comme ça et j'ai appris, en lisant un tutorial, que dans 90% des cas j'avais une très bonne manière d'indenter mon code. Pour les 10% manquants, je les ai comblés avec ce tuto :)
 
Je m'étais fait la même réflexion... Mais quand on corrige des projets dans des écoles d'ingénieur, c'est pratique, les fautes d'orthographe pour détecter les plagiats :mdr:
 
 
Je me posais la même question. Je pense que tu as raison, mais je ne fais pas assez souvent de java pour en être sôr non plus. Mais si avec Wadisnake on est trois, ce doit être effectivement le cas ;)
 
 
Autre solution, c'est de gérer une liste chaînée plutôt qu'un vecteur, en faisant des insertions à l'intérieur, grâce à une série de pointeurs qui indiquent en gros le début de chaque plan. C'est un poil plus délicat à gérer au niveau de l'insertion/suppression (quoique si la liste est doublement chaînée, ce n'est vraiment rien), mais ça permet de simplifier pas mal de choses après (un seul parcours plutôt qu'une boucle de parcours).
 
Pour le reste, je suis (aussi) d'accord concernant la recherche des méthodes par nom... mais c'est peut-être un apriori de quelqu'un assez peu versé dans le Java.
 
Par contre, je trouve bizarre de récupérer les x et y... en général, mes objets ont une méthode draw(), se souviennent de leur position, et j'appelle directement la méthode draw() dans le parcours de la chaîne (en passant un SDLSurface* si c'est du SDL, ou en m'assurant que le contexte est adapté si c'est de l'OpenGL...). C'est juste pour voir si ça fonctionne pour le moment ? Ou alors c'est que la classe dérivée de frame est la seule à pouvoir tracer quelque chose ?
 
(ça va se voir que je suis une quiche en Java, surtout graphique :mdr: )


 
La réflexion ou recherche de classes/méthodes par nom, effectivement c'est limite hors sujet pour du Java mais comme ça existe, j'ai voulu tenter !
C'est juste pour voir si ça fonctionne ET oui la classe dérivée de Frame est la seule à pouvoir tracer quelque chose, je préfère que ça soit comme ça. Chaque objet s'occupe de ses affaires et pas de celles des autres, c'est mon principe :P


---------------
Playfrance's Monk of Twilight -> Aru
n°2169
Profil : Internaute
Post