PImage img;
PFont fontA;
int sphereDiameter = 10;
boolean shoot = false;
int randx()
{
return int(random(600));
}
int[] sphereXCoords = {
randx(), randx(), randx(), randx(), randx() };
int[] sphereYCoords = { 0, 0,
0, 0, 0 };
void setup()
{
size(600,620);
size(600,620);
// Make a new instance of a
PImage by loading an image file
img =
loadImage("tes.png");
}
void draw()
{
background(0);
// Draw the image to the
screen at coordinate (0,0)
image(img,0,0);
fill(color(0,255,0));
stroke(color(0,255,0));
triangle(mouseX-8, 580,
mouseX+8, 580, mouseX, 565);
fill(color(255,0,0));
stroke(color(255,0,0));
if(shoot==true)
{
sphereKiller(mouseX);
shoot = false;
}
sphereDropper();
gameEnder();
}
void mousePressed()
{
shoot = true;
}
void sphereDropper()
{
stroke(255);
fill(255);
for (int i=0; i<5; i++)
{
ellipse(sphereXCoords[i], sphereYCoords[i]++,
sphereDiameter,
sphereDiameter);
}
}
void sphereKiller(int shotX)
{
boolean hit = false;
for (int i = 0; i < 5;
i++)
{
if((shotX >=
(sphereXCoords[i]-sphereDiameter/2)) &&
(shotX <=
(sphereXCoords[i]+sphereDiameter/2)))
{
hit = true;
line(mouseX, 565, mouseX,
sphereYCoords[i]);
ellipse(sphereXCoords[i],
sphereYCoords[i],
sphereDiameter+25, sphereDiameter+25);
sphereXCoords[i] =
randx();
sphereYCoords[i] = 0;
}
}
if(hit == false)
{
line(mouseX, 565, mouseX,
0);
}
}
void gameEnder()
{
for (int i=0; i< 5; i++)
{
if(sphereYCoords[i]==600)
{
fill(color(255,0,0));
noLoop();
}
}
}
PImage img;
PFont fontA;
int
sphereDiameter = 10;
boolean shoot = false;
pertama-tama
kita mulai dengan mendeklarasikan semua variable dan tipe data yang akan kita
gunakan dalam pembuat program game ini.
void setup()
{
size(600,620);
size(600,620);
//
Make a new instance of a PImage by loading an image file
img
= loadImage("tes.png");
}
Dari potongan
kode-kode diatas kita dapat mengetahui hal-hal apa saja yang kita mulai saat
program akan dijalankan. Dimulai dari pembentukan layout, bahwa ukuram layout
yang dibuat untuk area game ini 600 x 620, serta kita juga menambahkan sebuah background
gambar agar tampilan game ini tidak monoton.
void draw()
{
background(0);
// Draw the image to the screen at coordinate (0,0)
image(img,0,0);
fill(color(0,255,0));
stroke(color(0,255,0));
triangle(mouseX-8, 580, mouseX+8, 580, mouseX, 565);
fill(color(255,0,0));
stroke(color(255,0,0));
if(shoot==true)
{
sphereKiller(mouseX);
shoot = false;
}
sphereDropper();
gameEnder();
}
Pada image(img,0,0); kita gunakan untuk
menampilkan background dari gambar yang akan kita input.
Selanjutnya triangle(mouseX-8, 580, mouseX+8, 580,
mouseX, 565); potongan program ini adalah untuk merubah pointer mouse
menjadi bentuk segitiga yang nantinya akan kita gunakan sebagai pesawat untuk
menembak-nembak dalam permainan ini.
Sedangkan pada
sphereDropper();
gameEnder();
digunakan
untuk mengakhiri game, dimana kondisinya bila bola-bola yang jatuh mencapai
dasar dari layout.
void sphereDropper()
{
stroke(255);
fill(255);
for (int i=0; i<5; i++)
{
ellipse(sphereXCoords[i], sphereYCoords[i]++,
sphereDiameter, sphereDiameter);
}
}
Disini kita
memberikan kondisi dimana permainan akan berakhir bila bola-bola yang jatuh
mencapi dasar dari layout yang kita buat.
void sphereKiller(int shotX)
{
boolean hit = false;
for (int i = 0; i < 5; i++)
{
if((shotX >= (sphereXCoords[i]-sphereDiameter/2)) &&
(shotX <= (sphereXCoords[i]+sphereDiameter/2)))
{
hit = true;
line(mouseX, 565, mouseX, sphereYCoords[i]);
ellipse(sphereXCoords[i], sphereYCoords[i],
sphereDiameter+25,
sphereDiameter+25);
sphereXCoords[i] = randx();
sphereYCoords[i] = 0;
}
}
if(hit == false)
{
line(mouseX, 565, mouseX, 0);
}
}
Potongan program
diatas digunakan untuk memberikan kondisi dimana saat kita mengklik mouse maka
laser berwarna merah akan ditembakkan untuk menghancukkan bola-bola yang
berjatuhan.
void gameEnder()
{
for (int i=0; i< 5; i++)
{
if(sphereYCoords[i]==600)
{
fill(color(255,0,0));
noLoop();
}
}
}
Terakhir bila
bola telah jatuh dan sampai kebawah dasar layout, maka game akan diakhiri.
Test Game :
Disini kita
akan menguji coba game yang telah kita buat.
Tampilan Pada Processing :
Tampilan saat kita memulai permainan :
Tampilan
Saat Game Berakhir :