Membuat Game Pingpong Dengan Greenfoot
Tutorial Greenfoot kali ini saya akan membuat game pingpong, artikel sebelumnya saya juga membuat tutorial game pesawat jia kalian ingin membaca artikel tersebut kunjungi link ini. Langsung saja lihat tutorialnya di bawah.
- Buatlah project baru beri nama pingpong
- Buat class World baru dengan cara klik kanan>>new subclass>>masukkan nama class, begitu juga dengan class actor caranya sama. Tampilannya akan seperti di bawah.
-
Masukkan kode di bawah pada class bg (nama subclass world)
import greenfoot.*; /** * Write a description of class bg here. * * @author Nunut <kurnia8998@gmail.com> * @version 1.0.0 */ public class bg extends World { Counter counter = new Counter("Skor: "); /** * Constructor for objects of class bg. * */ public bg() { // Create a new world with 600x400 cells with a cell size of 1x1 pixels. super(400, 600, 1); addObject(counter,70,530); } public void tambah(){ counter.add(5); } }
Lalu compile kode tersebut -
Masukkan juga kode di bawah ini pada class bola agar bola dapat bergerak dan memantul pada dinding
import greenfoot.*; /** * Write a description of class bola here. * * @author Nunut <kurnia8998@gmail.com> * @version 1.0.0 */ public class bola extends Actor { int x=3; int y=3; /** * Act - do whatever the bola wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { // Add your action code here. gerak(); kanan(); kiri(); atas(); papankayu(); } public void gerak() { setLocation(getX()+x,getY()+y); } public void kanan() { if(getX()>=getWorld().getWidth()-getImage().getWidth()/2){ x=x-1; } } public void kiri() { if(getX()<=getImage().getWidth()/2){ x=x+1; } } public void atas() { Actor batamerah=getOneIntersectingObject(bata.class); if(getY()<=getImage().getHeight()/2){ y=y+1; } if(batamerah !=null){ ((bg)getWorld()).tambah(); getWorld().removeObject(batamerah); } } public void papankayu() { Actor kayu=getOneIntersectingObject(papan.class); if(kayu !=null){ y=y-1; } if(getY()>=getWorld().getHeight()-getImage().getHeight()/2){ Greenfoot.stop(); } } }
dan kode di bawah ini masukkan pada class papan agar papan bisa kita gerakan ke kiri dan kananimport greenfoot.*; /** * Write a description of class papan here. * * @author Nunut <kurnia8998@gmail.com> * @version 1.0.0 */ public class papan extends Actor { /** * Act - do whatever the papan wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { // Add your action code here. if(Greenfoot.isKeyDown("left")){ move(-3); } if(Greenfoot.isKeyDown("right")){ move(3); } } }
kode di bawah ini untuk memperkecil ukuran gambar asli bata menjadi sesuai yang kita butuhkanimport greenfoot.*; /** * Write a description of class bata here. * * @author Nunut <kurnia8998@gmail.com> * @version 1.0.0 */ public class bata extends Actor { /** * Act - do whatever the bata wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public bata() { GreenfootImage img=getImage(); img.scale(img.getWidth(),img.getHeight()-30); setImage(img); } public void act() { // Add your action code here. } }
-
Langkah terakhir yaitu membuat papan sekor dengan menempatkan kode pada class counter
import greenfoot.*; import java.awt.Font; /** * Write a description of class Counter here. * * @author Nunut <kurnia8998@gmail.com> * @version 1.0.0 */ public class Counter extends Actor { /** * Act - do whatever the Counter wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ 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)); // use larger font 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); } }
Tutorial di atas sebenarnya saya mempelajarinya dari youtube Kalian juga bisa mendownload projectnya di sini