Game edukasi yang dibuat dalam project ini adalah game yang mengasah otak sebuah karakteristik dari bidang geometri, persamaan dan objek lainnya atau byasa disebut dengan simetri. Dalam game ini anda akan disuruh mencari jalan dengan menekan tombol arah pada keyboard. Apabila anda dapat mencari jalan dngan tepat maka permainan tersebut aan menuju level selanjutnya. Dalam permainann ini juga terdapat waktu untuk menyelesaikannya. Jika ssampai pada waktu yang ditentukan anda belum bisa menemukan jalan yang benar maka permainan berakhir.
Dalam perancangan game ini kami kerjakan secara berkelompok :
1. Arnoldus Billy
2. Danang Panji
3. Johanes Paulus
4. Sendy Y Samarani Dachi
5. Taufik Umar
1. Arnoldus Billy
2. Danang Panji
3. Johanes Paulus
4. Sendy Y Samarani Dachi
5. Taufik Umar
Dalam pembuatan game ini hal pertama yang harus dilakukan adalah membuat perancangan tampilan. Setelah itu kita masukan beberapa koding dalam pembuatan aplikasi ini agar aplikasi tersebut dapat dijalankan dengan lebih baik lagi.
Langkah - langkah pembuatan koding :
1. Pada Layer Action di Scene utama atau pada halaman utama, kita buat sebuah key frame baru. setelah itu masukkan koding :
level = 1;
function Variabel_Baris_1()
{ _root.baris0 = "XXXXXXXXXXXXXXXXX";
_root.baris1 = "XOOOOOOOXOOOOOOOX";
_root.baris2 = "XXXXXOXXXXXOXXXXX";
_root.baris3 = "XOOOOOOOXOOOOOOOX";
_root.baris4 = "XOXXXXXXXXXXOXXXX";
_root.baris5 = "XOOOOOOOXOOOOOOOX";
_root.baris6 = "XXXXOXXXXXXXOXXXX";
_root.baris7 = "XOO_OOOOXOOOOOOXX";
_root.baris8 = "XXXXXXXOXXOXXOXXX";
_root.baris9 = "XOOOOOOOXOOOOOOOX";
_root.baris10 = "XXXOXOXXXXXXXOXXX";
_root.baris11 = "XOOOOOOOXOOOOOOOX";
_root.baris12 = "XXXXXXXOXXXXXXXOX";
_root.baris13 = "XOOOOOOOXOOOOOOOX";
_root.baris14 = "XXXXOXXXXXXXXXOXX";
_root.baris15 = "XOOOOOOOXOOOOOOOX";
_root.baris16 = "XXXXXXXXXXXXXXXXX";
}
function Variabel_Baris_2()
{ _root.baris0 = "XXXXXXXXXXXXXXXXX";
_root.baris1 = "XOOOOOOOXOOOOOOOX";
_root.baris2 = "XXOXXXXXXXOXXXOXX";
_root.baris3 = "XOOOOOOOXOOOOOOOX";
_root.baris4 = "XXXOXOXXXXXXOXXXX";
_root.baris5 = "XOOOOOOOXOOOOOOOX";
_root.baris6 = "XXXXXOXXXXOXXXXXX";
_root.baris7 = "XOOOOOOOXOOOOOOOX";
_root.baris8 = "XXXXXOXXXXOXXXXOX";
_root.baris9 = "XOOOOOOOXOOOOOOOX";
_root.baris10 = "XXXXXOXXXXXOXXXOX";
_root.baris11 = "XOOOOOOOXOO_OOOOX";
_root.baris12 = "XXXXXOXXXXXXXOXOX";
_root.baris13 = "XOOOOOOOXOOOOOOOX";
_root.baris14 = "XXXXXXOXXXXXXXOXX";
_root.baris15 = "XOOOOOOOXOOOOOOOX";
_root.baris16 = "XXXXXXXXXXXXXXXXX";
}
Koding diatas merupakan koding untuk menampilkan batas atau tembok penghalang seperti pada gambar dibawah ini.

