MULTIMEDIA
Study Kasus
“Pembuatan
Game Tetris Sederhana dengan menggunakan
Macromedia
Flash”
Laporan
ini disusun untuk memenuhi salah satu tugas mata kuliah
Multimedia
Disusun
Oleh :
PIPIT
FITRIANI
NPM
1000012
JURUSAN TEKNIK KOMPUTER D3
SEKOLAH TINGGI TEKNOLOGI GARUT
2013
BAB I
PENDAHULUAN
1.1
Latar Belakang
Lahirnya teknologi
multimedia adalah hasil dari perpaduan kemajuan teknologi elektronik, teknik
komputer dan perangkat lunak. Kemampuan penyimpanan dan pengolahan gambar
digital dalam belasan juta warna dengan resolusi tinggi serta reproduksi suara
maupun video dalam bentuk digital. Multimedia merupakan konsep dan teknologi
dari unsur - unsur gambar, suara, animasi serta video disatukan didalam
komputer untuk disimpan, diproses dan disajikan guna membentuk interaktif yang
sangat inovatif antara komputer dengan user. Teknologi Multimedia merupakan
perpaduan dari teknologi komputer baik perangkat keras maupun perangkat lunak
dengan teknologi elektronik, perkembangan serta pemanfaatan teknologi multimedia
banyak digunakan hampir diseluruh aspek kegiatan.
Multimedia adalah suatu sarana (media) yang didalamnya terdapat
perpaduan (kombinasi) berbagai bentuk elemen informasi, seperti teks, graphics,
animasi, video, interaktif maupun suara sebagai pendukung untuk mencapai
tujuannya yaitu menyampaikan informasi atau sekedar memberikan hiburan bagi
target audiens-nya. Multimedia sering digunakan dalam dunia hiburan seperti
game. Kata multimedia itu sendiri berasal dari kata multi (Bahasa
Latin) yang berarti banyak dan katamedia (Bahasa
Latin) yang berarti sesuatu yang dipakai untuk menyampaikan sesuatu
1.2
Tujuan
Adapun tujuan dari
laporan pembuatan game tetris ini adalah untuk memperkenalkan bagaimana Cara permainan game Tetris ini, sehinga
mempermudah user dalam penggunaannya.
BAB II
PEMBAHASAN
2.1
Concept
Game tetris ini bukanlah game yang baru di temukan
oleh pembuat, namun saya mencoba membuat game ini karena pada awalnya game
tetris ini sering kita jumpai / temukan dalam handephone atau sejenis geme yang
sering digunakan anak – anak pada umumnya. Game tetris ini sangat mudah untuk
dimaninkan karena tak juah beda pada game tetris yang ada di handphone. Yang
membedakan mungkin hanya tampilannya saja.
Tabel 1.1 Deskripsi
Konsep
Judul : “Pembuatan Game Tetris Sederhana dengan
menggunakan
Macromedia Flash”
|
Audiens
: Anak-anak dan Umum
|
Durasi :
Tidak Terbatas
|
Image : Gambar di gunakan dengan format Gif
|
Interaktivitas
: Start, Pause dan Exit
|
2.2
Design/Perancangan
Untuk menggambarkan perancangan dari tiap-tiap page,
perancangan storyboard untuk tahap ini harus di buat, penentuan tautan dari
page satu ke page lain akan menggunakan struktur flowchart.
2.3
Storyboard
Hasil dari perancangan storyboard akan menjadi acuan
dalam pembuatan tampilan pada
tahap implementasi.
Tabel
1.2 Storyboard secara ringkas
Scene1 : Sebagai scene
pembuka
|
Scene2 : Sebagai tampilan dari game
|
Scene2 : Sebagai
tampilan pada saat game over
|
Tabel 1.3 Storyboard Secara Lengkap
Judul Program
|
Tetris Game
|
Jenis Program
|
portable
|
Sistem Kendali
|
Keyboard, moseped Mouse
|
Background Setting
|
Multimedia
|
Sistem Aplikasi
|
Pada Tetris
Game ini menggunakan Keyboard
dengan arah pointer tanda panah ke atas, bawah, kiri, kanan. Dan dengan
menggunakan mouse.
|
Jumlah halaman
|
Terdiri
dari 2
halaman, Scene1
untuk tampilan awal
game, Scene2 tampilan pada saat game over
|
2.4 Struktur Navigasi / Flowchart
Gambar
2.1 Struktur Game Tetris
Ketika kita mulai
menggunakan game Tetris ini kita masuk ke interface game tetris dan
menggunakannya sesuai dengan keinginan kita karena durasinya tidak terbatas,
ketika kita sedang menggunakan game tetris ini dan game over kita bisa
mengakhiri permainan ini atau kita ulang kembali ke permainan awal.
2.5
Perangkat
yang di gunakan
Pada pembuatan game ini, perangkat yang
digunakan untuk adalah perangkat keras dan perangkat lunak. Perangkat keras
yang di gunakan mempunyai spesifikasi sebagai berikut :
1.
Processor : Intel Pentium (2.00GHz)
2.
RAM :
1 GHz
3.
Vga 250 MB
4.
Mouse
5.
Keyboard
6.
Hardisk 250 GB
Pada
perangkat lunak ini menggunakan :
1. Windows 7 Ultimate
2.
Macromedia Flash 8
2.6
Interface
2.6.1
Proses
Pembuatan Game Tetris
Gambar
2.2 Proses Pembuatan Tahap 1
Gambar
2.3 Proses Pembuatan Tahap 2
Pada proses pembuatan Game tahap 3 ini hampir sama dengan
tahap 2 tetapi yang membadakannya pada tahap 3 ini yang di aktifkan yang “Action Mask”
Gambar
2.4 Proses Pembuatan Tahap 3
Pada proses pembuatan Game tahap 4 ini hampir sama dengan
tahap 3 tetapi yang membadakannya pada tahap 4
ini yang di aktifkan hanya “Action”
saja
Gambar
2.5 Proses Pembuatan Tahap 4
Pada proses pembuatan Game tahap 5 ini menambahkan layar baru
untuk menambahkan icon-icon yang ada di dalam tetris. Dan di simpan di bawah “Action”, maka akan muncul icon pada
layar seperti di dibawah ini
Gambar
2.6 Proses Pembuatan Tahap 5
Pada proses pembuatan Game tahap 6 ini yang di aktifkan layar
Background, untuk menambhkan icon – icon dan nilai score, maka akan muncul icon pada layar seperti di dibawah ini
Gambar
2.7 Proses Pembuatan Tahap 6
Pada proses pembuatan Game tahap 7 ini yang di aktifkan layar
Action dan Background untuk memberikan nama “Click Strart” dan menambahkahn
lsiting program.
Gambar
2.8 Proses Pembuatan Tahap 7
Pada
proses ini adalah proses trakhir sebelum di isi listing program
Gambar
2.9 Proses Pembuatan Tahap 8
Ø Listing Progam Game Tetris
for (i=0; i<7; i++) {
_root["Tet"+i]._visible
= false;
_root["Tmp"+i]._visible
= false;
_root["Prev"+i]._visible
= false;
}
dep = Brick_0_0.getDepth();
duplicateMovieClip("GameOver",
"GameOver", dep+300);
this.createEmptyMovieClip("Grid",
dep+210);
Grid.lineStyle(0, 0x808080);
for (i=80; i<=180; i += 10) {
Grid.moveTo(i,
20);
Grid.lineTo(i,
220);
}
for (i=20; i<=220; i += 10) {
Grid.moveTo(80,
i);
Grid.lineTo(180,
i);
}
for (i=0; i<10; i++) {
for
(j=0; j<20; j++) {
duplicateMovieClip("Brick_0_0",
"Brick_"+i+"_"+j, dep++);
_root["Brick_"+i+"_"+j]._visible
= false;
_root["Brick_"+i+"_"+j]._x
= 80+i*10;
_root["Brick_"+i+"_"+j]._y
= 20+j*10;
}
}
delete dep;
function makeObject() {
activeObject._visible
= false;
activeObject
= _root["Tet"+previewObject];
tempObject
= _root["Tmp"+previewObject];
activeObject._x
= 130;
activeObject._y
= 10;
activeObject._visible
= true;
_root["Prev"+previewObject]._visible
= false;
previewObject
= random(7);
_root["Prev"+previewObject]._visible
= true;
}
previewObject = random(7);
makeObject();
function gameRun() {
if
(Key.isDown(Key.LEFT) && !move) {
if
(canLeft()) {
goal
= activeObject._x-10;
move
= 1;
}
}
if
(Key.isDown(Key.RIGHT) && !move) {
if
(canRight()) {
goal
= activeObject._x+10;
move
= 2;
}
}
if
(Key.isDown(Key.UP) && !move) {
if
(canRotate()) {
goal
= activeObject._currentframe+4;
if
(goal>13) {
goal
= 1;
}
move
= 3;
activeObject.play();
}
}
if
(Key.isDown(Key.DOWN) && !move) {
while
(canDown(10)) {
activeObject._y
+= 10;
}
while
(canDown(1)) {
activeObject._y
+= 1;
}
move
= 7;
}
switch
(move) {
case
1 :
if
(activeObject._x == goal) {
move
= 4;
}
else {
activeObject._x
-= 2;
}
break;
case
2 :
if
(activeObject._x == goal) {
move
= 4;
}
else {
activeObject._x
+= 2;
}
break;
case
3 :
if
(activeObject._currentframe == goal) {
move
= 4;
}
break;
case
7 :
if
(!Key.isDown(Key.DOWN)) {
move
= 0;
}
break;
default
:
if
(move) {
move++;
}
if
(move>5) {
move
= 0;
}
if
(!(wait--)) {
wait
= 2;
if
(canDown(1)) {
activeObject._y += 1;
}
else {
makeItDie();
makeObject();
getLineFull();
addLine(numLine);
clearInterval(runID);
if
(!numLine) {
animCount
= 0;
}
else {
animCount
= 10;
}
animID
= setInterval(animateRemoval, 75);
}
}
}
}
//setInterval(gameRun, 20);
function validPos(obj) {
var
pnt = obj.getBounds(_root);
var
OK = (pnt.xMin>79 && pnt.xMax<181 && pnt.yMax<221);
if
(OK) {
var
x0 = (pnt.xMin-80)/10;
var
y0 = Math.ceil((pnt.yMin-20)/10);
var
y00 = Math.floor((pnt.yMin-20)/10);
var
bp = new Array();
bp
= obj.getBrickPos();
for
(j=0; j<bp.length; j++) {
var
bpx = new array();
bpx
= bp[j];
for
(i=0; i<bpx.length; i++) {
if
(bpx[i]) {
OK
&= !_root["Brick_"+(x0+i)+"_"+(y0+j)]._visible;
OK
&= !_root["Brick_"+(x0+i)+"_"+(y00+j)]._visible;
}
}
}
}
return
(OK);
}
function canDown(down) {
tempObject.gotoAndStop(activeObject._currentframe);
tempObject._x
= activeObject._x;
tempObject._y
= activeObject._y+down;
return
(validPos(tempObject));
}
function canLeft() {
tempObject.gotoAndStop(activeObject._currentframe);
tempObject._x
= activeObject._x-10;
tempObject._y
= activeObject._y;
return
(validPos(tempObject));
}
function canRight() {
tempObject.gotoAndStop(activeObject._currentframe);
tempObject._x
= activeObject._x+10;
tempObject._y
= activeObject._y;
return
(validPos(tempObject));
}
function canRotate() {
var
frm = activeObject._currentframe;
if
(frm<13) {
tempObject.gotoAndStop(frm+4);
}
else {
tempObject.gotoAndStop(1);
}
tempObject._x
= activeObject._x;
tempObject._y
= activeObject._y;
return
(validPos(tempObject));
}
function makeItDie() {
var
pnt = activeObject.getBounds(_root);
var
x0 = (pnt.xMin-80)/10;
var
y0 = Math.ceil((pnt.yMin-20)/10);
var
bp = new Array();
bp
= activeObject.getBrickPos();
for
(j=0; j<bp.length; j++) {
var
bpx = new array();
bpx
= bp[j];
for
(i=0; i<bpx.length; i++) {
if
(bpx[i]) {
_root["Brick_"+(x0+i)+"_"+(y0+j)]._visible
= true;
}
}
}
}
function isLineFull(j) {
var
r = 0;
for
(i=0; (i<10) && (r == 0); i++) {
if
(!_root["Brick_"+i+"_"+j]._visible) {
r++;
}
}
return
(r);
}
function getLineFull() {
lineFull
= new Array(-1, -1, -1, -1);
numLine
= 0;
for
(j=19; (j>=0) && (numLine<=4); j--) {
if
(isLineFull(j) == 0) {
lineFull[numLine++]
= j;
}
}
}
function copyLine(dest, source) {
if
(dest == source) {
return;
}
if
(source>=0) {
for
(i=0; i<10; i++) {
_root["Brick_"+i+"_"+dest]._visible
= _root["Brick_"+i+"_"+source]._visible;
}
}
else {
for
(i=0; i<10; i++) {
_root["Brick_"+i+"_"+dest]._visible
= false;
}
}
}
function removeFullLine() {
if
(numLine == 0) {
return;
}
var
delta = 1;
var
dest = lineFull[0];
numLine--;
while
(dest>=0 && numLine>0) {
if
(delta<4) {
while
(dest-delta == lineFull[delta]) {
delta++;
numLine--;
}
}
copyLine(dest,
dest-delta);
dest--;
}
while
(dest>=0) {
copyLine(dest,
dest-delta);
dest--;
}
}
score = 0;
line = 0;
scoreTable = [1, 3, 6, 10];
function addLine(ln) {
line
+= ln;
score
+= scoreTable[ln-1];
}
function gameOverTest() {
if
(!canDown(5)) {
clearInterval(runID);
GameOver.text
= "Game Over";
GameOver._visible
= true;
btStart._visible
= true;
messageID
= setInterval(flashMessage, 350);
}
}
function flashMessage() {
GameOver._visible
= !GameOver._visible;
}
messageID = setInterval(flashMessage, 350);
function animateRemoval() {
if
(animCount--) {
for
(j=0; j<numLine; j++) {
for
(i=0; i<15; i++) {
_root["Brick_"+i+"_"+lineFull[j]]._alpha
-= 10;
}
}
}
else {
for
(j=0; j<numLine; j++) {
for
(i=0; i<15; i++) {
_root["Brick_"+i+"_"+lineFull[j]]._alpha
= 100;
}
}
clearInterval(animID);
runID
= setInterval(gameRun, 20);
removeFullLine();
gameOverTest();
}
}
BAB III
KESIMPULAN DAN
SARAN
3.1
Kesimpulan
Pada dasarnya multimedia adalah suatu sarana (media) yang
didalamnya terdapat perpaduan / kombinasi berbagai bentuk elemen informasi. Dan
kebanyakan dari multimedia ini digunakan untuk memediai sarana yang menunjang
hiburan orang dewasa pada umumnya. serta untuk menunjang hiburan dan edukasi
anak – anak.
3.2
Saran
Diharapkan media dan progmraming game
lebih memperhatikan edukasi kalangan anak – anak yang sedang berkembang dalam
pengetahuannya. Karena game itu tidak memberikan dampak negative saja tetapi
dampak postif . agar otak anak – anak lebih berfikir dalam memecahkan suatu masalah,
wahhh keren juga tuchhh
BalasHapusthank;s dachh
makasih..:)
Hapuswahhh bolehhh juga nichhh
BalasHapussukses ajh dach
Trimakasih bnyk..:)
Hapusminta detail langkah2nya dong
BalasHapuslangkah2 yg mna'y ? itu sudah ada...
Hapuswis mantep nih, share yang laen juga dong.
BalasHapussebelumnya makasih..
makasih....
Hapusshare yang mana nich ?..:)
Praktek dulu gan !!! kalau berminat saya tunggu kunbalnya ya!!!
BalasHapusminta source code fla nya dong... hihihhi
BalasHapusnewbie ni
itu ada mas...:)..Via Email sja mas...
Hapuska, minta dong file nya. kalau boleh kirim ke egydzulfahmi@gmail.com yah :D terimakasih.
Hapuska kirem dong projek nya , ane mau belajar ni
BalasHapusmuhammad.zubirr@gmail.com
nich pake aplikasi apa kak
BalasHapuska bisa jelasin script programnya gak?
BalasHapustrimakasih artikelnya membantu,tp ada program yg eror mohon bantuanya trimakasih untuk hari ini
BalasHapusthanks, infonya sangat membantu
BalasHapusgan ane minta source code nya dong, ini email ane grandturangan@gmail.com
BalasHapusTerimakasih tutorialnya bermanfaat banget,
BalasHapusIngin bisa desain grafis? Tapi bingung minta bantuan siapa? Belajar sendiri aja yuk.. kita lihat tutorialnya di
tutorial-tutorial gratis
ada software requirement spesification nya gk?
BalasHapusLangkah" proses tahapan pembuatan dan penggunaan tool" nya mana kak ? kirim lah
BalasHapuskeren game nya..
BalasHapusaku mau dong ..aku minta kode dan contoh proposalnya ya..aku buat TA kirimin ke email aku sadinsani1@gmail.com
BalasHapusmakasih