Selasa, 26 Mei 2015

Membuat Game Pingpong Dengan Greenfoot

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.

  1. Buatlah project baru beri nama pingpong
  2. 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.

  3. 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
  4. 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 kanan
    import 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 butuhkan
    import 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.
        }    
    }
    

  5. 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);
        }
    }
    

setelah semuanya di compile sekarang kita tinggal menempatkan class actor pada world yaitu dengan cara klik kanan pada class actor>>new bata lihat gambar di bawah

kemudian drag class bata dan tempatkan pada world dan hasilnya akan seperti ini

Tutorial di atas sebenarnya saya mempelajarinya dari youtube Kalian juga bisa mendownload projectnya di sini

0 komentar:

Posting Komentar