With Java. Java is te traag voor games Swing is traag Java heeft Memory Leaks Java is té...

27
2D Game Programming with Java

Transcript of With Java. Java is te traag voor games Swing is traag Java heeft Memory Leaks Java is té...

  • Slide 1

with Java Slide 2 Java is te traag voor games Swing is traag Java heeft Memory Leaks Java is t High-level Slide 3 Slide 4 Slide 5 Slide 6 FSEM Slide 7 Thread.sleep(1000 / FPS) Thread.sleep(1000 / (FPS - updateTijd)) Slide 8 Update blok splitsen Update en Render Slide 9 class Entity{ public void update(long timePassed) { updateBehaviour.update(timePassed); } public void draw(Graphics2D g) { drawBehaviour.draw(g); } Slide 10 (coo.x, coo.y) (getXonScreen(), getYonScreen() ) g.drawImage(afbeelding, getXonScreen(), getYonscreen(), null); coo = fysieke locatie in de wereld entity Slide 11 Slide 12 Vooraf inladen vs at runtime Library Load en unload JPG PNG - GIF Slide 13 Slide 14 GIF vs self Library Using ImageLibrary Slide 15 200ms Slide 16 Slide 17 Slide 18 Slide 19 Composed Full CountourInner Shape Slide 20 Full Countour + check for transparency Pseudo code Slide 21 groen.contains(rood.linkerBovenhoek) || groen.contains(rood.rechterBovenhoek) || groen.contains(rood.linkerOnderhoek) || groen.contains(rood.rechterOnderhoek) Slide 22 SimpleMap Static Low cost on rendering ScrollingMap Dynamic Heavy cost on rendering cooler Slide 23 g.drawImage(bgImage, camera.x, camera.y, null); Slide 24 Slide 25 Level (TopViewLevel) doe50keer{ addEntity(new EnemyPlane(randomX, randomY)) } Random r = new Random(); r.nextInt(maxValue); Slide 26 draw(Graphics2D g){ for(Entity e: entities){ e.draw(g); } update(long timePassed) { renderObjects.clear(); for(Entity e: entities) { e.update(timePassed); if(camera.contains) { renderObjects.add(e); } draw(Graphics2D g){ for(Entity e: renderObjects){ e.draw(g); } Slide 27