mungkin bagi orang awam java sangat sulit. disini kalian biasa membuat gambar-gambar dua dimensi dari java menjadi bergerak ikuti caranya:
import
java.awt.*;
import
java.awt.event.*;
import
java.awt.geom.Ellipse2D;
import
java.awt.geom.Line2D;
import
java.awt.geom.Rectangle2D;
import
java.util.Timer;
import
java.util.TimerTask;
import
javax.swing.*;
public class
Gabungan3 extends JFrame{
private JPanel buttonPanel;
private Mobil gambar;
private JButton btGerak;
public JTextField masukan;
private int faktor, a;
public int sensorDepan, sensorBelakang;
Timer timer = new Timer();
public
Gabungan3() {
super("Mobil Genius");
gambar= new Mobil();
gambar.setBackground(Color.white);
masukan = new JTextField();
masukan.setText("1");
btGerak = new JButton( "Start"
);
btGerak.addActionListener(new
ActionListener() {
public void actionPerformed( ActionEvent
event ) {
gerakkan(true);
}
});
buttonPanel = new JPanel();
buttonPanel.setLayout( new GridLayout(
1, 3 ) );
buttonPanel.add(masukan);
buttonPanel.add(btGerak);
Container container = getContentPane();
container.add( gambar,
BorderLayout.CENTER );
container.add( buttonPanel,
BorderLayout.SOUTH);
setSize(800, 230);
setVisible( true );
}
public static void main( String args[] ){
Gabungan3 application = new Gabungan3();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
}
class putar
extends TimerTask{
private
boolean mundur;
public void
run()
{
try{
faktor=Integer.parseInt(masukan.getText());
if(mundur){
a -= faktor;
gambar.draw(Mobil.GERAK,
a);
if(sensorBelakang
<= 40)
mundur = false;
}else{
a += faktor;
gambar.draw(Mobil.GERAK, a);
if(sensorDepan >= 739)
mundur = true;
}
}catch(Exception e){}
}
}
public void
gerakkan(boolean laju){
if(laju){
masukan.setText("1");
timer.schedule(new
putar(), 10, 1);
}
else if (laju
== false)
masukan.setText("0");
}
class Mobil extends JPanel {
public final static int GERAK = 1;
private int shape;
int transformasi = 0;
Color warna;
@Override
public void
paintComponent( Graphics g ) {
super.paintComponent(
g );
Graphics2D
g2=(Graphics2D) g ;
int mX1 = 90, mY1 = 60;
int mX2 = 180, mY2 = 60;
int mX3 = 230, mY3 = 90;
int mX4 = 260, mY4 = 100;
int mX5 = 270, mY5 = 110;
int mX6 = 270, mY6 = 130;
int mX7 = 230, mY7 = 130;
int mX8 = 210, mY8 = 110;
int mX9 = 190, mY9 = 130;
int mX10 = 110, mY10 = 130;
int mX11 = 90, mY11 = 110;
int mX12 = 70, mY12 = 130;
int mX13 = 40, mY13 = 130;
int mX14 = 40, mY14 = 120;
int mX15 = 50, mY15 = 120;
int mX16 = 50, mY16 = 100;
int mX17 = 60, mY17 = 100;
int kX1 = 76, kY1 = 90;
int kX2 = 90, kY2 = 90;
int kX3 = 90, kY3 = 70;
int kX4 = 100, kY4 = 90;
int kX5 = 140, kY5 = 90;
int kX6 = 140, kY6 = 70;
int kX7 = 100, kY7 = 70;
int kX8 = 150, kY8 = 90;
int kX9 = 210, kY9 = 90;
int kX10 = 180, kY10 = 70;
int kX11 = 150, kY11 = 70;
int rX1 = 190, rY1 = 110;
int rX2 = 70, rY2 = 110;
int vX1 = 200, vY1 = 120;
int vX2 = 80, vY2 = 120;
Rectangle2D
tembok1 = new Rectangle2D.Float(740, 50, 20, 100);
Rectangle2D tembok2 = new
Rectangle2D.Float(20, 50, 20, 100);
warna = new Color(234, 107, 72);
g2.setPaint(warna);
g2.fill(tembok1);
g2.fill(tembok2);
g2.draw(tembok1);
g2.draw(tembok2);
Line2D jalan = new Line2D.Float(40,
150, 740, 150);
warna = new Color(0, 0, 0);
g2.setColor(warna);
g2.setPaint(warna);
g2.fill(jalan);
g2.setPaint(warna);
g2.draw(jalan);
warna = new Color(80, 164, 245);
g2.setColor(warna);
Polygon mobil = new Polygon();
mobil.addPoint(mX1 +
transformasi, mY1);
mobil.addPoint(mX2 +
transformasi, mY2);
mobil.addPoint(mX3 +
transformasi, mY3);
mobil.addPoint(mX4 +
transformasi, mY4);
mobil.addPoint(mX5 +
transformasi, mY5);
mobil.addPoint(mX6 +
transformasi, mY6);
mobil.addPoint(mX7 +
transformasi, mY7);
mobil.addPoint(mX8 + transformasi, mY8);
mobil.addPoint(mX9 +
transformasi, mY9);
mobil.addPoint(mX10 +
transformasi, mY10);
mobil.addPoint(mX11 +
transformasi, mY11);
mobil.addPoint(mX12 + transformasi,
mY12);
mobil.addPoint(mX13 +
transformasi, mY13);
mobil.addPoint(mX14 +
transformasi, mY14);
mobil.addPoint(mX15 +
transformasi, mY15);
mobil.addPoint(mX16 +
transformasi, mY16);
mobil.addPoint(mX17 + transformasi, mY17);
g2.fill(mobil);
g2.drawPolygon(mobil);
warna = new Color(0, 0, 0);
g2.setColor(warna);
Polygon kaca1 = new Polygon();
kaca1.addPoint(kX1 +
transformasi, kY1);
kaca1.addPoint(kX2 +
transformasi, kY2);
kaca1.addPoint(kX3 +
transformasi, kY3);
g2.fill(kaca1);
g2.drawPolygon(kaca1);
Polygon kaca2 = new Polygon();
kaca2.addPoint(kX4 +
transformasi, kY4);
kaca2.addPoint(kX5 +
transformasi, kY5);
kaca2.addPoint(kX6 +
transformasi, kY6);
kaca2.addPoint(kX7 +
transformasi, kY7);
g2.fill(kaca2);
g2.drawPolygon(kaca2);
Polygon kaca3 = new Polygon();
kaca3.addPoint(kX8 +
transformasi, kY8);
kaca3.addPoint(kX9 +
transformasi, kY9);
kaca3.addPoint(kX10 +
transformasi, kY10);
kaca3.addPoint(kX11 + transformasi,
kY11);
g2.fill(kaca3);
g2.drawPolygon(kaca3);
Ellipse2D
roda1 = new Ellipse2D.Float(rX1 + transformasi,rY1,40,40);
Ellipse2D
roda2 = new Ellipse2D.Float(rX2 + transformasi,rY2,40,40);
g2.fill(roda1);
g2.fill(roda2);
g2.draw(roda1);
g2.draw(roda2);
Ellipse2D
velg1 = new Ellipse2D.Float(vX1 + transformasi,vY1,20,20);
Ellipse2D
velg2 = new Ellipse2D.Float(vX2 + transformasi,vY2,20,20);
warna = new Color(255,255,255);
g2.setPaint(warna);
g2.fill(velg1);
g2.fill(velg2);
g2.draw(velg1);
g2.draw(velg2);
g2.draw(velg2);
g2.drawString("Mobilku",
130 + transformasi, 110);
sensorDepan =
mX5 + transformasi;
sensorBelakang
= mX14 + transformasi;
if ( shape ==
GERAK){
transformasi
+= transformasi;
}
}
public void
draw( int shapeToDraw, int fak)
{
shape =
shapeToDraw;
transformasi =
fak;
repaint();
}
}
java.com