...::Selamat datang pemirsa BLOGGER semoga apa yang dicantumkan berguna bagi yang membutuhkaN::...

Jumat, 02 April 2010

Membuat Objek Mobil Berjalan

Listing keseluruhan program membuat objek mobil berjalan (AnimasiCar.java) sebagai berikut:
........:: Code ::.......
/*
 * Nama File : AnimasiCar.java
 * Program   : Menampilkan gambar mobil yang berjalan
 * ===================================================
 * @Authors  : Mahsun Huda, Agus Nuryanto, Bobby Dwi K
 * @Date     : Jum'at, 26 Maret 2010
 *
 */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.geom.Line2D.Double;

public class AnimasiCar extends Frame implements Runnable {

    Thread Animasi;
    int Delay     = 90;
    int Range     = 1000;
    int Awal     = 0;
    long Akhir     = 0;

    public static void main (String args[]){
        AnimasiCar App = new AnimasiCar();
    }
   
    public AnimasiCar(){
        setTitle("Demo Animasi Mobil Berjalan");
        Author();
        setSize(800,550);
        setLocation(230,0);
        addWindowListener(new WindowEventHandler());
        show();
        Animasi = new Thread(this);
        Animasi.start();
    }
   
    void Author(){
        setFont(new Font("Comic Sans MS", Font.BOLD,27));
        setForeground(Color.blue);
    }
   
    public void paint(Graphics g) {
        g.drawString("Created (c) 2010 by : ABM", 10, 70);
        g.fillRect(10, 85, 365, 5);
        g.drawString("Agus Nuryanto", 10, 120);
        g.drawString("Bobby Dwi K.", 10, 160);
        g.drawString("Mahsun Huda", 10, 200);
       
        // Menggambar MOBIL
        // Membuat box mobil berwarna merah
        g.setColor(Color.red);
        g.fillRect(-190+Awal, 390, 100, 50);
       
        // Membuat body mobil berwarna biru
        g.setColor(Color.BLUE);
        g.fillRoundRect(-90+Awal, 410, 70, 50, 150, 250);
        g.fillRect(-90+Awal, 410, 40, 40);
        g.fillRect(-90+Awal, 435, 70, 40);
        g.fillRect(-190+Awal, 440, 150, 35);
       
        // Membuat lampu mobil berwarna kuning
        g.setColor(Color.YELLOW);
        g.fillRect(-190+Awal, 455, 10, 15);
        g.fillRect(-30+Awal, 450, 10, 10);
       
        // Membuat jendela pintu mobil berwarna putih
        g.setColor(Color.WHITE);
        g.fillRect(-85+Awal, 415, 25, 25);
        g.fillArc(-80+Awal, 415, 55, 50, 0, 90);
       
        // Membuat jarak antara body mobil dan roda
        g.fillOval(-170+Awal, 455, 45, 45);
        g.fillOval(-85+Awal, 455, 45, 45);
       
        // Membuat roda depan dan belakang mobil berwarna Abu-Abu
        g.setColor(Color.BLACK);
        g.fillOval(-167+Awal, 457, 40, 40);
        g.fillOval(-82+Awal, 457, 40, 40);
       
        // Membuat pusat roda berwarna hitam
        g.setColor(Color.BLACK);
        g.fillOval(-166+Awal, 459, 37, 37);
        g.fillOval(-81+Awal, 459, 37, 37);
        g.setColor(Color.GRAY);
        g.fillOval(-159+Awal, 465, 24, 24);
        g.fillOval(-74+Awal, 465, 24, 24);
       
        // Graphics2D
        Graphics2D g2d = (Graphics2D) g;
        g2d.setColor(Color.black);
        float[] dash = {15.0f};

        // Membuat jalan raya
        BasicStroke strok = new BasicStroke(8.0f);
        g2d.setStroke(strok);
        g2d.draw(new Double(10, 500, (size().width) - 10, 500));

        // Membuat gray di bawah jalan
        g.setColor(Color.DARK_GRAY);
        g.fillRect(6, 504, (size().width) - 12, 40);
    }   
   
