Slick2d, leçon 1 :: Création d'une fenêtre

15 December 2013 13:01 Slick2d - Leçons 0-9 Java, Jeux, Maven, Slick2d, Tutorial

Je vous propose une série d'article sur l'utilisation d'une bibliothèque Java de jeu que j'adore mais qui semble malheureusement abandonné par son auteur et la communauté. Je pense cependant qu'elle est parfaite pour l’initiation au développement du jeux sous java. De plus comme je l'ai présenté à HumanTalk, c'est le moment idéal pour moi et faire ces tutoriels.

Pour le premier tutoriel, on va faire simple, un peu d'introduction au jeux et afficher une fenêtre. C'est déjà pas mal.

Qu'est-ce qu'un jeux ?

Une boucle infini, et oui c'est comme cela depuis le premier jeux vidéo à aujourd'hui. Certes la boucle est de plus en plus complexe, mais cela reste toujours une boucle infinie comme suit à peu de chose prêt :

  1. Initialisation
  2. Affichage
  3. Lecture des entrées (clavier/souris/manette/réseau)
  4. Mise à jour des éléments
  5. Si ce n'est pas fini : retourner au 2. sinon terminer le programme.

Voila, c'est tous. Seulement vous comprenez bien que si on rentre dans les détails, cela se complique, faut initialiser tous le bousin, la carte graphique, la lecture de la souris, la carte son, tous ça. Et franchement c'est pas facile. Slick2d est la pour nous aider. Slick2d ne fait pas tous mais en fait déjà beaucoup.

Qu'est ce que Slick2d ?

Slick2d est une lib Java basé sur LWJGL un binding OpenGL. Slick viens au dessus pour nous faciliter la vie. Slick gère :

  • l'affichage
  • le son (format wav et ogg)
  • les contrôles (clavier, souris, joystick)
  • Linux / Osx / un truc commençant par "Win" et finissant par "dows"
  • le chargement des images (jpg, png, etc...)
  • les polices de caractère (TTF)
  • gère l'animation des sprites et leurs découpage
  • l'affichage d'une carte crée sous Tiled
  • transformation (rotation, échelle, translation)
  • un moteur de particule
  • les boucles de jeux

Cela en fait des choses. Rassurez-vous aujourd'hui on va pas voir tous ça.

Création du projet

Personnellement j'utilise essentiellement Eclipse, et une veille version en plus :] Si vous utilisez un autre éditeur la procédure ne change pas.

  1. Télécharger la dernière version de la bibliotheque sur le site officiel : slick.ninjacave.com
  2. Décompresser l'archive
  3. Créer un projet sous Eclipse
  4. Dans le projet ajouter un dossier lib, y copier les fichiers : jinput.jar, lwjgl.jar et slick.jar que vous trouverez dans l'archive.
  5. Ajouter ces fichiers au bibliothèque du projet.
  6. Créer un dossier lib/natives, y copier tous les fichiers avec les extensions : .jnilib, .dll, .so, .dylib

tuto-slick2d-001-new-project tuto-slick2d-002-lib-and-natives

Boucle de Jeux

En Slick2d, une boucle de jeux est une classe implémentant l'interface Game, il y a principalement deux implémentations abstraites BasicGame et StateBasedGame. Aujourd'hui nous allons voir la première, nous verrons la seconde dans un tutoriel plus poussé sur les phases de jeux.

Place au code

Créez une nouvelle classe héritant de la classe org.newdawn.slick.BasicGame et complétez le code comme suit :

tuto-slick2d-003-new-class

package lesson1;

import org.newdawn.slick.AppGameContainer;
import org.newdawn.slick.BasicGame;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.SlickException;

public class WindowGame extends BasicGame {
    public WindowGame() {
        super("Lesson 1 :: WindowGame");
    }

    @Override
    public void init(GameContainer container) throws SlickException {
    }

    @Override
    public void render(GameContainer container, Graphics g) throws SlickException {
    }

    @Override
    public void update(GameContainer container, int delta) throws SlickException {
    }
}