2. Langkah kedua adalah membuat koding untuk memberikan sebuah perubahan pada batas atau tembok penghalang jika permainan menuju level selanjutnya. koding yang diberikan adalah :
if (level == 1) {
_root.Variabel_Baris_1();
} else {
_root.Variabel_Baris_2();
}
jumlah = 0;
for (i=0; i<=16; i++) {
for (j=0; j<=17; j++) {
pos = substring(eval("baris"+i), j+1, 1);
if (pos == "X") {
duplicateMovieClip(rock, "rock"+jumlah, 100+jumlah);
setProperty("rock"+jumlah, _x, 20*j);
setProperty("rock"+jumlah, _y, 20*i);
jumlah++;
} else if (pos == "_") {
setProperty(jebakan, _x, 20*j);
setProperty(jebakan, _y, 20*i);
}
}
}
setProperty("rock", _visible, 0);
pada tampilan aplikasi setelah dijalankan akan membentuk seperti ini :

3. Langkah ke tiga adalah membuat sebuah koding agar objek tidak dapat melewati batas - batas dan pada aplikasi ini diberikan sebuah jebakan. Jadi apabila objek mengenai jebakan tersebut, maka permainan akan berhenti. Kodingnya adalah :
x_p2 = p2._x/20;
y_p2 = p2._y/20;
x_p1 = p1._x/20;
y_p1 = p1._y/20;
batas_kiri_p1 = substring(eval("baris"+y_p1),x_p1,1);
batas_kanan_p1 = substring(eval("baris"+y_p1),x_p1+2,1);
batas_bawah_p1 = substring(eval("baris"+Number(y_p1+1)),x_p1+1,1);
batas_atas_p1 = substring(eval("baris"+Number(y_p1-1)),x_p1+1,1);
batas_kiri_p2 = substring(eval("baris"+y_p2),x_p2,1);
batas_kanan_p2 = substring(eval("baris"+y_p2),x_p2+2,1);
batas_bawah_p2 = substring(eval("baris"+Number(y_p2+1)),x_p2+1,1);
batas_atas_p2 = substring(eval("baris"+Number(y_p2-1)),x_p2+1,1);
if (x_p1==9 && y_p1==1 && x_p2==7 && y_p2==1) {
gotoAndStop("You Win");
} else if ((p1._x==jebakan._x && p1._y==jebakan._y) || ((p2._x==jebakan._x && p2._y==jebakan._y)) || (timer.detik==0)) {
gotoAndStop("You Loose");
}
4. Lalu Langkah ke - empat adalah membuat key frame baru dan membuat koding untuk memulai aplikasi permainan tersebut :
gotoAndPlay("loop");
5. Berikutnya adalah membuat berikan tindakan apabila aplikasi tersebut telah selesai dijalankan atau objek melewati jebakan yang diberikan atau juga objek tidak dapat menyelesaikan permainan hingga waktu yang ditentukan selesai. Dengan koding :
stop();
for (i=0; i<=jumlah; i++) {
removeMovieClip("rock"+i);
}
6. Setelah itu kita membuat waktu untuk permainan ini dengan koding :
onClipEvent (load) {
detik = 35;
timer = 12;
}
onClipEvent (enterFrame) {
timer--;
if (timer == 0) {
detik--;
timer = 12;
}
}
7. Kali ini kita akan membuat nilai awal untuk objek pada saat kita memulai permainan ini dengan koding :
Koding untuk Objek pertama :
onClipEvent (load) {
_x = 7*20;
_y = 15*20;
}
Koding untuk Objek kedua :
onClipEvent (load) {
_x = 9*20;
_y = 15*20;
}
8. Lalu untuk mengarahkan objek ini kita menggunakan kita menggunakan keyboard. untuk mengarahkan dengan keyboard dibutuhkan koding agar dapat di mengerti oleh aplikasi ini. kodingnya adalah :
on (keyPress "") {
if (batas_kanan_p1<>"X") {
p1._x = p1._x+20;
}
if (batas_kiri_p2<>"X") {
p2._x = p2._x-20;
}
}
on (keyPress "") {
if (batas_kiri_p1<>"X") {
p1._x = p1._x-20;
}
if (batas_kanan_p2<>"X") {
p2._x = p2._x+20;
}
}
on (keyPress "") {
if (batas_atas_p1<>"X") {
p1._y = p1._y-20;
}
if (batas_atas_p2<>"X") {
p2._y = p2._y-20;
}
}
on (keyPress "") {
if (batas_bawah_p1<>"X") {
p1._y = p1._y+20;
}
if (batas_bawah_p2<>"X") {
p2._y = p2._y+20;
}
}
9. Setelah itu kita membuat nilai awal untuk garis finish atau objek yang menyatakan bahwa objek - objek yang kita jalankan telah sampai di tujuannya.
Untuk Objek finish pertama :
onClipEvent (load) {
setProperty(this, _x, 7*20);
setProperty(this, _y, 20);
}
Untuk objek finish kedua :
onClipEvent (load) {
setProperty(this, _x, 9*20);
setProperty(this, _y, 20);
}
Setelah koding datas telah dimasukkan, maka aplikasi tersebut dapat dijalankan. Untuk mengetahui cara memainkan aplikasi ini, silahkan klik di sini.
Langkah - langkah pembuatan koding :
1. Pada Layer Action di Scene utama atau pada halaman utama, kita buat sebuah key frame baru. setelah itu masukkan koding :
level = 1;
function Variabel_Baris_1()
{ _root.baris0 = "XXXXXXXXXXXXXXXXX";
_root.baris1 = "XOOOOOOOXOOOOOOOX";
_root.baris2 = "XXXXXOXXXXXOXXXXX";
_root.baris3 = "XOOOOOOOXOOOOOOOX";
_root.baris4 = "XOXXXXXXXXXXOXXXX";
_root.baris5 = "XOOOOOOOXOOOOOOOX";
_root.baris6 = "XXXXOXXXXXXXOXXXX";
_root.baris7 = "XOO_OOOOXOOOOOOXX";
_root.baris8 = "XXXXXXXOXXOXXOXXX";
_root.baris9 = "XOOOOOOOXOOOOOOOX";
_root.baris10 = "XXXOXOXXXXXXXOXXX";
_root.baris11 = "XOOOOOOOXOOOOOOOX";
_root.baris12 = "XXXXXXXOXXXXXXXOX";
_root.baris13 = "XOOOOOOOXOOOOOOOX";
_root.baris14 = "XXXXOXXXXXXXXXOXX";
_root.baris15 = "XOOOOOOOXOOOOOOOX";
_root.baris16 = "XXXXXXXXXXXXXXXXX";
}
function Variabel_Baris_2()
{ _root.baris0 = "XXXXXXXXXXXXXXXXX";
_root.baris1 = "XOOOOOOOXOOOOOOOX";
_root.baris2 = "XXOXXXXXXXOXXXOXX";
_root.baris3 = "XOOOOOOOXOOOOOOOX";
_root.baris4 = "XXXOXOXXXXXXOXXXX";
_root.baris5 = "XOOOOOOOXOOOOOOOX";
_root.baris6 = "XXXXXOXXXXOXXXXXX";
_root.baris7 = "XOOOOOOOXOOOOOOOX";
_root.baris8 = "XXXXXOXXXXOXXXXOX";
_root.baris9 = "XOOOOOOOXOOOOOOOX";
_root.baris10 = "XXXXXOXXXXXOXXXOX";
_root.baris11 = "XOOOOOOOXOO_OOOOX";
_root.baris12 = "XXXXXOXXXXXXXOXOX";
_root.baris13 = "XOOOOOOOXOOOOOOOX";
_root.baris14 = "XXXXXXOXXXXXXXOXX";
_root.baris15 = "XOOOOOOOXOOOOOOOX";
_root.baris16 = "XXXXXXXXXXXXXXXXX";
}
Koding diatas merupakan koding untuk menampilkan batas atau tembok penghalang seperti pada gambar dibawah ini.
2. Langkah kedua adalah membuat koding untuk memberikan sebuah perubahan pada batas atau tembok penghalang jika permainan menuju level selanjutnya. koding yang diberikan adalah :
if (level == 1) {
_root.Variabel_Baris_1();
} else {
_root.Variabel_Baris_2();
}
jumlah = 0;
for (i=0; i<=16; i++) {
for (j=0; j<=17; j++) {
pos = substring(eval("baris"+i), j+1, 1);
if (pos == "X") {
duplicateMovieClip(rock, "rock"+jumlah, 100+jumlah);
setProperty("rock"+jumlah, _x, 20*j);
setProperty("rock"+jumlah, _y, 20*i);
jumlah++;
} else if (pos == "_") {
setProperty(jebakan, _x, 20*j);
setProperty(jebakan, _y, 20*i);
}
}
}
setProperty("rock", _visible, 0);
pada tampilan aplikasi setelah dijalankan akan membentuk seperti ini :
3. Langkah ke tiga adalah membuat sebuah koding agar objek tidak dapat melewati batas - batas dan pada aplikasi ini diberikan sebuah jebakan. Jadi apabila objek mengenai jebakan tersebut, maka permainan akan berhenti. Kodingnya adalah :
x_p2 = p2._x/20;
y_p2 = p2._y/20;
x_p1 = p1._x/20;
y_p1 = p1._y/20;
batas_kiri_p1 = substring(eval("baris"+y_p1),x_p1,1);
batas_kanan_p1 = substring(eval("baris"+y_p1),x_p1+2,1);
batas_bawah_p1 = substring(eval("baris"+Number(y_p1+1)),x_p1+1,1);
batas_atas_p1 = substring(eval("baris"+Number(y_p1-1)),x_p1+1,1);
batas_kiri_p2 = substring(eval("baris"+y_p2),x_p2,1);
batas_kanan_p2 = substring(eval("baris"+y_p2),x_p2+2,1);
batas_bawah_p2 = substring(eval("baris"+Number(y_p2+1)),x_p2+1,1);
batas_atas_p2 = substring(eval("baris"+Number(y_p2-1)),x_p2+1,1);
if (x_p1==9 && y_p1==1 && x_p2==7 && y_p2==1) {
gotoAndStop("You Win");
} else if ((p1._x==jebakan._x && p1._y==jebakan._y) || ((p2._x==jebakan._x && p2._y==jebakan._y)) || (timer.detik==0)) {
gotoAndStop("You Loose");
}
4. Lalu Langkah ke - empat adalah membuat key frame baru dan membuat koding untuk memulai aplikasi permainan tersebut :
gotoAndPlay("loop");
5. Berikutnya adalah membuat berikan tindakan apabila aplikasi tersebut telah selesai dijalankan atau objek melewati jebakan yang diberikan atau juga objek tidak dapat menyelesaikan permainan hingga waktu yang ditentukan selesai. Dengan koding :
stop();
for (i=0; i<=jumlah; i++) {
removeMovieClip("rock"+i);
}
6. Setelah itu kita membuat waktu untuk permainan ini dengan koding :
onClipEvent (load) {
detik = 35;
timer = 12;
}
onClipEvent (enterFrame) {
timer--;
if (timer == 0) {
detik--;
timer = 12;
}
}
7. Kali ini kita akan membuat nilai awal untuk objek pada saat kita memulai permainan ini dengan koding :
Koding untuk Objek pertama :
onClipEvent (load) {
_x = 7*20;
_y = 15*20;
}
Koding untuk Objek kedua :
onClipEvent (load) {
_x = 9*20;
_y = 15*20;
}
8. Lalu untuk mengarahkan objek ini kita menggunakan kita menggunakan keyboard. untuk mengarahkan dengan keyboard dibutuhkan koding agar dapat di mengerti oleh aplikasi ini. kodingnya adalah :
on (keyPress "
if (batas_kanan_p1<>"X") {
p1._x = p1._x+20;
}
if (batas_kiri_p2<>"X") {
p2._x = p2._x-20;
}
}
on (keyPress "
if (batas_kiri_p1<>"X") {
p1._x = p1._x-20;
}
if (batas_kanan_p2<>"X") {
p2._x = p2._x+20;
}
}
on (keyPress "
if (batas_atas_p1<>"X") {
p1._y = p1._y-20;
}
if (batas_atas_p2<>"X") {
p2._y = p2._y-20;
}
}
on (keyPress "
if (batas_bawah_p1<>"X") {
p1._y = p1._y+20;
}
if (batas_bawah_p2<>"X") {
p2._y = p2._y+20;
}
}
9. Setelah itu kita membuat nilai awal untuk garis finish atau objek yang menyatakan bahwa objek - objek yang kita jalankan telah sampai di tujuannya.
Untuk Objek finish pertama :
onClipEvent (load) {
setProperty(this, _x, 7*20);
setProperty(this, _y, 20);
}
Untuk objek finish kedua :
onClipEvent (load) {
setProperty(this, _x, 9*20);
setProperty(this, _y, 20);
}
Setelah koding datas telah dimasukkan, maka aplikasi tersebut dapat dijalankan. Untuk mengetahui cara memainkan aplikasi ini, silahkan klik di sini.

