1 / 14

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. Sprite. Sprite

abedi
Télécharger la présentation

Sprite

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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. Sprite

  2. 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 Jenis Sprite

  3. 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) Sprite

  4. 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 Animated Sprite

  5. 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); Advanced Sprite

  6. 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. Game Background

  7. 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")); } GameBackground.java

  8. @Override 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); } Override Method RenderTile

  9. //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; FirstGame.java

  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. //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); } Method Update I

  12. 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); } Method Update II

  13. } 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); } Method update III

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

More Related