Cette classe implémente en fait la boucle infini dont je parle depuis le début du tutoriel. Chaque méthode a son utilité et doit être complétée en fonction de nos besoins :

  • init(GameContainer) : doit initialiser le contenu du jeu, charger les graphismes, la musique etc...
  • render(GameContainer, Graphics) : doit afficher le contenu du jeux
  • update(GameContainer, int) : doit mettre à jour les élément de la scène en fonction du delta temps qui est survenu. C'est ici que la logique du jeux est renfermé.

Il reste encore à lancer la dite boucle infinie. Pour cela ajouter cette méthode main à notre classe. En lui ajoutant un GameContainer, ce container permet de configurer environnement d’exécution de la boucle.

    public static void main(String[] args) throws SlickException {
        new AppGameContainer(new WindowGame(), 640, 480, false).start();
    }

Mais il manque encore quelque-chose il faut bien quitter notre boucle infini un jour. Pour cela on va utiliser la méthode _exit() de la classe GameContainer. On stock la référence du container dans la méthode init() et on ajoute une méthode keyReleased() à notre classe, cette méthode est appelé à chaque relâchement de touche comme son nom l'indique.

    @Override
    public void init(GameContainer container) throws SlickException {
        this.container = container;
    }

    @Override
    public void keyReleased(int key, char c) {
        if (Input.KEY_ESCAPE == key) {
            container.exit();
        }
    }

Pour lancer le programme, il ne faut pas oublier d'ajouter l'option -Djava.library.path=lib/natives à la JVM sinon le programme vous donnera une belle exception. Cette propriété permet de définir le dossier contenant les bibliothèques native nécessaire au fonctionnement d'OpenGL. Et voici le résultat :

tuto-slick2d-004-natives-path tuto-slick2d-005-result

Pas grand chose n'est-ce pas ? Mais il y en aura plus dans le prochain tutoriel.

Et avec Maven ?

Il n'existe pas de répository maven officiel. J'en ai créez un pour moi et je vous le prête volontiers. En revanche il est hébergé sur ce même serveur. Je n'ai mis dessus que slick, mais si je crée un jour une lib cela changera. Pour LWJGL et Jinput, il en existe plein.

Voici mon repo :

<repositories>
  <repository>
    <id>shionn-public</id>
    <name>Shionn public maven repository</name>
    <url><http://maven.shionn.org/repository/public/</url>
  </repository>
</repositories>

Et voila la dépendance pour slick  :

<dependency>
  <groupId>com.ninjacave.slick</groupId>
  <artifactId>slick</artifactId>
  <version><1.0.b237</version>
</dependency>
</pre>

Il existe un plugin qui permet de décompresser les jars contentant les natives automatiquement.

<plugin>
  <groupId>com.googlecode.mavennatives</groupId>
  <artifactId>maven-nativedependencies-plugin</artifactId>
  <version>0.0.7</version>
  <executions>
    <execution>
      <id>unpacknatives</id>
      <goals>
        <goal>copy</goal>
      </goals>
      <configuration>
        <nativesTargetDir>target/natives</nativesTargetDir>
        <separateDirs>false</separateDirs>
      </configuration>
    </execution>
  </executions>
</plugin>

Code Source :

Le code source de ce tutoriel en version maven est disponible sous github : ici

ou avec la commande : git clone https://github.com/shionn/SlickBlogTutorial.git

