GAME API GAME API Conjunto com 5 classes que simplificam o desenvolvimento de jogos 2D Provêem 2 importantes funcionalidades GameCanvas Estruturação do jogo em camadas GAMECANVAS Subclasse de Canvas Fornece offscreen buffer Armazena o estado de pressionamento das teclas, podendo serem consultados a qualquer momento int keyState = getKeyStates(); if ((keyState & LEFT_PRESSED) != 0) { sprite.move(-1, 0); } LOOP DE JOGO COM CANVAS public class MicroTankCanvas extends Canvas implements Runnable { public void run() { while (true) { // Update the game state. repaint(); // Delay one time step. } } public void paint(Graphics g) { // Painting code goes here. } protected void keyPressed(int keyCode) { // Respond to key presses here. } } LOOP DE JOGO COM GAMECANVAS public class MicroTankCanvas extends GameCanvas implements Runnable { public void run() { Graphics g = getGraphics(); while (true) { // Update the game state. int keyState = getKeyStates(); // Respond to key presses here. // Painting code goes here. flushGraphics(); // Delay one time step. } } } LAYER Representa um elemento visual do jogo Possui posição relativa à tela (x,y) além de dimensões (largura, altura) Método paint a ser implementado Em um dado momento pode estar visível ou não LAYERMANAGER Gerencia uma série de layers Define a ordem na qual os layers são renderizados e em qual região da tela Simplifica o processo de renderização Define regiões em relação ao eixo-z LAYER - MÉTODOS int getHeight() int getWidth() int getX() int getY() paint(Graphics g) setVisible(boolean visible) TILEDLAYER TILEDLAYER – CONT. TILEDLAYER - MÉTODOS TiledLayer (int columns, int rows, Image image, int tileWidth, int tileHeight) int getCell (int col, int row) paint (Graphics g) setCell (int col, int row, int tileIndex) LAYERMANAGER – CONT. LAYERMANAGER - MÉTODOS void append (Layer l) Layer getLayerAt (int index) void insert (Layer l, int index) paint (Graphics g, int x, int y) setViewWindow (int x, int y, int width, int height) SPRITE Elemento visual do jogo que pode ser renderizado a partir de um ou mais frames Possui métodos para rotação, colisão e animação