with java. java is te traag voor games swing is traag java heeft memory leaks java is té...

27
2D Game Programming with Java

Upload: laura-castel

Post on 01-Apr-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

  • 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