Minggu, 18 November 2012

Dasar Pembuatan Animasi Sederhana Dengan Java


Mungkin ini sudah banyak di jelaskan para postingan.. tp tidak ada salah nya saya coba menjelaskan nya kembali..

DASAR ANIMASI
Animasi pada dasarnya adalah membuat objek seolah-olah bergerak sehingga
terjadi pergerakan yang membuat mata kita memandangnya sebagai sebuah
kesatuan utuh. Padahal dibalik itu, animasi dibuat berdasarkan pada bagian-bagian
tertentu (terpisah) dan baru kemudian akan disatukan untuk mendapatkan
pergerakan yang sempurna.

Untuk membuat animasi, terlebih dahulu kita harus membuat satu per satu bagian-
bagian tertentu tadi. Hal ini merupakan hal yang sangat berat dalam membuat
animasi mengingat kita harus memikirkan bagaimana desain atau bagian dari
animasi yang kita buat tersebut supaya benar-benar mendapatkan hasil yang
sempurna jika disatukan.

DASAR ANIMASI DENGAN JAVA
Java merupakan bahasa pemrograman yang sangat ampuh sekali. Ini bisa
dibuktikan dengan kemampuannya yang tidak bergantung pada platform. Artinya
Java dapat dijalankan pada sembarang komputer dan bahkan pada sembarang
sistem operasi (sering disebut dengan istilah portabilitas). Yang menarik, tingkat
portabilitas Java tidak hanya sebatas pada program sumber (source code),
melainkan juga pada tingkat kode biner yang disebut bytecode. Ini berarti, bila
Anda telah mengkompilasi program Java pada komputer bersistem operasi
Windows, maka Anda dapat menjalankan hasil kompilasi pada komputer
bersistem operasi Linux tanpa perlu mengkompilasi ulang lagi.


Untuk membuat animasi di Java, kita juga harus membuat bagian-bagian yang
kemudian akan kita satukan untuk mendapatkan pergerakan (animasi).
Ok’s, langsung saja saya akan memberikan salah satu contoh animasi
sederhana yang akan memunculkan tanda bintang secara bergantian dan akan
berjalan dari kiri ke kanan.



Silahkan Ketikkan kode dibawah ini di Notepad atau bisa juga menggunakan Tools IDE (Seperti: JCreator, Netbeans, Eclipse).

Kode program :
//*********************************
//Nama File : animasiSederhana.java
//*********************************
//Animasi di Java
//Untuk menampilkan animasi bintang
//*********************************
import java.awt.*;
import java.awt.event.*;
public class animasiSederhana extends Frame implements Runnable {
Thread animation;
// Mengatur waktu delay
int frameDelay = 100;
// Objek yang akan ditampilkan
String frames[] = {"*","**","***","****","*****","****","***","**","*"};
// Menentukan variabel yang diperlukan
int numFrames = frames.length;
int currentFrame = 0;
long lastDisplay = 0;
int screenWidth = 200; //lebar layar
int screenHeight = 200; //tinggi layar
public static void main(String args[]) {
animasiSederhana app = new animasiSederhana();
}
public animasiSederhana() {
super("Animasi Sederhana");
setup();
setSize(screenWidth,screenHeight);
addWindowListener(new WindowEventHandler());
show();
animation = new Thread(this);
animation.start();
}
void setup() {
setupMenuBar();
setFont(new Font("default",Font.BOLD,18)); //mengatur font
}
void setupMenuBar() {
MenuBar menuBar = new MenuBar();
Menu fileMenu = new Menu("File");
MenuItem fileExit = new MenuItem("Tutup");
fileExit.addActionListener(new MenuItemHandler());
fileMenu.add(fileExit);
menuBar.add(fileMenu);
setMenuBar(menuBar);
}
public void paint(Graphics g) {
g.drawString(frames[currentFrame],60,60); //membuat frame
}
public void run() {
// membuat animasi (perulangan)
do {
long time = System.currentTimeMillis();
if(time - lastDisplay > frameDelay) {
repaint();
try {
Thread.sleep(frameDelay); //berhenti selama frameDelay=100
}catch(InterruptedException ex){
}
++currentFrame;
currentFrame %= numFrames;
lastDisplay = time;
}
} while (true);
}
class MenuItemHandler implements ActionListener, ItemListener {
public void actionPerformed(ActionEvent ev){
String s=ev.getActionCommand();
if(s=="Exit"){
System.exit(0);
}
}
public void itemStateChanged(ItemEvent e){
}
}
//Kelas yang digunakan agar tombol close pada frame bisa berfungsi
class WindowEventHandler extends WindowAdapter {
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
}

Tidak ada komentar:

Posting Komentar