GAME PESAWAT MENEMBAKI ALIEN NARKOBA DENGAN GREENFOOT
Greenfoot merupakan lingkungan
pengembangan Java(Java development environtment) yang
bersifat interaktif dan didesain untuk tujuan pendidikan pada level SMA dan S1.
Dengan program ini, seseorang dapat mengembangkan aplikasi grafis dua dimensi,
seperti simulasi dan game interaktif. Greenfoot dikembangkan oleh University of Kent danLa Trobe University,
dengan dukungan dari Oracle. Software ini gratis, dirilis di bawah lisensi GPL.
Greenfoot tersedia pada banyak platform, seperti MS Windows, Mac OS X, Linux,
Sun Solaris, dan beberapa JVM terbaru.
Dengan greenfoot, seorang
siswa/mahasiswa dapat belajar pemrograman berorientasi obyek menggunakan Java.
Mereka dapat menciptakan 'actor' dalam
suatu 'world'untuk membangun game, simulasi, dan
program-program grafis lainnya.
Greenfoot bersifat visual dan
interaktif. Perangkat visualisasi dan interaksi dibangun di dalam environment tersebut.Actor diprogram
menggunakan kode Java yang standar, sehingga memberikan pengalaman pemrograman
berbasis teks yang bersifat tradisional dengan eksekusi visual.
Antarmuka yang digunakan sepenuhnya
menggunakan konsep IDE, dimana didalamnya terdapat manajemen proyek,auto-completion, syntax highlighting, dan
tool-tool lain yang biasanya terdapat pada kebanyakan IDE. Hal ini memungkinkan
seorang pemrogram mempublikasikan pekerjaannya baik secara online maupun
offline. Meskipun demikian, antarmukanya didesain untuk tetap sederhana dan
mudah digunakan, sehingga cocok untuk para pemula.
Greenfoot
digunakan oleh ribuan institusi di seluruh dunia. Program ini memberikan
peralihan yang mudah keenvironment lainnya, semacam
BlueJ dan IDE-IDE profesional yang lain.
Program dalam greenfoot ditulis
dengan bahasa Java standar, yang merupakan salah satu bahasa utama dalam dunia
akademis dan industri. Software ini didesain agar cukup mudah bagi pemula.
Dengan digunakannya Java, memungkinkan seorang programmer membuat aplikasi yang
impresif, fleksibel, dan canggih.
Software ini memang cocok bagi
siswa/mahasiswa yang ingin belajar dan memperdalam baik secara konsep maupun
praktik pemrograman berorientasi obyek. Software tersebut dapat didownload pada
alamat inihttp://www.greenfoot.org/daownload,
yang tersedia dalam berbagai platform sistem operasi. Beberapa contoh program
dapat didownload pada alamat ini: http://www.greenfoot.org/book/material/book-scenarios.zip.
CONTOH
STORY BOARD YANG AKAN DI BUAT
A. langkah pertama buka lah aplikasi
greenfoot berikut tampilan nya
selanjutnya buatlah sekenario Sceario>NEW masukkan nama program yang akan di buat
B. Buatlah sebuah subclass world
klik kanan pada subclass world, maka
akan tampil jendela baru untuk memberi nama subclass.
Masukkan nama sesuai ke inginan
kalian klik import from file untuk menambahkan gambar yang menjadi background/latar,
Kemudian klik 2x pada subclass contoh subclas : bg dan masukkan sintak berikut
:
import
greenfoot.*;
public
class bg extends World
{
// Membuat papan skor pada subclass world
Counter counter = new
Counter("Skor: ");
public bg()
{
// Membuat ukuran layar dengan panjang 900 X
tinggi 550 dengan cell 1X1.
super(900,550,1);
}
}
C. Membuat subclass Aktor
D. menambahkan beberapa subclass
Aktor klik kanan pada Actor pilih new subclass kemudian akan tampil jendela
baru untuk memberi nama subclass dan import from file untuk membuat gambar
menjadi aktor.
E. Menambahkan objek di dalam
subclass world
Klik 2x pada subclass bg dan
masukkan sintaks berikut ini!
public
bg()
{
// Membuat ukuran layar dengan panjang 900 X
tinggi 550 dengan cell 1X1.
super(900,550,1);
// Menambahkan Objek di dalam subclass world
setPaintOrder(skor.class,
fire.class, awan.class, ps.class, ufo.class, Counter.class, pelor1.class,
pelor2.class);
addObject(new
awan(),690,20);
addObject(new ps(),9,220);
addObject(new
ufo(),790,320);
addObject(counter,120,450);
}
lalu compile dan lihat tampilan nya
F. Menggerakkan aktor ps (pesawat)
dengan mouse
public
void act()
{
// Menggerakan aktor ps menggunakan mouse
if(Greenfoot.mouseMoved(null)){
MouseInfo mouse = Greenfoot.getMouseInfo();
setLocation(mouse.getX(), mouse.getY());
}
}
jangan
lupa di compile apakah berfungsi dengan baik
tambahkan
sintaks berikut agar aktor ps (pesawat) dapat menembakkan peluru :
public void act()
{
// Menggerakan aktor ps menggunakan mouse
if(Greenfoot.mouseMoved(null)){
MouseInfo mouse = Greenfoot.getMouseInfo();
setLocation(mouse.getX(), mouse.getY());
}
// Menembakkan peluru dengan mengklik kiri
mouse
if(Greenfoot.mouseClicked(null))
{
pl.addObject(new
pelor1(),getX()+getImage().getHeight(),getY());
Greenfoot.playSound("p1.wav");
}
}
Tambahkan
lagi sintaks ini agar perintah dapat di laksanakan, masukkan di atas public
void act()
private bg pl;
public void
addedToWorld(World bg){
pl=(bg)bg;
}
Kemudian Compile
G. cara agar peluru bergerak dengan
memasukkan syntax berikut
Menggerakkan Peluru
- Menggerakkan aktor pelor1
Masukkan sintaks ini di dalam public void act()
2. public void act()
3. {
4. // Menggerakkan pelor1 dari kiri ke kanan
5. int x=getX();
6. int y=getY();
7. setLocation(x+29,y);
8. // Jika x melebihi 853 maka aktor pelor1 akan
di hilangkan
9. if(x == 853){
10. getWorld().removeObject(this);
11. return;
12. }
13. // Membuat aktor ufo menjadi hilang atau
hancur
14. Actor a = getOneObjectAtOffset(0 ,0,
ufo.class);
15. if(a != null){
16. getWorld().addObject(new
fire(),getX(),getY());
17. getWorld().removeObject(a);
18. getWorld().removeObject(this);
19. return;
20. }
21. }
- Menggerakkan aktor pelor2
Masukkan sintaks ini di dalam public void act()
23. public
void act()
24. {
25. // Menggerakkan pelor2 dari kanan ke kiri
26. int x=getX();
27. int y=getY();
28. setLocation(x-32,y);
29. // Jika x kurang dari 0 maka aktor pelor1
akan di hilangkan
30. if(x==0){
31. getWorld().removeObject(this);
32. return;
33. }
34. // Membuat aktor ps menjadi hilang atau
hancur
35. Actor a = getOneIntersectingObject(ps.class);
36. if(a != null){
37. getWorld().addObject(new
fire(),getX(),getY());
38. getWorld().removeObject(a);
39. getWorld().removeObject(this);
40. return;
41. }
42. }
Jangan lupa untuk mengcompile.
H. Membuat aktor UFO narkoba
bergerak dan menembak
masukkan syntax berikut
public
void act()
{
// Menggerakan ufo dari kanan ke kiri
int x=getX();
int y=getY();
setLocation(x-2,y);
// Jika x kurang dari 0 maka aktor ufo akan
menghilang
if(x==0){
getWorld().removeObject(this);
}
// UFO menembak secara otomatis
if(Greenfoot.mouseMoved(null)){
MouseInfo mouse=Greenfoot.getMouseInfo();
if(mouse.getY()>(y-3) &&
mouse.getY()<(y+3)){
getWorld().addObject(new
pelor2(),getX(),getY());
Greenfoot.playSound("p2.wav");
}
}
}
lalu compile
I. menggerakkan aktor awan
public void act()
{
// Menggerakkan awan dari kanan ke kiri
int x=getX();
int y=getY();
setLocation(x-1,y);
// Jika x kurang dari 0 maka objek akan di
hilangkan
if(x==0){
getWorld().removeObject(this);
}
}
Jangan lupa untuk di compile
J. Membuat efek ledakan animasi
masukkan pada sub class yang sudah di buat contoh di sub class fire
import
greenfoot.*;
import
java.util.*;
public
class fire extends Actor
{
private final static int IMAGE_COUNT= 8;
private static GreenfootImage[] images;
private int size=0;
private int increment=1;
public fire() {
initialiseImages();
setImage(images[0]);
// File harus berada di folder sounds
Greenfoot.playSound("fire.wav");
}
/**
* Create the images for explosion.
*/
public synchronized static void
initialiseImages() {
if(images == null) {
GreenfootImage baseImage = new
GreenfootImage("fire.png");
int maxSize = baseImage.getWidth()*2;
int delta = maxSize / (IMAGE_COUNT+1);
int size = 0;
images = new GreenfootImage[IMAGE_COUNT];
for(int i=0; i < IMAGE_COUNT; i++) {
size = size + delta;
images[i] = new GreenfootImage(baseImage);
images[i].scale(size, size);
}
}
}
public void act()
{
// Add your action code here.
setImage(images[size]);
size += increment;
if(size>=IMAGE_COUNT) {
increment = -increment;
size += increment;
}
if(size <= 0) {
getWorld().removeObject(this);
}
}
}
lalu
compile
K. selanjutnya adalah membuat skor
hasil permainan maka untuk mengethui skor yang di dapat harus memasukkan syntax
di dalam subclass counter
import greenfoot.*;
import java.awt.Font;
public class Counter extends Actor
{
/**
* Undang -
melakukan apapun Counter ingin lakukan. Metode ini disebut setiap kali
*
Yang 'Act' atau tombol 'Run' akan ditekan di lingkungan.
*/
private int value
= 0;
private int
target = 0;
private String
text;
private int stringLength;
public Counter()
{
this("");
}
public
Counter(String prefix)
{
text = prefix;
stringLength = (text.length() + 2) * 16;
setImage(new GreenfootImage(stringLength, 24));
GreenfootImage image = getImage();
Font font = image.getFont();
image.setFont(font.deriveFont(24.0F)); // menggunakan font yang lebih
besar
updateImage();
}
public void act()
{
if(value < target) {
value++;
updateImage();
}
else if(value > target) {
value--;
updateImage();
}
}
public void
add(int score)
{
target += score;
}
public void
subtract(int score)
{
target -= score;
}
public int
getValue()
{
return value;
}
/**
* Make the
image
*/
private void
updateImage()
{
GreenfootImage image = getImage();
image.clear();
image.drawString(text + value, 1, 18);
}
}
dan
masukkan sintaks ini di coding subclass world bg di bawah public void act()
sehingga seperti ini!
// Penambahan nilai skor
public void tambah(){
counter.add(20);
}
// Permaianan berakhir
public void selesai()
{
addObject(new
skor(counter.getValue()), getWidth()/2, getHeight()/2);
Greenfoot.stop();
}
agar
skor bertambah ((bg)getWorld()).tambah();
di dalam aktor pelor1
// Membuat aktor ufo menjadi hilang atau
hancur
Actor a = getOneObjectAtOffset(0 ,0,
ufo.class);
if(a != null){
getWorld().addObject(new
fire(),getX(),getY());
((bg)getWorld()).tambah();
getWorld().removeObject(a);
getWorld().removeObject(this);
return;
}
Dan
agar Permainan dapat berakhir ((bg)getWorld()).selesai();
di dalam aktor pelor2
// Membuat aktor ps menjadi hilang atau
hancur
Actor a = getOneIntersectingObject(ps.class);
if(a != null){
getWorld().addObject(new
fire(),getX(),getY());
((bg)getWorld()).selesai();
getWorld().removeObject(a);
getWorld().removeObject(this);
return;
}
Kemudian
klik Compile
membuat
papan skor yang di peroleh saat game selesai atau game over
Masukkan
sintaks pada aktor skor
import
greenfoot.*;
import
java.awt.Color;
import
java.awt.Font;
import
java.util.Calendar;
public
class skor extends Actor
{
/**
* Act - do whatever the skor wants to do.
This method is called whenever
* the 'Act' or 'Run' button gets pressed
in the environment.
*/
public static final float FONT_SIZE = 48.0f;
public static final int WIDTH = 400;
public static final int HEIGHT = 300;
/**
* Create a score board with dummy result
for testing.
*/
public skor(){
this(100);
}
/**
* Create a score board for the final
result.
*/
public skor(int score){
makeImage("Game Over", "Skor:
", score);
}
/**
* Make the score board image.
*/
private void makeImage(String title, String
prefix, int score){
GreenfootImage image = new
GreenfootImage(WIDTH, HEIGHT);
image.setColor(new Color(0, 0, 0, 160));
image.fillRect(0, 0, WIDTH, HEIGHT);
image.setColor(new Color(255, 255, 255,
100));
image.fillRect(5, 5, WIDTH-10, HEIGHT-10);
Font font = image.getFont();
font = font.deriveFont(FONT_SIZE);
image.setFont(font);
image.setColor(Color.WHITE);
image.drawString(title, 60, 100);
image.drawString(prefix + score, 60, 200);
setImage(image);
}
public void act()
{
// Add your action code here.
}
}
Kemudian
Compile
setelah
selesai adalah membuat project tersebut menjadi sebuah game dengan cara CTRL+E
SELESAI








Tidak ada komentar:
Posting Komentar