Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Sprite Setiap objek dalam game yang memiliki gambar dan karakteristik. Anda dapat membayangkan sprite sebagai suatu gambar yang terletak di suatu tempat.

Presentasi serupa


Presentasi berjudul: "Sprite Setiap objek dalam game yang memiliki gambar dan karakteristik. Anda dapat membayangkan sprite sebagai suatu gambar yang terletak di suatu tempat."— Transcript presentasi:

1 Sprite Setiap objek dalam game yang memiliki gambar dan karakteristik. Anda dapat membayangkan sprite sebagai suatu gambar yang terletak di suatu tempat di layar, yang mana gambar tersebut dapat bergerak, beranimasi, dan memiliki karakteristiknya masing-masing.

2 Jenis Sprite Sprite Kelas ini adalah dasar dari semua sprite Animated Sprite Digunakan untuk animasi Advanced Sprite Sprite ini memiliki animasi, status dan arah Volatile Sprite Sprite yang beranimasi, kemudian ketika animasi sudah selesai maka akan menghilang

3 Sprite Adalah objek dalam game yang tampak secara grafik dan memiliki perilaku. Setiap sprite terletak pada suatu lokasi di background, Set Lokasi : setLocation(double, double). Menggerakkan : move(double,double). Kecepatan : setSpeed(double,double)

4 Animated Sprite Adalah sebuah sprite yang menggunakan banyak gambar untuk membuat tampilan animasi. Animated Sprite digunakan untuk membuat animasi sederhana, tidak ada pengendalian terhadap arah dan perilaku. Contoh : AnimatedSprite sprite; // animasi dari gambar 1 ke gambar 3 sprite.setAnimationFrame(0, 2); sprite.setAnimate(true); Note: Jika start frame dan finish frame sama, maka tidak ada animasi yang terjadi

5 Advanced Sprite Adalah sprite untuk menciptakan animasi yang didalamnya juga terdapat informasi mengenai arah/direction dan behaviour/tingkah/status laku. Ex set status : public static final int WALKING=1 advancedSprite.setStatus(WALKING); Ex set direction : public static final int NORTH=1 advancedSprite.setDirection(NORTH);

6 Game Background Sebuah kelas untuk membuat background seperti ketika kita menyusun lantai Ex : Anda memiliki gambar ukuran 64x64, dengan kelas ini anda dapat mengisi area seluas 1024x768 atau sesuai selera anda.

7 GameBackground.java public GameBackground() { //inisialisasi background, terdiri dari //20 petak horisontal, 20 petak vertikal //setiap petak ukurannya 64x64 Super(20, 20, 64, 64); //load image gambar rumput image = ImageUtil.getImage(getClass().getResource("/teknogame2/image/big grasstile64.png")); }

8 Override Method public void renderTile(Graphics2D g, int tileX, int tileY, int x, int y) { //lakukan proses penggambaran image pada x dan y g.drawImage(image, x, y, null); }

9 FirstGame.java //sprite yang punya arah dan status private AdvanceSprite advanceSprite; //array gambar orang jalan private BufferedImage[] walkingImages; //array gambar orang menyerang private BufferedImage[] attackImages; //Konstanta aksi private final int WALKING = 0; private final int ATTACK = 1; //konstanta arah HORISONTAL dan VERTIKAL private final int EAST = 0; private final int WEST = 1; private final int SOUTH = 2; private final int NORTH = 3; //konstanta arah diagonal private final int SOUTH_EAST = 4; //Objek untuk membuat background private GameBackground background;

10 public void initResources() { background=new GameBackground(); walkingImages = bsLoader.getImages("teknogame2/image/walking8x8.png", 8, 8, true); attackImages = bsLoader.getImages("teknogame2/image/attack13x8.png", 13, 8, true); advanceSprite = new AdvanceSprite(walkingImages, 10, 10); advanceSprite.getAnimationTimer().setDelay(75); } Method Init Resources

11 Method Update I //Keluar game apabila tombol ESC ditekan if (keyDown(KeyEvent.VK_ESCAPE)) { System.exit(0); } //cek, apakah ada tombol yang ditekan atau tidak //bila tidak hentikan animasi if (bsInput.getKeyPressed() == bsInput.NO_KEY) { if (advanceSprite.isAnimate()) { advanceSprite.setAnimate(false); } //menentukan apakah jalan atau menyerang if (keyDown(KeyEvent.VK_RIGHT) || keyDown(KeyEvent.VK_LEFT) || keyDown(KeyEvent.VK_DOWN) || keyDown(KeyEvent.VK_UP)) { if (advanceSprite.getStatus() == ATTACK) { advanceSprite.setImages(walkingImages); } advanceSprite.setStatus(WALKING); } else if (keyDown(KeyEvent.VK_SPACE)) { if (advanceSprite.getStatus() == WALKING) { advanceSprite.setImages(attackImages); } advanceSprite.setStatus(ATTACK); }

12 Method Update II if (advanceSprite.getStatus() == WALKING) { //membuat animasi arah diagonal if (keyDown(KeyEvent.VK_RIGHT) && keyDown(KeyEvent.VK_DOWN)) { if (!advanceSprite.isLoopAnim()) { advanceSprite.setAnimationFrame(40, 47); advanceSprite.setAnimate(true); } advanceSprite.setDirection(SOUTH_EAST); advanceSprite.moveTo(elapsedTime, advanceSprite.getX() + 1, advanceSprite.getY() + 1, 0.1); } //membuat animasi arah horisontal atau vertikal else if (keyDown(KeyEvent.VK_RIGHT)) { if (!advanceSprite.isLoopAnim()) { advanceSprite.setAnimationFrame(0, 7); advanceSprite.setAnimate(true); } advanceSprite.setDirection(EAST); advanceSprite.moveTo(elapsedTime, advanceSprite.getX() + 1, advanceSprite.getY(), 0.1); }

13 Method update III } else if (advanceSprite.getStatus() == ATTACK) { if (keyDown(KeyEvent.VK_SPACE)) { if (advanceSprite.getDirection() == EAST) { advanceSprite.setAnimationFrame(0, 12); advanceSprite.setAnimate(true); } else if (advanceSprite.getDirection() == WEST) { advanceSprite.setAnimationFrame(91, 103); advanceSprite.setAnimate(true); } else if (advanceSprite.getDirection() == NORTH) { advanceSprite.setAnimationFrame(13, 25); advanceSprite.setAnimate(true); } else if (advanceSprite.getDirection() == SOUTH) { advanceSprite.setAnimationFrame(52, 64); advanceSprite.setAnimate(true); } advanceSprite.update(elapsedTime); }

14 Method Render public void render(Graphics2D g) { g.setColor(Color.GREEN); g.fillRect(0, 0, getWidth(), getHeight()); background.render(g); advanceSprite.render(g); }


Download ppt "Sprite Setiap objek dalam game yang memiliki gambar dan karakteristik. Anda dapat membayangkan sprite sebagai suatu gambar yang terletak di suatu tempat."

Presentasi serupa


Iklan oleh Google