Comments: 47
admx [2010-05-05 14:26:37 +0000 UTC]
o_____O; 2 weeks ago?! That's soooo awesome! You're waaay too good at this =]
👍: 0 ⏩: 1
NejynFrenchCancan [2010-05-04 16:34:30 +0000 UTC]
ha I wanna learn FLASH, that would be a first for me ^^ It's great and you're right, we should always look forward to learn new stuff on our own !
👍: 0 ⏩: 1
NejynFrenchCancan In reply to MenInASuitcase [2010-05-06 07:07:02 +0000 UTC]
hmm en fait j'ai déjà essayé, je ne sais plus avec quel programme, et le problème est que même en prenant des images 50x50, si je voulais une animation fluide, je me retrouvais avec des fichiers énormes...je crois que je n'ai pas assez étudié comment l'oeil capte le mouvement et peut être que j'ai mal découpé le mouvement pour pouvoir faire une animation en peu d'images...
L'autre soucis que j'ai souvent c'est qu'à l'enregistrement, si je travaille sur photoshop 7 par exemple, mon fichier GIF perd une grosse quantité de pixel, et l'image devient très moche (surtout quand je dois réduire à 50x50 ou meme 150x150).
Pour ça je crois que je ferais mieux de travailler avec du .png
D'ailleurs en fait j'ai le même soucis avec les icones (comme mon avatar), en général je prend une image haute définition, que je colle sur un fond 50x50 et je réduis à l'aide de l'outil "transformation", mais du coup, c'est pixellisé à mort, et mon image est d'une horrible qualité haha ^^
Donc par exemple je n'ai aucune idée de comment faire une image de qualité visuelle comme ton avatar ^^
Enfin je suppose qu'il y a des tutorial dans le coin il faudrait que je change mon avatar cet été
Bon courage pour Java !!
👍: 0 ⏩: 1
TheNeoShaman [2010-05-04 09:25:11 +0000 UTC]
omg dude, how can you do this so fast ? you are a computer ! ^^
👍: 0 ⏩: 1
TheNeoShaman In reply to MenInASuitcase [2010-05-05 09:50:32 +0000 UTC]
ouai forcement, mais bon ca empêche pas que tu m'impressionnes ^^
👍: 0 ⏩: 0
ElderKitsune In reply to MenInASuitcase [2010-05-05 18:50:06 +0000 UTC]
C'est le propre du schéma d'évoluer... quand ça bouge peu c'est louche.
Bon, par où commencer...
En fait, il n'y a pas de (trop) mauvaise façon de faire, je vais juste essayer de te faire comprendre la puissance de l'objet.
Le fait de découpler le dessin (PlancheDessin) du Point dessiné (de sa représentation mathématique disons) est une bonne chose. De même que décomposer Menu / Planche / JFrame.
Tu as donc réalisé une application qui remplit le cahier des charges, mais que se passe-t-il si on te demande un truc plus complexe... y a des chances que tu repartes de zéro... alors que la base n'est pas trop mal.
Donc, maintenant, je vais (faire de mon mieux pour) te montrer la où réside la puissance de l'objet en poussant le bouchon un peu plus loin (en gardant bien en tête, je me répète, que ce type d'application graphique n'est pas forcément très pertinent en Java ) : les interfaces.
Deux exemples:
- penses à tes points comme des formes. Tu as donc une interface Shape (ou Forme) de laquelle peuvent dériver Point, Rectangle et autres trucs (que l'on peut plus ou moins regrouper selon la réflexion)... voir même des images (pixellisés voire même vectorielles ) ...
- de l'autre côté, vois ta planche à dessin comme un truc plus complexe... genre une planche qui contient des planches (les fameuses couches ou "layers" de 'toshop ou Gimp et autres).
... et *paf*, conceptuellement bien sûr, tu transformes ton petit simili-Paint en un machin qui commence à avoir de la gueule.
Dans le même ordre d'idée, je vois que tu colories avec Color... peut-être peux-tu regrouper cela de façon à utiliser GradientPaint, de façon à placer des dégradés.
Pour revenir à ta question sur les sauvegardes sous différents formats c'est bien sûr une bonne idée... Si tu l'ignores, sache qu'il est également possible de sauvegarder tout ou partie de l'application elle-même (je détaille pas, mais en gros tu "sérialises" ta classe principale, ou une autre, qui a une référence sur tous les objets). Tu peux employer la même technique pour conserver le dessin en cours, une sorte de format natif de ton dessin (comme le xcf sous Gimp). Pour des sauvegardes plus traditionnelles (images notamment), des solutions existent. Pour le XML, c'est faisable relativement simplement si tes Points / couleurs, etc. (ou formes) sont à même de fournir une représentation en XML et de se composer ainsi (loadFromXML ; saveAsXML).
A toi de trouver la (ou les) meilleure(s) interface(s) possible(s) pour faire potentiellement le plus de choses possibles.
Le truc est d'arriver à rester le plus possible abstrait pour intégrer "facilement" des extensions. D'ailleurs, préfère le Input/OutputStream à l'ObjectInput/OutputStream (Load-Save).
Je ne peux pas dire pour certaines mises en oeuvre de tes classes, mais je ne suis pas fan des tableaux et des String... bon après, tout dépend de ce qui en est fait.
Après on peut en débattre longtemps... mais ça ne me dérange pas... faut laisser mûrir les idées aussi (concept totalement étranger à ceux qui foncent dans le tas et qui ne font pas de R&D et qui réinvente plein de fois la roue )...
👍: 0 ⏩: 1
ElderKitsune In reply to MenInASuitcase [2010-05-06 16:55:49 +0000 UTC]
Aucun problème, je suis plutôt bavard sur un certain nombre de sujets.
C'est parce que je pense large quand j'essaie de concevoir une application (qui peut le plus peut le moins) et parce que j'utilise ce genre de logiciel... Pour le côté technique de gestion de calque... je ne sais pas trop en fait, mais ça doit pouvoir se faire. (même si je ne choisirai pas Java pour faire une application de dessin, même si un certain nombre existe: les plug-ins de dessins d'Eclipse, des solutions pour faire de l'UML, etc.. A ce sujet, Netbeans est très bien pour faire des IHM en mode graphique (à ne conseiller que lorsqu'on sait se débrouiller sans ça ).
En fait, les patrons de conception sont des réponses éprouvées à un certain nombre de problèmes objet classiques (pas de place à la fantaisie ). C'est à toi de déterminer dans tes développements ce qui est portable ou non... d'où l'usage des interfaces en fait (et "accesoirement" des packages). C'est ce qui autorise la vraie flexibilité, la modularité et la réutilisabilité du code.
Sinon, le modèle le plus simple à piger est MVC (Modèle-Vue-Contrôleur) et pourtant c'est l'un des plus délicats à mettre vraiment en oeuvre. Tu l'utilises en partie avec tes Points (le Modèle) et PlancheDessin (à la fois Vue et Contrôleur). Comme tu fais du swing avec gestion d'évenéments, tu as déjà croisé le modèle Observer sans forcément le savoir (les Listeners & co) .
Il y a un certain nombre d'autres patrons de conception bien sûr: Factory, Builder, Command, Adapter, Memento sont les plus usités. Pour ce qui est des sauvegardes (voire même pour les undo - redo ), Memento peut t'aider...
👍: 0 ⏩: 1
popo78LeMalin [2010-05-02 19:02:11 +0000 UTC]
Si c'est toi qui là fait c'est super!. Mais pouruoqi toute c'est image?
👍: 0 ⏩: 2
Mythtern33 In reply to popo78LeMalin [2010-05-02 19:35:04 +0000 UTC]
lol tu hablo espanol. tu hablo ingles,o debo traducir?
👍: 0 ⏩: 0
LordMelchet [2010-05-02 18:30:24 +0000 UTC]
Love to have a Linux version when you're done!
👍: 0 ⏩: 1
LordMelchet In reply to MenInASuitcase [2010-05-02 19:04:51 +0000 UTC]
I use Linux so it's not installed at the moment but I can get it, no problem. Thanks
👍: 0 ⏩: 0
psychoplumbers [2010-05-02 18:28:10 +0000 UTC]
WOWOWOWOWOWOWOWOWOWOWOWOWOWOWOWWW! *W* Awesome!
👍: 0 ⏩: 1