    // Delay
    public void run(){
        do{
            long time = System.currentTimeMillis();
            if(time - Akhir > Delay) {
                repaint();
                try{
                    Thread.sleep(Delay);
                } catch(InterruptedException ex){
                }
                Awal = Awal + 10;
                Awal %= Range;
                Akhir = time;
                }
            } while (true);
        }
       
    class WindowEventHandler extends WindowAdapter {
        public void windowClosing(WindowEvent e){
            System.exit(0);
        }
    }
}
........:: Akhir Kelas ::.......
eksekusi dan menjalankan program:
javac AnimasiCar.java
java AnimasiCar
Hasil tampilan program AnimasiCar.java:

















Dari hasil eksekusi program diatas dapat dijelaskan langkah-langkah pembuatan dari program AnimasiCar.java adalah sebagai berikut:
Membuat Kelas
Nama kelas adalah AnimasiCar karena nama file yang disimpan diberi nama AnimasiCar.java. Aplikasi ini dirancang dengan menggunakan frame, sehingga pada pembuatan kelas harus dilakukan perluasan ke frame (extends Frame)
public class AnimasiCar extends Frame implements Runnable{
.................
.................
}
Menggambar Objek Mobil
Menggambar bentuk mobil, proses yang dilakukan adalah menggabungkan beberapa obyek pada koordinat dan ukuran tertentu yang kemudian menghasilkan gambar mobil. Adapun proses-proses penggambaran adalah sebagai berikut:
// Membuat box mobil berwarna merah
        g.setColor(Color.red);
        g.fillRect(-190+Awal, 390, 100, 50);
// Membuat body mobil berwarna biru
        g.setColor(Color.BLUE);
        g.fillRoundRect(-90+Awal, 410, 70, 50, 150, 250);
        g.fillRect(-90+Awal, 410, 40, 40);
        g.fillRect(-90+Awal, 435, 70, 40);
        g.fillRect(-190+Awal, 440, 150, 35);
 // Membuat lampu mobil berwarna kuning
        g.setColor(Color.YELLOW);
        g.fillRect(-190+Awal, 455, 10, 15);
        g.fillRect(-30+Awal, 450, 10, 10);
// Membuat jendela pintu mobil berwarna putih
        g.setColor(Color.WHITE);
        g.fillRect(-85+Awal, 415, 25, 25);
        g.fillArc(-80+Awal, 415, 55, 50, 0, 90);
 // Membuat jarak antara body mobil dan roda
        g.fillOval(-170+Awal, 455, 45, 45);
        g.fillOval(-85+Awal, 455, 45, 45);
 // Membuat roda depan dan belakang mobil berwarna Abu-Abu
        g.setColor(Color.BLACK);
        g.fillOval(-167+Awal, 457, 40, 40);
        g.fillOval(-82+Awal, 457, 40, 40);
 // Membuat pusat roda berwarna hitam
        g.setColor(Color.BLACK);
        g.fillOval(-166+Awal, 459, 37, 37);
        g.fillOval(-81+Awal, 459, 37, 37);
        g.setColor(Color.GRAY);
        g.fillOval(-159+Awal, 465, 24, 24);
        g.fillOval(-74+Awal, 465, 24, 24);
 // Graphics2D
        Graphics2D g2d = (Graphics2D) g;
        g2d.setColor(Color.black);
        float[] dash = {15.0f};
 // Membuat jalan raya
        BasicStroke strok = new BasicStroke(8.0f);
        g2d.setStroke(strok);
        g2d.draw(new Double(10, 500, (size().width) - 10, 500));
 // Membuat gray di bawah jalan
        g.setColor(Color.DARK_GRAY);
        g.fillRect(6, 504, (size().width) - 12, 40);
// Membuat objek mobil bisa berjalan, proses yang dilakukan adalah menentukan delay (waktu tunda) yang membuat objek mobil tersebut bergerak dalam AnimasiCar.java. Adapun proses pembuatan program sebagai berikut:
// Delay
    public void run(){
        do{
            long time = System.currentTimeMillis();
            if(time - Akhir > Delay) {
                repaint();
                try{
                    Thread.sleep(Delay);
                } catch(InterruptedException ex){
                }
                Awal = Awal + 10;
                Awal %= Range;
                Akhir = time;
                }
            } while (true);
        }

Tidak ada komentar:

Gabung yuk!...

Media Sosial