Pages

Subscribe:

Ads 468x60px

♪ ♥ Get Paid Daily - The Best Sites PTC ♥ ♪
DonkeyMails.com: No Minimum Payout
AyuWage Services - Get Paid to Visits Sites and Complete Surveys

Minggu, 23 September 2012

Progrman Animasi BallRoom Dengan Java

Jumpa lagi di Imposible Sin Vosotras, kali ini yang mungki ane postingin yaitu tentang membuat animasi sederhana menggunakan bahasa pemrograman java. Dalam animasi ini, saya pake aplikasi JCreator.
Berikut listing programnya :


simapan dengan BallRoom.java


import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
import javax.swing.*;

public class BallRoom extends JFrame {

public static void main(String[] args)
{
new BallRoom(); //MENJALANKAN KONSTRUKTOR BALLROOM
}

public BallRoom() {
this.setSize(500, 500); // MEMBUAT WINDOW
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(new PaintSurface(), BorderLayout.CENTER);
Thread t = new AnimationThread(this); // MENJALANKAN THREAD TERHADAP VARIABLE T
t.start();
this.show();
}

}

class AnimationThread extends Thread {
JFrame c;

public AnimationThread(JFrame c){
this.c = c;
}

public void run(){
while(true){
c.repaint(); // MENGHAPUS GAMBAR SETELAH BERPUTAR
try{
Thread.sleep(30); // FRAME GAMBAR PERDETIK
}
catch(InterruptedException ex){
}
}

}
}
class PaintSurface extends JComponent{
double x_pos = 100;
double y_pos = 100;
int rotation = 0;
double angle = 0;

public void paint(Graphics g){
Graphics2D g2 = (Graphics2D)g; // MEMBERI VARIABLE G PADA GRAPHIC KE G2
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
if(rotation == 360) {
rotation = 0;
}
else {
rotation += 20; // PERTTAMBAHAN PERCEPATAN ROTASI
angle -= 0.05;
x_pos = 100*Math.cos(angle)+150; // MEREVOLUSI OBYEK
y_pos = 100*Math.sin(angle)+150;
}

Shape ball = new Ellipse2D.Float((int)x_pos,(int)y_pos, 50, 20); // FUNGSI MEMBENTUK ELIPS
g2.rotate(Math.toRadians(rotation), x_pos + 50/2, y_pos + 20/2); // METOTASI OBYEK
g2.setColor(Color.RED); // MEMBERI WARNA OBYEK
g2.fill(ball); // MENGAMBAR
}
}
Hasilnya Seperti Berikut :


Artikel Terkait :


Program Animasi Orang Berjalan Menggunakan Java

Jumpa lagi di Imposible Sin Vosotras, kali ini yang mungki ane postingin yaitu tentang membuat animasi sederhana menggunakan bahasa pemrograman java. Dalam animasi ini, saya pake aplikasi JCreator.
Berikut listing programnya :


