Anda di halaman 1dari 12

Tugas kelompok Greenfoot

Judul petualangan maman

Nama Kelompok
Yusuf adi setyawan
Ari hermawan
Budianur citra
Marwan dwi hardi

Alur cerita

Berlatar belakang suasana siang sebut saja si maman sedang


berpetualang di kota jakarta dengan bantuan awan terbang dan blok blok
si maman melewatinya
Gambar yang di gunakan

Proses pembuatan dan source code


1. Buka aplikasi greenfoot
2. Pilih new -> Scenario

3. Tulis nama projectnya lalu save


4. Maka akan terbentuk dalam workspace

5. Kita akan memberi background disini kita menggunakan dua


background yaitu suasana pagi dan kota jakarta.

6. Buat dua buah newsubclass dengan cara klik kanan new subclass
pada world
7. Pilih source gambar lalu beri nama class tersebut

8. Pada actor buat dengan cara yang sama masukan nama class dan
source gambar
9. Compile terlebih dahulu setelah membuat level1 dan level 2 agar
backround nampak

10.
Setelah semua siap gambar tinggal di import ke dalam
background tersebut dengan cara klik pada entity yang di inginkan
lalu klik kanan (new namakonten())

11.

Geser kedalam background

12.

Lalukan dengan cara yang sama untuk semua

13.
Untuk memasukan koding klik kanan pada entity lalu pili open
editor lakukan dengan cara yang sama untuk memasukan koding
pada entity yang lain

Koding
1.1

pada level 1

import greenfoot.*; // (World, Actor, GreenfootImage, and


Greenfoot)
/**
* Ini adalah seluruh adegan. Ini menciptakan dan berisi bendabenda yang ada di dalamnya.
*/
public class Level1 extends World
{
public Level1()
{
this (new Maman());
}
public Level1(Maman maman)
{
super(750, 500, 1); // define size and resolution
addObject ( new Ground(false), 85, 441);
addObject ( new Ground(true), 665, 441);
addObject ( new Cloud(), 369, 315 );
addObject ( maman, 66, 244 );
}
}
1.2

pada level 2

import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot


and MouseInfo)
/**
* Write a description of class Level2 here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Level2 extends World
{
public Level2()
{
this(new Maman());
}

public Level2(Maman maman)


{
// Create a new world with 600x400 cells with a cell size of
1x1 pixels.
super(750, 500, 1);
addObject ( new Ground("ground2.png"), 112, 337);
addObject ( new Ground("ground2.png"), 570, 270);
addObject ( maman, 66, 244 );
}
}
1.3

pada Cloud

import greenfoot.*; // (World, Actor, GreenfootImage, and


Greenfoot)
/**
* Sebuah awan yang bergerak bolak-balik antara dua titik yang
telah ditentukan.
*/
public class Cloud extends Actor
{
private int speed = 4;
private int leftTurn = 270;
private int rightTurn = 480;
/**
* Bergerak ke arah kami sedang bergerak masuk putaran jika
kita mencapai titik balik.
*/
public void act()
{
setLocation ( getX() + speed, getY() );
Actor actor = getOneIntersectingObject(null);
if(actor != null) {
actor.setLocation ( actor.getX() + speed, actor.getY() );
}
if (atTurningPoint()) {
speed = -speed;
}
}
/**
* Menguji apakah kita berada di salah satu titik balik.
*/

public boolean atTurningPoint()


{
return (getX() <= leftTurn || getX() >= rightTurn);
}
}
1.4

pada Ground

import greenfoot.*; // (World, Actor, GreenfootImage, and


Greenfoot)
public class Ground extends Actor
{
public Ground()
{
}
public Ground(String image)
{
setImage(image);
}
public Ground(boolean flip)
{
if (flip) {
getImage().mirrorHorizontally();
}
}
}
1.5

pada mover

import greenfoot.*; // (World, Actor, GreenfootImage, and


Greenfoot)
/**
* Kelas Mover menyediakan beberapa metode gerakan dasar.
Gunakan ini sebagai superclass
*untuk aktor-aktor lain yang harus mampu untuk bergerak ke kiri
dan kanan, melompat dan jatuh
*bawah.
*/
public class Mover extends Actor
{
private static final int acceleration = 2;
// turun (gravitasi)

private static final int speed = 7;


(sideways)
private int vSpeed = 0;
saat ini

// kecepatan lari
// kecepatan vertikal

/**
* Bergerak sedikit ke kanan.
*/
public void moveRight()
{
setLocation ( getX() + speed, getY() );
}
/**
* Bergerak sedikit ke kiri.
*/
public void moveLeft()
{
setLocation ( getX() - speed, getY() );
}
/**
* Mengembalikan true jika kita berada di tanah perusahaan
bahwa kita dapat berdiri di atas.
*/
public boolean onGround()
{
Object under = getOneObjectAtOffset(0,
getImage().getHeight()/2-8, null);
return under != null;
}
/**
* Mengatur kecepatan untuk gerakan vertikal. Nilai-nilai positif
turun, nilai negatif
* go up.
*/
public void setVSpeed(int speed)
{
vSpeed = speed;
}
/**
* Terapkan gravitasi dan jatuh ke bawah sampai kita
menyentuh tanah atau bawah layar.
*/
public void fall()
{

setLocation ( getX(), getY() + vSpeed);


vSpeed = vSpeed + acceleration;
if ( atBottom() )
gameEnd();
}
/**
* Mengembalikan true jika kita berada di bawah layar.
*/
private boolean atBottom()
{
return getY() >= getWorld().getHeight() - 2;
}
/**
* Mengakhiri permainan ini (yaitu: menghentikan simulasi).
*/
private void gameEnd()
{
Greenfoot.stop();
}
}
1.6

pada karakter maman

import greenfoot.*; // (World, Actor, GreenfootImage, and


Greenfoot)
public class Maman extends Mover
{
private static final int jumpStrength = 16;
private int level;
private int jumped = 0;
public Maman()
{
level = 1;
}
public void act()
{
checkKeys();
checkFall();
checkNextLevel();
}

private void checkKeys()


{
if (Greenfoot.isKeyDown("left") )
{
setImage("maman-kiri.png");
moveLeft();
}
if (Greenfoot.isKeyDown("right") )
{
setImage("maman-kanan.png");
moveRight();
}
if (Greenfoot.isKeyDown("space") )
{
if (onGround())
jump();
}
}
private void jump()
{
setVSpeed(-jumpStrength);
fall();
jumped++;
}
private void checkFall()
{
if (onGround()) {
setVSpeed(0);
}
else {
fall();
}
}
/**
* Periksa apakah kita harus pergi ke tingkat berikutnya, dan
jika ya, mulai tingkat berikutnya.
*/
private void checkNextLevel()
{
if (getX() == getWorld().getWidth()-1) {
if (level == 1) {
level = 2;
getWorld().removeObject(this);
Greenfoot.setWorld(new Level2(this));
}
else {

level = 1;
getWorld().removeObject(this);
Greenfoot.setWorld(new Level1(this));
}
}
}
}