ANDROID HOLLYDAY
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package tugas_mz_hud;
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.*;
import java.awt.image.ImageObserver;
import javax.swing.*;
import java.awt.geom.*;
import java.util.Locale;
import javax.swing.plaf.DimensionUIResource;
import sun.applet.AppletAudioClip;
public class jalan extends JApplet implements Runnable {
public void init() {
JPanel panel = new empatPanel();
getContentPane().add(panel);
JPanel panel2 = new empatPanel();
getContentPane().add(panel2);
}
public void run() {
throw new UnsupportedOperationException("Not supported yet.");
}
}
class empatPanel extends JPanel {
int mataharij;
satu anim1 = new satu(this, 0);
int x1 = 0;
int x2 = 0;
empatPanel.JalanBadan badan = new empatPanel.JalanBadan(this, 0);
empatPanel.JalanKaki kaki = new empatPanel.JalanKaki(this, 0);
public empatPanel() {
setPreferredSize(new Dimension(800, 690));
setBackground(Color.white);
anim1.start();
badan.start();
kaki.start();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
//Latar
GradientPaint warnaGradien = new GradientPaint(400, 0 + mataharij, Color.yellow, 400, 250, Color.white, false);
Rectangle2D.Double kotak = new Rectangle2D.Double(0, 0, 850, 700);
g2.setPaint(warnaGradien);
g2.fill(kotak);
g2.setStroke(new BasicStroke(4.0f));
g2.draw(kotak);
//matahari
mataharij = anim1.getOrdinat();
Ellipse2D.Double matahari = new Ellipse2D.Double(700 + mataharij, 10, 100, 100);
GradientPaint warnamatahari = new GradientPaint(120, 60, Color.yellow, 50, 50, Color.orange, true);
g2.setPaint(warnamatahari);
g2.fill(matahari);
g2.setStroke(new BasicStroke(1.0f));
g2.setColor(Color.orange);
g2.draw(matahari);
//tanah
GradientPaint warnatanah = new GradientPaint(400, 0, Color.yellow, 400, 300, Color.black, true);
Line2D.Double tanah = new Line2D.Double(0, 430, 790, 430);
g2.setPaint(warnatanah);
g2.fill(tanah);
g2.setStroke(new BasicStroke(40.0f));
g2.draw(tanah);
// gambar awan
g2.setStroke(new BasicStroke(5.0f));
GeneralPath awan = new GeneralPath();
awan.moveTo(100 - mataharij, 60);
awan.quadTo(120 - mataharij, 40, 150 - mataharij, 60);
awan.quadTo(180 - mataharij, 40, 200 - mataharij, 60);
awan.quadTo(220 - mataharij, 45, 235 - mataharij, 70);
awan.quadTo(260 - mataharij, 83, 235 - mataharij, 95);
awan.quadTo(210 - mataharij, 120, 200 - mataharij, 98);
awan.quadTo(170 - mataharij, 115, 160 - mataharij, 95);
awan.quadTo(135 - mataharij, 105, 125 - mataharij, 95);
awan.quadTo(100 - mataharij, 110, 90 - mataharij, 85);
awan.quadTo(60 - mataharij, 65, 100 - mataharij, 60);
//gambar awan2
g2.setStroke(new BasicStroke(5.0f));
GeneralPath awan2 = new GeneralPath();
awan2.moveTo(50 + mataharij, 100);
awan2.quadTo(70 + mataharij, 80, 100 + mataharij, 100);
awan2.quadTo(130 + mataharij, 80, 150 + mataharij, 100);
awan2.quadTo(170 + mataharij, 85, 185 + mataharij, 110);
awan2.quadTo(210 + mataharij, 123, 185 + mataharij, 135);
awan2.quadTo(160 + mataharij, 160, 150 + mataharij, 138);
awan2.quadTo(120 + mataharij, 155, 110 + mataharij, 135);
awan2.quadTo(85 + mataharij, 145, 75 + mataharij, 135);
awan2.quadTo(50 + mataharij, 150, 40 + mataharij, 125);
awan2.quadTo(10 + mataharij, 105, 50 + mataharij, 100);
g2.setPaint(Color.WHITE);
g2.fill(awan);
g2.fill(awan2);
g2.setStroke(new BasicStroke(1.0f));
g2.setColor(Color.cyan);
g2.draw(awan);
g2.draw(awan2);
//pohon
GeneralPath pohon = new GeneralPath();
pohon.moveTo(647, 454);
pohon.lineTo(704, 454);
pohon.lineTo(699, 348);
pohon.lineTo(696, 284);
pohon.lineTo(691, 228);
pohon.lineTo(738, 192);
pohon.lineTo(759, 187);
pohon.lineTo(745, 185);
pohon.lineTo(767, 166);
pohon.lineTo(783, 140);
pohon.lineTo(759, 164);
pohon.lineTo(751, 146);
pohon.lineTo(753, 167);
pohon.lineTo(697, 203);
pohon.lineTo(701, 178);
pohon.lineTo(710, 175);
pohon.lineTo(702, 172);
pohon.lineTo(738, 107);
pohon.lineTo(703, 145);
pohon.lineTo(693, 121);
pohon.lineTo(696, 158);
pohon.lineTo(676, 199);
pohon.lineTo(664, 157);
pohon.lineTo(678, 130);
pohon.lineTo(663, 147);
pohon.lineTo(645, 83);
pohon.lineTo(646, 120);
pohon.lineTo(618, 115);
pohon.lineTo(648, 133);
pohon.lineTo(658, 204);
pohon.lineTo(589, 164);
pohon.lineTo(578, 131);
pohon.lineTo(579, 159);
pohon.lineTo(550, 148);
pohon.lineTo(587, 174);
pohon.lineTo(578, 191);
pohon.lineTo(592, 181);
pohon.lineTo(659, 230);
pohon.lineTo(662, 268);
pohon.lineTo(660, 290);
pohon.lineTo(631, 292);
pohon.lineTo(630, 303);
pohon.lineTo(660, 309);
pohon.lineTo(647, 454);
GradientPaint pohon1 = new GradientPaint(150, 50, Color.orange, 50, 50, Color.black, true);
g2.setPaint(pohon1);
g2.fill(pohon);
g2.setStroke(new BasicStroke(1.0f));
g2.setColor(Color.black);
g2.draw(pohon);
//daun
Ellipse2D.Double daun = new Ellipse2D.Double(545, 125, 10, 25);
Ellipse2D.Double daun1 = new Ellipse2D.Double(545, 150, 10, 25);
Ellipse2D.Double daun2 = new Ellipse2D.Double(525, 145, 25, 10);
Ellipse2D.Double daun3 = new Ellipse2D.Double(575, 110, 10, 25);
Ellipse2D.Double daun4 = new Ellipse2D.Double(580, 130, 25, 10);
Ellipse2D.Double daun5 = new Ellipse2D.Double(555, 130, 25, 10);
Ellipse2D.Double daun6 = new Ellipse2D.Double(555, 185, 25, 10);
Ellipse2D.Double daun7 = new Ellipse2D.Double(575, 190, 10, 25);
//
Ellipse2D.Double daun8 = new Ellipse2D.Double(613, 115, 10, 25);
Ellipse2D.Double daun9 = new Ellipse2D.Double(595, 110, 25, 10);
Ellipse2D.Double daun10 = new Ellipse2D.Double(613, 90, 10, 25);
Ellipse2D.Double daun11 = new Ellipse2D.Double(640, 60, 10, 25);
Ellipse2D.Double daun12 = new Ellipse2D.Double(645, 80, 25, 10);
Ellipse2D.Double daun13 = new Ellipse2D.Double(620, 80, 25, 10);
Ellipse2D.Double daun14 = new Ellipse2D.Double(677, 125, 25, 10);
Ellipse2D.Double daun15 = new Ellipse2D.Double(672, 105, 10, 25);
Ellipse2D.Double daun16 = new Ellipse2D.Double(652, 125, 25, 10);
//
Ellipse2D.Double daun17 = new Ellipse2D.Double(688, 95, 10, 25);
Ellipse2D.Double daun18 = new Ellipse2D.Double(692, 115, 25, 10);
Ellipse2D.Double daun50 = new Ellipse2D.Double(780, 115, 10, 25);
Ellipse2D.Double daun51 = new Ellipse2D.Double(757, 135, 25, 10);
Ellipse2D.Double daun52 = new Ellipse2D.Double(780, 135, 25, 10);
Ellipse2D.Double daun53 = new Ellipse2D.Double(727, 142, 25, 10);
Ellipse2D.Double daun54 = new Ellipse2D.Double(748, 122, 10, 25);
Ellipse2D.Double daun55 = new Ellipse2D.Double(752, 188, 10, 25);
Ellipse2D.Double daun56 = new Ellipse2D.Double(756, 180, 25, 10);
Ellipse2D.Double daun57 = new Ellipse2D.Double(739, 100, 25, 10);
Ellipse2D.Double daun58 = new Ellipse2D.Double(730, 82, 10, 25);
Ellipse2D.Double daun59 = new Ellipse2D.Double(710, 170, 25, 10);
Ellipse2D.Double daun60 = new Ellipse2D.Double(705, 175, 10, 25);
Ellipse2D.Double daun61 = new Ellipse2D.Double(710, 100, 25, 10);
g2.setColor(new Color(0, 204, 0));
g2.fill(daun);
g2.fill(daun1);
g2.fill(daun2);
g2.fill(daun3);
g2.fill(daun4);
g2.fill(daun5);
g2.fill(daun6);
g2.fill(daun7);
//
g2.fill(daun8);
g2.fill(daun9);
g2.fill(daun10);
g2.fill(daun11);
g2.fill(daun12);
g2.fill(daun13);
g2.fill(daun14);
g2.fill(daun15);
g2.fill(daun16);
//
g2.fill(daun17);
g2.fill(daun18);
g2.fill(daun50);
g2.fill(daun51);
g2.fill(daun52);
g2.fill(daun53);
g2.fill(daun54);
g2.fill(daun55);
g2.fill(daun56);
g2.fill(daun57);
g2.fill(daun58);
g2.fill(daun59);
g2.fill(daun60);
g2.fill(daun61);
//pagar
Line2D.Double pagar = new Line2D.Double(0, 470, 800, 470);
Line2D.Double pagar1 = new Line2D.Double(0, 400, 800, 400);
Line2D.Double pagar2 = new Line2D.Double(0, 430, 800, 430);
Line2D.Double pagar3 = new Line2D.Double(0, 475, 800, 475);
g2.setColor(Color.DARK_GRAY);
g2.setStroke(new BasicStroke(40.0f));
g2.draw(pagar);
g2.setStroke(new BasicStroke(7.0f));
g2.draw(pagar1);
g2.draw(pagar2);
g2.setStroke(new BasicStroke(9.0f));
g2.draw(pagar3);
g2.drawLine(0, 385, 0, 475);
g2.drawLine(50, 385, 50, 475);
g2.drawLine(100, 385, 100, 475);
g2.drawLine(150, 385, 150, 475);
g2.drawLine(200, 385, 200, 475);
g2.drawLine(250, 385, 250, 475);
g2.drawLine(300, 385, 300, 475);
g2.drawLine(350, 385, 350, 475);
g2.drawLine(400, 385, 400, 475);
g2.drawLine(450, 385, 450, 475);
g2.drawLine(500, 385, 500, 475);
g2.drawLine(550, 385, 550, 475);
g2.drawLine(600, 385, 600, 475);
g2.drawLine(650, 385, 650, 475);
g2.drawLine(700, 385, 700, 475);
g2.drawLine(750, 385, 750, 475);
g2.drawLine(800, 385, 800, 475);
//trotoar
Rectangle2D.Double persegipanjang = new Rectangle2D.Double(0, 475, 850, 100);
g2.setColor(new Color(153, 153, 153));
g2.fill(persegipanjang);
g2.setColor(Color.black);
g2.setStroke(new BasicStroke(2.0f));
g2.draw(persegipanjang);
g2.drawLine(825, 475, 800, 550);
g2.drawLine(775, 475, 700, 550);
g2.drawLine(675, 475, 600, 550);
g2.drawLine(575, 475, 500, 550);
g2.drawLine(475, 475, 400, 550);
g2.drawLine(375, 475, 300, 550);
g2.drawLine(275, 475, 200, 550);
g2.drawLine(175, 475, 100, 550);
g2.drawLine(75, 475, 0, 550);
Rectangle2D.Double persegi = new Rectangle2D.Double(0, 550, 850, 25);
g2.setColor(Color.GRAY);
g2.fill(persegi);
g2.setColor(Color.black);
g2.setStroke(new BasicStroke(2.0f));
g2.draw(persegi);
g2.drawLine(100, 550, 100, 575);
g2.drawLine(200, 550, 200, 575);
g2.drawLine(300, 550, 300, 575);
g2.drawLine(400, 550, 400, 575);
g2.drawLine(500, 550, 500, 575);
g2.drawLine(600, 550, 600, 575);
g2.drawLine(700, 550, 700, 575);
g2.drawLine(800, 550, 800, 575);
//jalan
Rectangle2D.Double persegi2 = new Rectangle2D.Double(0, 575, 850, 125);
g2.setColor(Color.black);
g2.fill(persegi2);
g2.setColor(Color.black);
g2.setStroke(new BasicStroke(2.0f));
g2.draw(persegi2);
float[] dashPattern;
float dashPhase = 2.0f;
dashPattern = new float[2];
dashPattern[0] = 100;
dashPattern[1] = 25;
g2.setColor(Color.white);
BasicStroke bsDashed = new BasicStroke(7.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 2.0f, dashPattern, dashPhase);
g2.setStroke(bsDashed);
g2.drawLine(0, 625, 800, 675);
//Jalan
x1 = badan.getPosisi();
x2 = kaki.getPosisi();
g2.setColor(new Color(65, 177, 17));
g2.setStroke(new BasicStroke(3.0f));
GeneralPath gp = new GeneralPath();
gp.moveTo(x1 + 42, 370);
gp.lineTo(x1 + 158, 370);
gp.quadTo(x1 + 150, 330, x1 + 100, 327);
gp.quadTo(x1 + 50, 330, x1 + 42, 370);
gp.moveTo(x1 + 80, 330);
gp.lineTo(x1 + 65, 310);
gp.moveTo(x1 + 120, 330);
gp.lineTo(x1 + 135, 310);
g2.fill(gp);
g2.draw(gp);
g2.setColor(Color.black);
Shape putih = new Ellipse2D.Double(x1 + 60, 345, 13, 13);
g2.fill(putih);
Shape putih1 = new Ellipse2D.Double(x1 + 120, 345, 13, 13);
g2.fill(putih1);
Stroke an = new BasicStroke(20, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND);
g2.setStroke(an);
g2.setColor(new Color(65, 177, 17));
GeneralPath gp2 = new GeneralPath();
gp2.moveTo(x1 + 50, 390);
gp2.lineTo(x1 + 50, 480);
gp2.lineTo(x1 + 150, 480);
gp2.lineTo(x1 + 150, 390);
gp2.lineTo(x1 + 50, 390);
gp2.moveTo(x1 + 25, 400);
gp2.lineTo(x1 + -x2 + 20, 480);
gp2.moveTo(x1 + 175, 400);
gp2.lineTo(x1 + -x2 + 200, 350);
g2.fill(gp2);
g2.draw(gp2);
//kaki
Stroke kaki = new BasicStroke(25, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND);
g2.setStroke(kaki);
g2.drawLine(x1 + 70, 480, x1 + -x2 + 70, 530);
g2.drawLine(x1 + 130, 480, x1 + -x2 + 139, 530);
}
class JalanKaki extends Thread implements Runnable {
JPanel panel;
int posisi;
public int getPosisi() {
return posisi;
}
public final int garis = 0;
int a;
public JalanKaki(JPanel panel, int posisi) {
this.panel = panel;
this.a = posisi;
}
@Override
public void run() {
while (true) {
try {
Thread.sleep(40);
} catch (Exception e) {
} finally {
if (a == garis) {
posisi++;
if (posisi == 25) {
posisi = 0;
}
panel.repaint();
}
}
}
}
}
/*
* To change this template, choose Tools | Templates and open the template
* in the editor.
*/
final class JalanBadan extends Thread implements Runnable {
JPanel panel;
int posisi;
public int getPosisi() {
return posisi;
}
public final int kanan = 0;
int a;
public JalanBadan(JPanel panel, int a) {
this.panel = panel;
this.a = a;
}
@Override
public void run() {
while (true) {
try {
Thread.sleep(40);
} catch (Exception e) {
} finally {
if (a == kanan) {
posisi++;
if (posisi == 700) {
posisi = 5;
}
}
}
panel.repaint();
}
}
}
public static void main(String s[]) {
JFrame bingkai = new JFrame();
bingkai.setTitle("Android Holiday");
bingkai.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JApplet applet = new jalan();
applet.init();
bingkai.getContentPane().add(applet);
bingkai.pack();
bingkai.setVisible(true);
bingkai.setResizable(false);
applet.init();
bingkai.setLocation(280, 5);
}
}
// Membuat class threadnya
import javax.swing.*;
import java.applet.*;
import java.awt.*;
public class satu extends Thread implements Runnable {
JPanel panel1;
int ordinat, oordinat, pp;
int a, b, z;
public int getOrdinat() {
return ordinat;
}
public int getOordinat() {
return oordinat;
}
public final int KANAN = 0, KIRI = 1;
int kode;
public satu(JPanel panel1, int kode) {
this.panel1 = panel1;
this.kode = kode;
}
public void run() {
while (true) {
try {
Thread.sleep(10);
} catch (Exception e) {
} finally {
}
if (kode == KANAN) {
ordinat--;
if (ordinat < -750) {
ordinat = +200;
}
}
panel1.repaint();
}
}


Tidak ada komentar:
Posting Komentar