Simpan dengan animasiOrang.java

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D;
import java.awt.geom.GeneralPath;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class animasiOrang extends JPanel {
    //Membuat variabel thread

    Thread animasi, repaint;
    int x=10,y=10,a=10, batas = 240;
    int xOrang = -100, yOrang = 100, v = 1; 
    // <editor-fold defaultstate="collapsed" desc="Siman Mendrofa">
    public animasiOrang() {
        setPreferredSize(new Dimension(600, 300));
        setFocusable(true);
        setBackground(Color.green);
        requestFocusInWindow();
        initThread();
        //untuk memulai thread
        animasi.start();
        repaint.start();
    }
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        drawText(g2);
        drawOrang(g2, xOrang, yOrang, v);
    }
    //method untuk menampung thread
    public void initThread() {
        animasi = new Thread(new Runnable() {
            public void run() {
                while (true) {
                    // <editor-fold defaultstate="collapsed" desc="menggerakkan Orang">
                    if (xOrang < 500) {
                        if (v == 1) {
                            xOrang = xOrang + 10;
                            v = 2;
                        } else {
                            xOrang = xOrang + 10;
                            v = 1;
                        }
                    } else {
                        xOrang = -100;
                    }
                    // </editor-fold>
                    try {
                        //untuk mengatur kecepatan thread, semakin kecil nilai semakin cepat
                        Thread.sleep(150);
                    } catch (Exception e) {
                    }
                }
            }
        });
        repaint = new Thread(new Runnable() {

            public void run() {
                while (true) {
                    // <editor-fold defaultstate="collapsed" desc="Untuk mengacak warna">
                    if(a<batas){
                        a=a+15;
                        batas=240;
                    }else{
                        a=a-15;
                        batas=15;
                    }
                    // </editor-fold>
                    // <editor-fold defaultstate="collapsed" desc="menggerakkan text">
                    x=(int)(Math.random()*10);
                    y=(int)(Math.random()*10);
                    // </editor-fold>
                    try {
                        //untuk mengatur kecepatan thread, semakin kecil nilai semakin cepat
                        Thread.sleep(10);
                    } catch (Exception e) {
                    }
                    //untuk memanggil repaint
                    SwingUtilities.invokeLater(new Runnable() {

                        public void run() {
                            repaint();
                        }
                    });
                }
            }
        });
    }
    public void drawText(Graphics2D g2) {
        g2.setFont(new Font("Comic sans ms", 1, 35));
        g2.setColor(new Color((int)(Math.random()*250), (int)(Math.random()*250), (int)(Math.random()*250), a));
        g2.drawString("Siman Mendrofa || 0910000338", 20+x, 50+y);
    }
    public void drawOrang(Graphics2D g2, int x, int y, int v) {
        g2.setStroke(new BasicStroke(6, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
        Ellipse2D kepala = new Ellipse2D.Double(x + 38, y + 10, 20, 20);
        GeneralPath gp = new GeneralPath();
        gp.moveTo(x + 46, y + 32);
        gp.lineTo(x + 34, y + 52);
        gp.lineTo(x + 27, y + 73);

        gp.moveTo(x + 46, y + 32);
        gp.lineTo(x + 54, y + 55);
        gp.lineTo(x + 71, y + 72);

        gp.moveTo(x + 46, y + 32);
        gp.lineTo(x + 46, y + 69);
        gp.lineTo(x + 46, y + 93);
        gp.lineTo(x + 26, y + 112);

        gp.moveTo(x + 46, y + 69);
        gp.lineTo(x + 59, y + 93);
        gp.lineTo(x + 66, y + 118);
//=============================================================
        Ellipse2D kepala1 = new Ellipse2D.Double(x + 42, y + 10, 20, 20);

        GeneralPath gp1 = new GeneralPath();
        gp1.moveTo(x + 46, y + 29);
        gp1.lineTo(x + 40, y + 48);
        gp1.lineTo(x + 40, y + 77);

        gp1.moveTo(x + 46, y + 29);
        gp1.lineTo(x + 49, y + 58);
        gp1.lineTo(x + 51, y + 74);

        gp1.moveTo(x + 46, y + 29);
        gp1.lineTo(x + 46, y + 68);
        gp1.lineTo(x + 52, y + 90);
        gp1.lineTo(x + 46, y + 120);

        gp1.moveTo(x + 46, y + 68);
        gp1.lineTo(x + 60, y + 92);
        gp1.lineTo(x + 38, y + 106);

        g2.setPaint(Color.red);

        if (v == 1) {
            g2.fill(kepala);
            g2.draw(gp);
            g2.draw(kepala);
        } else if (v == 2) {
            g2.fill(kepala1);
            g2.draw(gp1);
            g2.draw(kepala1);
        }
    }
    public void xplay() {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                final JFrame frame = new JFrame("Animasi Orang");
                frame.setDefaultCloseOperation(
                        JFrame.EXIT_ON_CLOSE);
                frame.add(new animasiOrang());
                frame.pack();
                frame.setResizable(false);
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });

    }
    // </editor-fold>
    public static void main(String salis[]) {
        new animasiOrang().xplay();
    }
}
Hasilnya Seperti gambar berikut :

Artikel Lain :


Unique 1:1 Traffic Exchange

♪ ♥ Ma liste de blogs ♥ ♪

♪ ♥ Please Votes! Thanks. ♪ ♥
×