Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2781 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Pbme (ou bug JVM???) avec Java en 2D

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pbme (ou bug JVM???) avec Java en 2D

n°1143183
olivierbfa​t
Posté le 07-07-2005 à 13:28:44  profilanswer
 

Bonjour je ne suis pas du tout un expert java, donc je soupçonne une énorme c.... de ma part  :whistle: , mais il m'arrive un phénomène assez bizarre, avec Java2D j'explique:
 
j'ai un petit jeu tout simple: avec gameLoop() comme boucle principale, qui efface l'écran, appelle une méthode updateGame() qui met à jour les variables et prépare l'affichage des sprites, puis gameLoop affiche le tout, ca donne quelque chose comme ça:
 

Code :
  1. public void gameLoop()
  2. {
  3.      while(gameRunning)
  4.      {
  5.           // on efface tout
  6.           g = (Graphics2D) strategy.getDrawGraphics();
  7.           g.setColor(Color.black);
  8.           g.fillRect(0,0,800,600);
  9.           // met a jour les variables du jeu
  10.           updateGame();
  11.           // affiche le tout
  12.           g.dispose();
  13.           strategy.show();
  14.      }
  15. }


 
et à ma grande surprise si je ne ralentit pas l'execution de gameLoop() des bugs apparaissent dans mon jeu, et la méthode updateGame() semble être appellée plusieurs fois en même temps à certains moment :ouch: (d'après les traces que j'ai obtenues).
 
Si je ralenti la méthode gameLoop() avec un Thread.sleep() par exemple ou mieux une grosse boucle for() ;) à la fin de ma boucle while() tout marche parfaitement  :heink: .
Voila mon programme n'est pas découpé en thread ou autre donc je ne comprend pas...tout devrais s'executer à la suite non ?  :??:  
 
j'ai vu quelque part sur le net que la JVM 1.5 pourrait être buggé au niveau du BufferStrategy, donc la question finale :
 
Est-ce que quelqu'un sait quelque chose ? ou éventuellement peut me dire qu'est-ce que j'ai mal fait ?

mood
Publicité
Posté le 07-07-2005 à 13:28:44  profilanswer
 

n°1143288
theshockwa​ve
I work at a firm named Koslow
Posté le 07-07-2005 à 14:53:20  profilanswer
 

Citation :

des bugs apparaissent dans mon jeu


quel genre de bugs ?

n°1143321
olivierbfa​t
Posté le 07-07-2005 à 15:18:02  profilanswer
 

Pour être plus clair, la méthode "updateGame()" fait éxecuter a des personnages une liste d'ordre pré-établis.
 
Le problème c'est que certains ordres passent parfois en double quand je ne ralenti pas ma méthode d'affichage du coup certain persos font des mouvements en trop: ca c'est le bug apparent (je signale que quand je ralenti cette méthode,ca n'arrive jamais).
 
J'ai mis des traces dans tous les sens (je n'utilise pas d'IDE)et j'en arrive a la conclusion qu'apparement ma méthode updateGame() est parfois appelé simultanement et le perso execute le même ordre 2 fois en même temps.Bien sur ca me parait bizarre, mais je m'interroge vu que j'ai trouvé une "info" sur le net (cf plus haut), quelqu'un peut-il me donner son avis ?

n°1143346
Mario_
Vive le pingouiboulga !!
Posté le 07-07-2005 à 15:29:28  profilanswer
 

<peut-être une connerie>
Et en la rendant "synchronised" ?
</peut-être une connerie>


---------------
Soyons ouverts d'esprit, mais pas au point de laisser notre cerveau s'enfuir.
n°1143356
olivierbfa​t
Posté le 07-07-2005 à 15:41:21  profilanswer
 

En fait :
 

Citation :

Voila mon programme n'est pas découpé en thread ou autre donc je ne comprend pas...tout devrais s'executer à la suite non ?  :??:


 
Si je fait pas explicitement du multithread, on en fait pas dans mon dos quand même ?  :??:

n°1143360
theshockwa​ve
I work at a firm named Koslow
Posté le 07-07-2005 à 15:45:02  profilanswer
 

Ce ne serait pas tout simplement un problème de vsync ?  
 
Edit : je veux dire que tu passerais peut-être 2 fois dans ta fonction avant que l'écran ne se raffraichisse (ce qui serait évidemment altéré par la présence d'une fonction pour ralentir l'appli)


Message édité par theshockwave le 07-07-2005 à 15:46:12
n°1147076
olivierbfa​t
Posté le 11-07-2005 à 20:54:47  profilanswer
 

Ca y est j'ai trouvé, rien a voir avec un bug JVM ou je sais pas quoi(remarque je m'en doutais) :lol: .
 
Juste un traitement un peu expéditif de ma part des entrées au clavier qui lisait plusieurs fois la touche déclanchant mon animation, voila.Merci quand même pour vos réponses.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Pbme (ou bug JVM???) avec Java en 2D

 

Sujets relatifs
[Php/Java/OpenOffice] Divers ProblèmeExemple d'application compléte en java struts ?
[java] [jface] assigner un CellEditor a une cellule particuliere[JAVA][SWING] pb bordure avec JTable + conseil "Chat"
logiciel de developpement java?Je suis une bille aidez moi plz... variables php/java
access denied (java.util.PropertyPermission org.jboss.util.NestedThrow[Java] Probleme avec "\n" lors d'un String.split(";")
[JAVA] Lecture/Ecriture dans un fichier texte.[SOCKET]java.net.SocketException: Connection reset
Plus de sujets relatifs à : Pbme (ou bug JVM???) avec Java en 2D


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR