Setelah semuanya siap, copy/paste class Mover dari sini.
Pertama, saya mengcopy/paste class mover di subclass nya actor.
public class Mover extends Actor{......
Kedua, saya membuat subclass dari Mover, yaitu Mobil.
public class Mobil extends Mover{......
Setelah itu menambah fungsi/method baru, turnTo(int x, int y) di dalam class Mover.
Method turnTo(int x, int y) menggunakan Trigonometri.
public class Mover extends Actor
{
........
.....
....
public boolean atWorldEdge()
{
.......
}
/** Ini methodnya **/
public void turnTo(int x, int y)
{
int turnAngle = 0;
int deltaX = x - this.getX();
int deltaY = y - this.getY();
turnAngle = (int) (180 * Math.atan2(deltaY, deltaX) /Math.PI);
setRotation(turnAngle);
}
}
Keempat, saya memindahkan method act() di subclass nya world, Papan class, Ke act() di Mobil class.
/** di Mobil.class **/
public void act(){
if(Greenfoot.mouseClicked(null))
{
Greenfoot.playSound("mouseClick.wav");
}
}
Membuat Mobil Tertuju ke Arah Klik
Didalam act() Mobil, kita tambahkan objek bernama MouseInfo, karena kita membutuhkan data tentang posisi klik mouse / tujuan kita.
objek MouseInfo mengandung data data tentang mouse.
objek MouseInfo dipanggil menggunakan static method Greenfoot.getMouseInfo()
public void act()
{
if(Greenfoot.mouseClicked(null))
{
Greenfoot.playSound("mouseClick.wav");
MouseInfo mi = Greenfoot.getMouseInfo();
}
}
Setelah meng "initialize" objek 'mi', kita ambil data data yang ada pada objek tersebut, diantaranya adalah posisi x dan y nya.
public void act()
{
if(Greenfoot.mouseClicked(null))
{
Greenfoot.playSound("mouseClick.wav");
MouseInfo mi = Greenfoot.getMouseInfo();
int mx = mi.getX(); // kita ambil posisi x nya
int my = mi.getY(); // kita ambil posisi y nya
}
}
Setelah mendapatkan data data yang dibutuhkan, mari kita laksanakan method yang kita paste sebelumnya ke class Mover, method turnTo() !
public void act()
{
if(Greenfoot.mouseClicked(null))
{
Greenfoot.playSound("mouseClick.wav");
MouseInfo mi = Greenfoot.getMouseInfo();
int mx = mi.getX(); // kita ambil posisi x nya
int my = mi.getY(); // kita ambil posisi y nya
turnTo(mx,my);
}
}
Berhasil, kita telah membuat Mobil yang kita buat mengarah ke arah klik!
Sekarang, langsung saja tambahkan method move agar mobil itu bergerak.
public void act()
{
move(3); //
if(Greenfoot.mouseClicked(null))
{
Greenfoot.playSound("mouseClick.wav");
MouseInfo mi = Greenfoot.getMouseInfo();
int mx = mi.getX(); // kita ambil posisi x nya
int my = mi.getY(); // kita ambil posisi y nya
turnTo(mx,my);
}
}
Langkah terakhir! membuat dan memasukan objek Mobil kedalam Papan (subclass nya World)
public Papan()
{
super(400, 200, 1);
addObject(new Mobil(), Greenfoot.getRandomNumber(getWidth()), Greenfoot.getRandomNumber(getHeight()));
}
Compile !
Applet sama sourcenya menyusul! :D
No comments:
Post a Comment