par Shionn, dernière modification le 06 April 2017 08:16
37 réflexions au sujet de « Slick2d, leçon 1 :: Création d'une fenêtre »
  • Dotista 03 October 2014 11:05

    Bonjour, Premièrement un GRAND merci pour ce tuto qui s'aventure plus loin que les autres francophones dans Slick2D.

    Secondement, je suis le cours de Java sur OpenClassroom, ce qui est essentiel pour comprendre votre tuto. Toutefois, à quelques endroits vous passez des détails, qui pour un pro de la programmation vont de soit, excepté pour un débutant comme moi ou d'autres. Peut être pourriez poster l'intégralité du code de chaque leçon?

    Dernièrement, pour ceux qui rencontreraient le problème java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path, un forum du SdZ a la solution: telecharger la version Eclipse IDE for Java Developers et non la Eclipse IDE for Java EE Developers.

    Je posterai certainement d'autre posts au fil de l'apprentissage

    Bonne journée

  • Shionn 03 October 2014 15:36

    Bonjour et Merci.

    Je prend note de vos remarques et je vais essayer d'en prendre en compte à l'avenir, voir de modifier les tutoriels existant en fonction.

    Je comprend tout a fait que mes tutoriels ne sont pas facile à aborder pour un débutant en programmation. Cependant je n'ai pas la prétention ni la volonté et le courage de faire un tutoriel sur la Programmation Orienté Objet en Java. Je souhaites me concentrer uniquement sur l'aspect création de jeux. Je pars du principe que mes lecteurs connaissent à minima java et l'utilisation d'un IDE comme éclipse.

    Concernant votre problème "java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path". Ce problème n'est absolument pas lié à la version JavaEE ou JavaSE de éclipse. J'utilise moi-même l'un ou l'autre des versions 3.7 à 4.4. Mais proviens de l'oublie de l'option -Djava.library.path=lib/natives au lancement de la jvm de votre programme.

    Pour faire simple. Slick2D s'appuie sur LWGL qui est une lib Java, elle même étant un binding d'OpenGL. Un binding c'est un lien entre une méthode Java et une bibliothèque système (une dll sous windows). L'option -Djava.library.path=lib/natives permet d'indiquer ou sont ces fichiers dll. Il est important de comprendre cela pour le jour ou vous souhaiterez donner votre programme à quelqu'un d'autre.

    Pour ce qui est des sources, l'intégralité est disponible à chaque tuto dans le repository Git que je donne à chaque fois.

    J'attends avec impatience d'autre commentaire de votre part qui comme celui-ci m’aideront à améliorer mes tutoriels.

  • Novice 26 October 2014 12:39

    Bonjour tout d'abord un grand merci pour votre tutoriel qui est d'une aide précieuse .Je suis malheureusement moi aussi confronté au problème "java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path"en faisant un run sur WindowGame alors que j'ai bien ajouté l’option -Djava.library.path=lib/natives en VM argument de WindowGame .Cepedant lorque je fais un run sur le projet eclipse compile mais signale ce message :

    Sun Oct 26 12:32:28 CET 2014 WARN:class org.newdawn.slick.opengl.PNGImageData failed to read the data java.lang.UnsupportedOperationException: Unsupported format for this image at org.newdawn.slick.opengl.PNGDecoder.decode(PNGDecoder.java:272) at org.newdawn.slick.opengl.PNGImageData.loadImage(PNGImageData.java:97) at org.newdawn.slick.opengl.CompositeImageData.loadImage(CompositeImageData.java:62) at org.newdawn.slick.opengl.CompositeImageData.loadImage(CompositeImageData.java:43) at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:292) at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:254) at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:187) at org.newdawn.slick.Image.(Image.java:192) at org.newdawn.slick.Image.(Image.java:166) at org.newdawn.slick.Image.(Image.java:154) at org.newdawn.slick.Image.(Image.java:132) at org.newdawn.slick.tests.AlphaMapTest.init(AlphaMapTest.java:34) at org.newdawn.slick.AppGameContainer.setup(AppGameContainer.java:393) at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:317) at org.newdawn.slick.tests.AlphaMapTest.main(AlphaMapTest.java:79)

    Auriez vous une idée de mon erreur?je tiens à m'excuser pour le manque de clarté de mon post et vous remercie encore pour votre réponse

  • Akio 26 October 2014 13:25

    Bonjour Novice,

    A-tu fais un clique droit/Build Path/ add to path sur les .jar du dossier lib ?

    A-tu comme dis plus haut le bon IDE ?

  • Novice 26 October 2014 14:52

    Bonjour Akio j'ai ajouté mes .jar à l'aide de properties sur mon projet puis add external jar en ajoutant lwjgl.jar et slick.jar puis ajouter les natives sur lwjgl comme demandé je sais pas si c'était ta question

  • Novice 26 October 2014 15:03

    En fait quand je compile la classe seule je trouve l'erreur "java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path" Cependant quand je compile le projet je n'ai plus de problème hormis l'apparition du message "Sun Oct 26 12:32:28 CET 2014 WARN:class org.newdawn.slick.opengl.PNGImageData failed to read the data java.lang.UnsupportedOperationException: Unsupported format for this image at " dès lors la fenêtre alphamaptest s'affiche mais elle contient deux images brouillées et ne correspond pas à la map que j'avais préalablement créer.

  • Akio 26 October 2014 16:25

    http://fr.openclassrooms.com/forum/sujet/java-lang-unsatisfiedlinkerror-no-lwjgl-in-java-library-p-99463

    Ici solution au probleme

    Ok alors... Je travaille depuis le début sous Eclipse IDE for Java EE Developers. Et c'est ça le problème... Si j'essaye sous la version Eclipse IDE for Java Developers (pas orientée J2EE quoi...) ça fonctionne.

    Donc ça doit bien etre comme l'a dis DOtista au dessus, un probleme d'IDE

  • Novice 26 October 2014 16:31

    Merci beaucoup de prendre le temps de me répondre akio j'ai vérifié et je travaille sur eclipse for java developper le problème doit venir ailleur malheureusement

  • Shionn 26 October 2014 19:06

    Bonsoir.

    Ce problème est lié à la nature de Slick2D. Comme je l'ai dis, Slick2D utilise LWJGL, et LWJGL est un binding OpenGL. Un binding c'est l'adaptation d'une bibliothèque système (écrite en C par exemple). Pour que LWJGL fonctionne il faut ajouter indiquer à la machine virtuel java ou se trouve ces natives, .lib sous windows et .so sous linux.

    Cela se fait avec la commande -Djava.library.path=lib/natives au lancement comme je l'indique dans le tuto :]

    Ce problème n'as absolument rien à voir avec environnement de développement que tu utilises.

  • Novice 26 October 2014 19:11

    Bonjour Shionn j'ai bien ajouter l’option -Djava.library.path=lib/natives en VM argument de WindowGame .Cepedant lorque je fais un run sur le projet eclipse compile mais signale ce message : »Sun Oct 26 12:32:28 CET 2014 WARN:class org.newdawn.slick.opengl.PNGImageData failed to read the data java.lang.UnsupportedOperationException: Unsupported format for this image at ..."la fenêtre noire de test s'ouvre avec succès mais au lieu d'afficher la map que j'ai créer elle affiche deux images dont l'une correspond à l'alphamap

  • Shionn 27 October 2014 06:24

    Bonjour novice.

    Avec quel PNG essayes-tu ? Il semblerait que certain format du PNG ne soit pas supporté par Slick2d, c'est tous du moins ce que me dis google. Pourrais-tu essayer avec un autre ? Si cela ne marche toujours pas je t'invite à m'envoyer ton code (avec tes ressources) par email pour que j'y jette un œil.

  • Novice 27 October 2014 12:02

    Tout d'abord merci énormément d'avoir pris le temps de me répondre .Je me suis rendu compte que quand je faisant un run sur le projet : eclipse run l'alphamaptest et non la classe WindowGame de mon projet.Quand je fais un run sur la seule classe de mon projet à savoir WindowGame j'ai toujours l'erreur "no lwjgl in java.library.path" liée à l'absence de " -Djava.library.path=lib/natives" bien que celle-ci soit ajouté en VM argument .Je ne comprend pas pourquoi cette erreur subsiste alors que lorsque je fais run as puis run configuration puis window vm argument j'ai bien le"${build_files}-Djava.library.path=lib/natives" qui apparait .

  • Novice 27 October 2014 12:16

    Jai copié ma classe sur un autre projet et bizarrement CA FONCTIONNE VICTOIRE!!!le problème venait peut être du fait que j'utilisais les librairies slick et lwjgl .jar pour deux projets différents

  • William 19 December 2014 19:40

    Bonjour,

    j'ai un souci dans cette lesson 1 : Eclipse me met que "container cannot be resolved or is not a field" sur les lignes suivantes :

    public void init(GameContainer container) throws SlickException {
        this.container = container; //erreur sur le container (il n'est pas en bleu)
    }
    

    ainsi que sur cette ligne :

    public void keyReleased(int key, char c) {
        if (Input.KEY_ESCAPE == key) {
            container.exit();//erreur sur container avec la même erreur
        }
    }
    

    Si on pouvait m'aider svp

    Bonne soirée William

  • William 21 December 2014 20:08

    Problème résolu, j'avais une ligne en trop dans mon fichier tmx (tilset sans fichier),

    Merci beaucoup Shionn :)

  • Shionn 22 December 2014 08:26

    Ton premier problème venait simplement que tu avais simplement oublié la déclaration de la variable d'instance "container" dans ta classe.

    Ton deuxième problème, dont on as discuté par mail venait de ta carte qui semblait mal formaté. Acceptable pour Tiled, mais incomplète pour Slick.

  • Visiteur 26 December 2014 00:05

    Bonjour,

    J'ai suivi le tuto mais impossible d'exécuter le code.J'ai l'erreur suivante:

    Exception in thread "main" java.lang.NoClassDefFoundError: org/lwjgl/LWJGLException at game.WindowGame.main(WindowGame.java:28) Caused by: java.lang.ClassNotFoundException: org.lwjgl.LWJGLException at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 1 more

    J'aimerais également savoir à quoi correspond le -Djava.library.path=lib/natives. Est-ce le répertoire de lwjgl ? j'ai essayé à peu près tout ce qui me semblait logique mais je continue d'avoir cette erreur.

  • Shionn 27 December 2014 13:31

    Tu as oublié d'ajouter la lib lwjgl à ton projet, tu dois l'ajouter comme tu as ajouté la lib slick.jar. Tu dois t'assurer que les fichiers .jar soit bien référencé par ton projet, c'est à dire dans le classpath.

    J'ai déjà expliqué dans les commentaires précédent l’utilité de l'option -Djava.library.path=lib/natives. Je vais donc m'auto-cité si cela ne t’ennuie pas :

    Slick2D s’appuie sur LWGL qui est une lib Java, elle même étant un binding d’OpenGL. Un binding c’est un lien entre une méthode Java et une bibliothèque système (une dll sous windows). L’option -Djava.library.path=lib/natives permet d’indiquer ou sont ces fichiers dll.

    Je me rend compte que ce point n'est pas bien expliqué dans ce tuto, je le mettrais à jour quand j'aurais le temps.

  • Visiteur 28 December 2014 16:20

    Ok merci.

    En fait j'ai tout repris depuis le début, et j'ai utilisé seulement le contenu du package slick (pas au sens java mais au sens archive). J'ai séparé en 2 dossiers, un "jars" et un "natives" et j'ai mis les jar dans "jars" et les .dll, .so et autres fichiers lib dans "natives" et j'ai ajouté les jars via Eclipse. Pour les fichiers natives, j'ai spécifié leur destination dans "Projet -> properties -> java build path -> jwjgl.jar -> Native library location et j'ai mis le chemin de mon dossier natives.

    J'ai donc réussi à coder un mini jeu :)

  • Shionn 28 December 2014 22:55

    C'est cool que tu ai reussi ;)

    J'avais oublie l'option native library location. C'est une bonne alternative !

    Mais souviens toi de l'option en ligne de commande. Tu en aura besoin pour le packaging de l'application.

  • Sancho 16 February 2015 21:01

    Bonsoir,

    j'ai défini une map avec tiled, je l'affiche avec slick2d mais j'aimerais que certaines de mes zones soient cliquables, pour ensuite proposer des évenements. Je n'arrive pas à récupérer la position du curseur dans la fenetre. Slick2d permet il de faire ça facilement ? en définissant qqch sur ma map avec tiled peut être ?

    Le menu supposé serait fait avec Swing ensuite

  • Shionn 17 February 2015 08:29

    Salut,

    La leçon 6 sur les triggers, te permettra de définir des zones, ensuite au lieux d'utiliser les coordonnées du personnage tu doit utiliser les coordonnées de la souris pour déclencher les triggers. Cela pourrait être fait dans les méthodes void mousePressed(int button, int x, int y) ou void mouseReleased(int button, int x, int y) de ta classe Game.

    Mais tu va rencontrer d'autres problèmes, si tu as une camera, il te faudra prendre en compte les coordonnées de la camera dans tes calculs, sinon les coordonnées de la souris ne correspondra pas. C'est à dire transformé les coordonnée absolut de ta souris dans ta fenêtre en coordonnée relative à ta carte par rapport à ta caméra.

    Slick c'est de l'OpenGL, y insérer du swing n'est pas faisable facilement, autant c'est facile de mettre slick à l’intérieur de swing que le contraire cela sera de la magouille.

    Cela dépend vraiment de ce que tu veux faire. Je pense que tu veux faire un clic droit ?

    Dans un futur article sur les combats j'ajouterai des bouton, si c'est cela que tu veux faire :]

  • Sancho 17 February 2015 21:48

    MErci beaucoup de ta réponse, mais je pense que pour le projet que j'ai à faire je vais rester sur un swing basique. Par contre ton tuto m'a bien motivé à essayer slick plus tard.

  • VicoCommeLaChips 07 October 2015 20:41

    Super J'ai toujours voulut crée un jeu en Java !

    Merci !

    lesson 1 => DONE :p

  • […] le projet, de nombreux contributeurs continuent de l’améliorer. Il existe aussi de nombreux tutoriels sur internet, permettant d’apprendre rapidement son fonctionnement. Nous avons choisi […]

  • […] >> Tutoriel Slick 2D […]

  • […] le projet, de nombreux contributeurs continuent de l’améliorer. Il existe aussi de nombreux tutoriels sur internet, permettant d’apprendre rapidement son fonctionnement. Nous avons choisi […]

  • Chris 18 September 2016 16:20

    Bonjour bonjour,

    Je sais que c'est un peu déterrer les sujets mais voilà : j'aimerai moi aussi me lancer dans la création d'un jeux 2d. J'ai vite fait quelques notions en ayant cré un personnage sur mugen (le jeux de baston ou l'on peut tout modifier) mais étant donné que j’apprends tout par tuto j'ai aussi quelques lacunes importantes !

    Mon but maintenant serait de faire un jeux de type plateau au tour par tour avec une équipe affrontant une autre (style master of monster sur megadrive). Ces "missions" seraient ponctuées d'interlude (phase narrative etc) le tout avec un menu et ses options.

    Alors ma première question toute bête : est-il possible de réaliser ce genre de jeu avec slick ?

  • Ultraime 19 September 2016 12:47

    Salut Chris,

    Oui c'est tout à fait possible avec Slick

  • Shionn 19 September 2016 12:52

    Bonjour chris,

    Comme as répondu Ultraime, oui c'est possible. hormis si tu souhaite le faire en réseau alors slick ne te suffira pas. Si tu souhait faire une map en hexagone il te faudra le faire toi même.

    Et quand au déterrage ce n'est absolument pas un soucis, c'est un blog pas un forum, les commentaires servent à cela sinon.

  • Chris 19 September 2016 15:48

    Merci de vos réponses et même anticipée !

    J'allais demander si on peut faire avec map en hexagone ! Mais ça marcherais aussi avec une map en losange (style age of empire) ?

    Non ça ne sera pas en réseau. J'ai déjà prévu un mode bataille aléatoire et configurer l'IA sera déjà assez complexe comme ça je suppose.

  • Shionn 19 September 2016 17:30

    Oui une map en losange est tout à fait possible avec slick et tiled.

  • Ultraime 20 September 2016 21:22

    Bonjour,

    j'utilise une grande map ( 200*200 tiles) mais j'ai un problème de fps. As tu une idée de comment empêcher la diminution de fps ?

  • Ultraime 21 September 2016 21:40

    Bonjour,

    J'ai trouvé, c'est un truc du genre ^^ :

    tiledMap.render((int) camera.getxCamera()-640, (int) camera.getyCamera()-360, 1, 1, 40, 25);
    
  • iewto 06 October 2016 12:48

    Bonjour, j'ai bien suivi l'installation, mais après avoir modifié les arguments, je reçois ce message d'erreur :

    Erreur : impossible de trouver ou charger la classe principale Djava.library.path=lib.natives

    Aurais-je zappé quelque chose ?

  • Shionn 06 October 2016 14:34

    Bonjour iewto, Je pense que tu n'as pas l'option dans la bonne zone.

    @Ultraine : Je n'ai pas oublié ta question, mais je n'ai pas encore eu le temps de me pencher sérieusement sur le problème.

  • Ultraime 06 October 2016 15:50

    Shionn C'est bon j'ai trouvé la solution :).

    J'affiche seulement la partie de la map qui est visible à l'écran. Je fais de même pour les pnj et objet. J'ai bien récupéré les 1000 fps.

Laissez un commentaire

Vous pouvez utilisez du markdown pour la mise en forme

Votre adresse de messagerie ne sera pas publiée.

Temporairement, pour lutter contre les bots, il n'est pas permis de mettre http:// dans le commentaire.