140 likes | 280 Views
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
E N D
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 publicclass MicroTankCanvas extends Canvas implements Runnable { publicvoid run() { while (true) { // Update the game state. repaint(); // Delay one time step. } } publicvoid paint(Graphics g) { // Painting code goes here. } protectedvoid keyPressed(int keyCode) { // Respond to key presses here. } }
Loop de jogo com GameCanvas publicclass MicroTankCanvas extends GameCanvas implements Runnable { publicvoid 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 - 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 - 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