Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
PERANCANGAN DAN PEMBUATAN APLIKASI GAME
ADVENTURE BERBASIS 2D MENGGUNAKAN ADOBE FLASH
CS6 ACTIONSCRIPT 3.0
TUGAS AKHIR
REYNALDO FREDERIKUS NAINGGOLAN
142406010
PROGRAM STUDI D3 TEKNIK INFORMATIKA
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2017
Universitas Sumatera Utara
PERANCANGAN DAN PEMBUATAN APLIKASI GAME
ADVENTURE BERBASIS 2D MENGGUNAKAN ADOBE FLASH
CS6 ACTIONSCRIPT 3.0
TUGAS AKHIR
Diajukan untuk melengkapi tugas dan memenuhi syarat memeperoleh Ahli
Madya
REYNALDO FREDERIKUS NAINGGOLAN
142406010
PROGRAM STUDI D3 TEKNIK INFORMATIKA
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2017
Universitas Sumatera Utara
i
Universitas Sumatera Utara
ii
PERNYATAAN
PERANCANGAN DAN PEMBUATAN APLIKASI GAMEADVENTURE
BERBASIS 2D MENGGUNAKAN ADOBE FLASH CS6 ACTIONSCRIPT 3.0
TUGAS AKHIR
Saya mengakui bahwa tugas akhir ini adalah hasil karya sendiri. Kecuali beberapa
kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Juli 2017
Reynaldo Frederikus Nainggolan
142406010
Universitas Sumatera Utara
iii
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Pemurah dan
Maha Penyayang, dengan limpah karunia-Nya Penulis dapat menyelesaikan
penyusunan Tugas Akhir ini dengan judul Perancangan dan Pembuatan Aplikasi
Game Adventure berbasis 2D menggunakan Adobe Flash CS6 ActionScript 3.0.
Terimakasih penulis sampaikan kepada Bapak Drs. Rosman Siregar, M.Si.
selaku pembimbing yang telah meluangkan waktunya selama penyusunan Tugas
Akhir ini. Terima kasih kepada Ibu Dr. Dra. Elly Rosmaini, M.Si. sebagai Dosen
Pembimbing Akademik yang telah membimbing penulis selama duduk di bangku
perkuliahan. Terimakasih kepada Ibu Dra. Normalina Napitupulu, M.Sc. dan
Bapak Drs. James Piter Marbun, M.Kom selaku Ketua dan Sekretaris Program
Studi D3 Teknik Informatika FMIPA USU Medan, Dekan dan Wakil Dekan
FMIPA USU, seluruh Staff dan Dosen Program Studi D3 Teknik Informatika
FMIPA USU, pegawai FMIPA USU dan rekan-rekan kuliah. Akhirnya tidak
terlupakan kepada Bapak, Ibu dan keluarga yang selama ini memberikan bantuan
dan dorongan yang diperlukan. Semoga Tuhan Yang Maha Esa akan
membalasnya.
Medan, Juli 2017
Reynaldo Frederikus Nainggolan
Universitas Sumatera Utara
iv
PERANCANGAN DAN PEMBUATAN GAME ADVENTURE BERBASIS
2D MENGGUNAKAN ADOBE FLASH CS6 ACTIONSCRIPT 3.0
ABSTRAK
Semakin majunya perkembangan teknologi di era modern ini semakin
memunculkan game-game baru dengan kualitas grafis yang semakin mendekati
dengan kehidupan nyata, game-game terbaru yang menjadikan grafis gamenya
lebih nyata memang semakin menarik dan membuat para pemainnya beralih ke
game yang lebih modern ini dan mulai melupakan game game 2 dimensi yang
bersifat flat atau datar hanya 2 dimensi. Game 2 dimensi yang dulu menjadi
favorit di era 90an mulai ditinggalkan, sehingga game adventure berbasis 2
dimensi ini kembali diangkat untuk mempopulerkan kembali game berbasis 2
dimensi yang kurang menarik itu menjadi game 2 dimensi dengan desain tampilan
dan grafis yang lebih modern dengan desain flat sebagai dasarnya, sehingga game
game seperti ini akan berkembang di pasar modern dan dapat bersaing dengan
game game berbasis 3 dimensi.
Kata kunci: Adobe Flash CS6, ActionScript 3.0, 2 Dimensi, Game.
Universitas Sumatera Utara
v
DESIGNING AND MAKING AN ADVENTURE GAME 2D BASED USING
ADOBE FLASH CS6 ACTIONSCRIPT 3.0
ABSTRACT
More advanced of technological developments in this modern era more bringing
up the new generation of the game with the new graphic quality that more
bringing the real life playing into the game, the new game that apply the real life
playing is so intersting and made the gamer move on to the newest game that
more modern and have been forgetting the 2D game that based is flat because of
the graphic is just 2D. 2D Game that was become the favorite in 90line’s had been
abandoned, so this 2D Adventure Game is come back to being repopularing the
2D game based that less interested become the 2D based game with design and
graphic more modern with design flat style as the base, so game like this would
upgraded in modern marketing and can be competed with another 3D based game.
Keywords: Adobe Flash CS6, ActionScript 3.0, 2D, Game.
Universitas Sumatera Utara
vi
DAFTAR ISI
Persetujuan i
Pernyataan ii
Penghargaan iii
Abstrak iv
Abstract v
Daftar Isi vi
Daftar Gambar viii
Daftar Lampiran ix
Bab 1. Pendahuluan
1.1. Latar Belakang 1
1.2. Perumusan Masalah 2
1.3. Batasan Masalah 3
1.4. Tujuan Penelitian 3
1.5. Manfaat Penelitian 4
1.6. Metodologi Penelitian 4
1.7. Sistematika Penulisan 6
Bab 2. Landasan Teori
2.1. Pengertian Game 8
2.2. Game Adventure 8
2.3. Elemen Dasar Game 10
2.4. Tentang Flash 12
2.5. Adobe Flash CS6 13
2.6. Action Script 3.0 13
Bab 3. Perancangan Sistem
3.1. Data Flow Diagram (DFD) 16
3.1.1. Diagram Alir Data 17
3.2. Flowchart Sistem 17
3.3. Perancangan Sistem 19
Bab 4. Implementasi Sistem
4.1. Tujuan Implementasi Sistem 24
4.2. Komponen dalam Implementasi Sistem 25
4.2.1. Perangkat Keras (Hardware) 25
4.2.2. Perangkat Lunak (Software) 26
4.2.3. Perangkat Operator (Brainware) 26
4.3. Tampilan Aplikasi 27
Bab 5. Kesimpulan dan Saran
5.1. Kesimpulan 32
Universitas Sumatera Utara
vii
5.2. Saran 32
Daftar Pustaka
Lampiran
Universitas Sumatera Utara
viii
DAFTAR GAMBAR
Nomor Judul Halaman
Gambar
3.1. Diagram Konteks 17
3.2. Flowchart Tampilan Utama 18
3.3. Flowchart Menu Game 19
3.4. Tampilan Intro Game 20
3.5. Tampilan Menu Game 21
3.6. Tampilan Game 21
3.7. Tampilan Game Over 22
3.8. Tampilan High Score 23
4.1. Halaman Introducing 27
4.2. Halaman Proses Loading 28
4.3. Halaman Menu Game 28
4.4. Halaman Level 1 29
4.5. Halaman Game Over 29
4.6. Halaman Level 2 30
4.7. Halaman Finish Level 2 30
4.8. Halaman Completed Game & High Score 31
Universitas Sumatera Utara
ix
DAFTAR LAMPIRAN
Nomor Judul Halaman
Lamp
1. Listing Program 1
2. Surat Keterangan Hasil Uji Program
3 Kartu Bimbingan Tugas Akhir
4. SK Pembimbing Tugas Akhir
Universitas Sumatera Utara
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Game adalah permainan yang terstruktur, yang biasanya dibuat untuk
menghilangkan stress atau juga bisa dibuat untuk pendidikan agar orang yang
ingin belajar tidak merasakan rasa bosan pada suatu hal yang ingin dia pelajari.
Komponen dari Game itu adalah tujuan, aturan, tantangan, dan interaksi. Game
pada umumnya melibatkan stimulasi mental atau fisik, dan bisa keduanya. Banyak
Game yang bisa mengembangkan kreatifitas seseorang sebagai bahan latihan atau
stimulasi pendidikan
Di era globalisasi saat ini game sudah menjadi media hiburan yang cukup
banyak diminati oleh masyarakat, salah satunya ialah game bergenre adventure.
Pada jaman modern seperti ini banyak Game yang melibatkan permainan yang
menggunakan Otak tanpa menggerakan seluruh fisik dikarenakan oleh teknologi
yang berkembang pesat.
Game bergenre adventure peminatnnya tidak hanya gamer, tetapi juga
banyak digandrungi anak-anak, remaja, dewasa, serta orang tua. Game adventure
juga salah satu permainan yang dapat dimainkan bersama keluarga, contoh game
adventure seperti Mario Bross, Metal Slug, Sonic The Hedgehog, Crash
Bandicoot dan lainnya.
Universitas Sumatera Utara
2
Game adventure dapat juga dikatakan sebagai sebuah game yang memberikan
kesempatan pada pemainnya untuk menganalisis arena permainan secara visual.
Game ini juga tidak menuntut para pemainnya agar memiliki kemampuan khusus
dalam menyelesaikan sebuah misi, namun cukup dengan mengalahkan musuh-
musuh, menghindari rintangan, dan mengikuti alur cerita dalam sebuah
permainan.
Selain asyik, game bergenre adventure ini juga banyak dimainkan diwaktu
senggang, sehingga banyak dari kita pun bertanya bagaimana cara membuat game
berjenis petualangan tersebut? Dengan adanya hal ini, penulis tertarik dalam
membuat game berjenis adventure dengan Adobe Flash CS6 menggunakan bahasa
pemrograman ActionScript 3.0.
1.2 Perumusan Masalah
Game adventure berbasis 2D atau 2 dimensi sekarang kepopulerannya sudah
menurun dibandingkan dengan game-game lainnya yg sudah berbasis 3D atau 3
dimensi. Dikarenakan meningkatnya perkembangan teknologi dan minat terhadap
grafis game yg lebih baik dari versi 2 dimensi, sehingga penulis berminat untuk
membuat Game Adventure berbasis 2D dengan grafis yang terkesan lebih
modern, dengan efek tampilan pop art, design yang flat dan terkesan simple.
Universitas Sumatera Utara
3
1.3 Batasan Masalah
Adapun batasan masalah dalam pembuatan game ini meliputi:
a. Game adventure ini hanya untuk platform PC dengan player yang mensupport
Adobe Flash
b. Hanya bisa dimainkan oleh 1 orang pemain
c. Game ini dibangun menggunakan bahasa pemrograman ActionScript 3.0
d. Menggunakan Adobe Flash CS6 sebagai tool dalam tahap desain tampilan
serta pengkodingan
1.4 Tujuan Penelitian
Adapun tujuan dari penelitian adalah pembuatan game adventure sebagai sarana
hiburan bagi semua usia, dengan basis yang lebih modern dan lebih menarik
seperti tren yang berkembang sekarang. Dikarenakan game ini menjadi salah satu
game favorite penulis, sehingga penulis ingin membuat dan merancang game
buatan sendiri dan ingin kembali menaikkan pamor game adventure berbasis 2
dimensi.
Universitas Sumatera Utara
4
1.5 Manfaat Penelitian
Pembuatan game adventure berbasis 2D ini memiliki beberapa manfaat, yaitu :
1. Bagi penulis, meningkatkan pemahaman dan pengetahuan dalam membangun
suatu game, sehingga penulis berkesempatan untuk kembali meningkatkan
game ini dan memasuki pasar perdagangan aplikasi.
2. Bagi pembaca, menjadi acuan untuk melakukan pembuatan game yang lebih
baik lagi, sehingga bisa menciptakan versi android, versi playstation, dan
lainnya.
3. Menjadi referensi bagi penelitian-penelitian berikutnya.
1.6 Metodologi Penelitian
Dalam menyusun laporan akhir studi ini, penulis menerapkan beberapa
metodologi penelitian untuk merancang, mendesain dan membangun game yang
diharapkan. Adapun metodologi penelitian yang diterapkan penulis adalah sebagai
berikut :
1. Pengumpulan data dan informasi
a. Studi Pustaka
Metode pengumpulan data dan informasi yang dilakukan penulis dengan
membaca buku-buku literatur mengenai poin-poin yang bersangkutan dan
melakukan searching literatur menggunakan internet browser untuk
tambahan data dan informasi.
Universitas Sumatera Utara
5
b. Analisis Permasalahan
Pada tahap ini dilakukan analisis terhadap bahan referensi yang telah
dikumpulkan pada tahap sebelumnya untuk mendapatkan pemahaman
mengenai metode yang diterapkan yakni teknik cut-out untuk animasi
2. Memahami Model Proses
Pada tahap ini penulis menentukan model proses apa yang digunakan dalam
pengembangan game tersebut.
3. Memahami Model Data
Model data adalah suatu gambaran yang menunjukkan hubungan antar
komponen data yang akan dibuat.
4. Identifikasi Masalah
Dalam penelitian ini, penulis dapat mengidentifikasi masalah yang ada
sebagai berikut:
a. Berkurangnya minat masyarakat terhadap game yang berbasis 2D,
dikarenakan kebanyakan game sudah menganut basis 3D dan grafis yang
lebih menarik
b. Tergantikannya game-game adventure yang skenario atau jalan ceritanya
tidak update yang dapat ditamatkan hanya dengan sekali main, terganti
dengan game yang sudah berbasis online dan selalu update
5. Merancang Konsep Pembuatan Game
Konsep pembuatan game yang diusulkan penulis adalah menentukan desain
untuk latar belakang permainan, desain karakter, desain objek-objek dalam
permainan, pengkodingan, serta pembuatan alur cerita permainan.
Universitas Sumatera Utara
6
6. Pembuatan Program
Pembuatan program dilakukan dengan menggunakan bahasa pemrograman
ActionScript 3.0 dan Adobe Flash CS6 sebagai tools dalam tahap mendesain
dan merancang pembuatan program. Pembuatan program dilakukan sesuai
dengan konsep pembuatan game yang diusulkan.
7. Implementasi Sistem
Implementasi sistem dilakukan sesuai dengan rancangan yang telah
dikonsepkan. Implementasi dan pengujian dilakukan pada flash game yang
sudah di build dan siap di running
8. Pengujian Perangkat Lunak
Pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas
perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain
dan pengkodean.
9. Penulisan Laporan Penelitian
Pada tahap ini dilakukan penyusunan laporan dari perancangan dan
pembuatan Aplikasi Game Adventure Berbasis 2D berupa laporan akhir studi.
1.7 Sistematika Penulisan
Agar dapat memberikan gambaran yang jelas pada penulisan Tugas Akhir ini,
maka penulis membaginya dalam beberapa bab sebagai berikut:
BAB 1 : PENDAHULUAN
Bab ini menguraikan tentang latar belakang pembangunan aplikasi,
perumusan masalah, batasan masalah, tujuan penelitian, manfaat
Universitas Sumatera Utara
7
penelitian, metodologi penelitian, hingga sistematika penulisan Tugas
Akhir ini.
BAB 2 : LANDASAN TEORI
Bab ini menguraikan tentang teori-teori dasar dalam pembangunan
aplikasi Game Adventure. Mulai dari pengertian apa itu Flash CS6
hingga apa-apa saja yang dibutuhkan untuk memulai pemrograman
dengan ActionScript 3.0.
BAB 3 : PERANCANGAN SISTEM
Bab ini menguraikan mengenai perancangan sistem mulai dari
perancangan tampilan, perancangan karakter dan objek dalam permainan,
perancangan alur cerita permainan, diagram konsep sistem, hingga
flowchart sistem.
BAB 4 : IMPLEMENTASI SISTEM
Bab ini menguraikan tentang bagaimana proses lanjutan dari
perancangan sistem. Menguraikan secara detail bagian implementasi
sistem dan menyorot apakah implementasi sesuai dengan perancangan
sistem.
BAB 5 : KESIMPULAN DAN SARAN
Bab ini menguraikan tentang kesimpulan dan saran yang dikutip oleh
penulis selama proses pembangunan aplikasi.
Universitas Sumatera Utara
BAB 2
LANDASAN TEORI
2.1 Pengertian Game
Game merupakan kata dari bahasa inggris yang berarti suatu permainan atau
pertandingan yang bisa diartikan sebagai suatu aktifitas terstruktur yang sudah biasa
dilakukan untuk bersenang senang, sehingga game menjadi kebutuhan dasar untuk
menikmati hidup serta menjadi media pembelajaran.
Karena itu game tidak hanya dimainkan untuk mencari kesenangan dan
hiburan saja bagi penggunanya, namun juga dapat berfungsi sebagai sarana latihan,
pendidikan dan simulasi yang diterapkan dalam bidang pengajaran kepada siswa,
media pelatihan bagi para trainer, dan simulasi sebagai media pengambaran akan apa
yang akan dilakukan.
2.2 Game Adventure
Game Adventure atau petualangan adalah game yang sering kita jumpai di pasaran.
Game ini agak umum sehingga hampir semua game juga memiliki unsur game
adventure walaupun tidak spesifik. Game ini biasanya memiliki satu tokoh utama
yang kita mainkan dan kita jalankan secara langsung dari awal sampai tamat
mengikuti jalan cerita.
Universitas Sumatera Utara
9
Beberapa macam genre game diantaranya adalah Adventure Game (Petualangan),
Action Shootting Game (Tembak-menembak), Fighting Game (Pertarungan),
Strategic Game (Strategi), Simulation Game (Simulasi), Puzzle Game (Menyusun),
Sport Game (Olahraga), Education Game (Edukasi). Dalam hal ini, penulis
mengambil genre Adventure Game sebagai bahan Tugas Akhir. Pengambilan
Adventure Game didasarkan oleh klasifikasi game berdasarkan tujuan
penggunaannya, yaitu:
1. Game as Game
Game yang dimaksud adalah game untuk mencari kesenangan atau hiburan.
Contoh umum dari game as game adalah game yang termasuk dalam
adventure game, fighting game, sport game, action shooting game, role
playing game dan lain-lain.
2. Game as Media
Tujuan utama dari game as media adalah untuk menyampaikan pesan
tertentu,menyampaikan pesan dari pembuat game tersebut. Contoh umum dari
game as media adalah game yang termasuk dalam serious game, seperti
advergame, edutainment atau edugame, exergame, simulasi, dan lainnya.
3. Game Beyond Game
Bisa disebut juga dengan istilah gamification. Gamification adalah penerapan
konsep atau cara berpikir game design ke dalam lingkup non-game. Bentuk
Universitas Sumatera Utara
10
gamification sendiri pun biasanya tidak berupa game, misalnya sistem reward
dari poin yang dikumpulkan dengan berbelanja, atau lainnya.
Pada Penelitian Tugas Akhir ini tujuan penggunaan game yang diterapkan ialah game as
game. Penulis berusaha membuat game yang lebih menarik dan lebih tren dengan grafis
yang flat. Sehingga menjadikan game adventure berbasis 2 dimensi menjadi naik daun
kembali dan menjadi pilihan untuk mengisi waktu dan bersenang senang.
2.3 Elemen Dasar Game
Elemen Dasar Game, Menurut Teresa Dillon elemen-elemen dasar sebuah game
adalah :
1. Game Rule
Game rule merupakan aturan perintah, cara menjalankan, fungsi objek dan
karakter didalam game. Dunia game bisa berupa pulau, dunia khayal, dan
tempat-tempat lain yang sejenis yang dipakai sebagai setting tempat dalam
permainan game.
2. Plot
Plot biasanya berisi informasi tentang hal-hal yang akan dilakukan oleh player
dalam game secara detail serta perintah tentang hal yang harus dicapai dalam
game.
Universitas Sumatera Utara
11
3. Thema
Di dalam biasanya ada pesan moral yang akan disampaikan character atau
pemain sebagai karakter utama maupun karakter yang lain yang memiliki ciri dan
sifat tertentu.
4. Object
Merupakan sebuah hal yang penting dan biasanya digunakan pemain untuk
memecahkan masalah, ada kalanya pemain harus punya keahlian dan
pengetahuan untuk bisa memaninkannya.
5. Text, grafik dan sound
Game biasanya merupakan kombinasi dari media teks, grafik maupun suara,
walaupun tidak harus semuanya ada dalam permainan game.
6. Animasi
Animasi ini selalu melekat pada dunia game, khususnya untuk membuat gerakan
karakter karakter yang ada dalam game, properti serta objek-objek didalam
game.
7. User Interface
Merupakan fitur-fitur yang mengkomunikasikan user dengan game.
Universitas Sumatera Utara
12
2.4 Tentang Flash
Flash adalah program grafis yang diproduksi oleh Macromedia corp, yaitu
sebuah vendor software yang bergerak dibidang animasi web. Macromedia Flash
pertama kali diproduksi pada tahun 1996. Macromedia flash telah diproduksi
dalam beberapa versi. Versi terakhir dari Macromedia Flash adalah Macromedia
flash 8. Sekarang Flash telah berpindah vendor menjadi Adobe.
Adobe adalah vendor software yang membeli Flash dari vendor sebelumnya
yaitu Macromedia. Sejak itu, Macromedia Flash berganti nama menjadi Adobe Flash.
Versi terbaru dari Adobe Flash adalah Adobe Flash CS6 Professional.
Dalam pembuatan game ini penulis sudah menggunakan Adobe Flash CS6
Professional sebagai aplikasinya.
Flash tidak hanya digunakan dalam pembuatan animasi, tetapi pada
zaman sekarang ini flash juga banyak digunakan untuk keperluan lainnya seperti
dalam pembuatan game, presentasi, membangun web, animasi pembelajaran,
bahkan juga dalam pembuatan film.
Game yang dihasilkan flash adalah animasi berupa file movie. Movie
yang dihasilkan dapat berupa grafik atau teks. Grafik yang dimaksud disini
adalah grafik yang berbasis vektor, sehingga saat diakses melalui internet, game
akan ditampilkan lebih cepat dan terlihat halus. Selain itu flash juga memiliki
kemampuan untuk mengimpor file suara, video maupun file gambar dari aplikasi
lain.
Universitas Sumatera Utara
13
2.5 Adobe Flash CS6
Adobe Flash CS6 adalah salah satu aplikasi pembuat animasi yang cukup dikenal saat
ini. Berbagai fitur dan kemudahan yang dimiliki menyebabkan Adobe Flash CS6
menjadi program animasi favorit dan cukup populer. Tampilan, fungsi dan
pilihan palet yang beragam, serta kumpulan tool yang sangat lengkap sangat
membantu dalam pembuatan karya animasi yang menarik.
2.6 Action Script 3.0
ActionScript 3.0 adalah bahasa pemrograman berorientasi objek yang menandakan
sebuah langkah penting dalam evolusi kemampuan Flash Player runtime. Motivasi
pembuatan ActionScript 3.0 adalah untuk menciptakan bahasa ideal untuk cepat
membangun pengayaan aplikasi Internet, yang telah menjadi bagian penting dari
pengalaman dalam pembuatan web.
Versi sebelumnya dari ActionScript menawarkan kekuatan dan fleksibilitas
yang diperlukan untuk membuat media online yang menarik. Kemajuan bahasa
actionScript 3.0 sekarang, memberikan kinerja yang luar biasa dan kemudahan
pengembangan untuk memfasilitasi aplikasi yang sangat kompleks, dataset besar, dan
berorientasi obyek, basis kode dapat digunakan kembali. Dengan ActionScript 3.0,
pengembang dapat mencapai produktivitas yang sangat baik dan kinerja dengan
konten dan aplikasi yang menargetkan Flash Player.
Universitas Sumatera Utara
14
Pada Flash, Action Script memilki beberapa fungsi dasar, antara lain :
1. Animation
Animasi yang sederhana memang tidak membutuhkan Action Script, namun
untuk animasi yang kompleks, Action Script akan sangat membantu. Sebagai
contoh, animasi bola yang memantul di tanah yang mengikuti hukum fisika akan
membutuhkan ratusan frame. Namun dengan menggunakan Action Script,
animasi tersebut dapat dibuat hanya dalam satu frame.
2. Navigasi
Pergerakan animasi pada Flash secara default bergerak ke depan dari satu frame
ke frame yang lainnya hingga selesai. Namun dengan Action Script, jalannya
animasi dapat dikontrol untuk berhenti di suatu frame dan berpindah ke
sembarang frame sesuai dengan pilihan dari user.
3. User Input
Action Script dapat digunakan untuk menerima suatu masukan dari user yang
kemudian informasi tersebut dikirimkan kepada server untuk diolah. Dengan
kemampuan ini, Action Script dapat digunakan untuk membangun suatu aplikasi
web berbasis Flash.
4. Memperoleh Data
Seperti yang telah dijelaskan sebelumnya, Action Script dapat melakukan
interaksi dengan server. Dengan demikian kita dapat meng-update informasi lalu
menampilkannya kepada user.
Universitas Sumatera Utara
15
5. Kalkulasi
Action Script dapat melakukan kalkulasi, misalnya seperti yang diterapkan pada
aplikasi shopping chart.
6. Grafik
Action Script dapat mengubah ukuran sebuah grafik, sudut rotasi, warna movie
clip dalam movie, serta dapat menduplikasi dan menghapus item dari screen.
7. Mengenali Environment
Action Script dapat mengambil nilai waktu dari sistem yang digunakan oleh user.
8. Memutar Musik
Selain animasi yang berupa gerakan, pada program Flash juga dapat diinputkan
sebuah musik sehingga animasi yang dihasilkan menjadi lebih menarik. Pada hal
ini Action Script dapat digunakan untuk mengontrol balance dan volume dari
musik tersebut.
Universitas Sumatera Utara
BAB 3
PERANCANGAN SISTEM
Pada saat hendak membuat sebuah sistem yang akan digunakan pada suatu
perusahaan, setiap pengembang aplikasi diharuskan membuat sebuah rancangan
dari sistem yang ingin dibuat. Rancangan ini bertujuan untuk memberi gambaran
umum dari sistem yang akan berjalan nantinya kepada setiap stakeholder.
Perancangan Sistem yang dilakukan merupakan analisis perangkat lunak,
analisis program dan model yang akan di buat. Oleh karena itu semua data yang
ada didalam sistem akan dikemas dalam suatu basis data, kemudian
dideskripsikan kedalam Data Flow Diagram, Diagram Alir Data dan Flowchart
system.
3.1. Data Flow Diagram (DFD)
Data Flow Diagram merupakan suatu diagram yang menggunakan notasi-notasi
untuk menggambarkan arus data sistem, yang penggunaannya sangat membantu
untuk memahami sistem secara logika, tersruktur dan jelas.
Diagram alir data pun dapat digunakan baik pada tahap analisis maupun tahap
desain, namun kecenderungan diagram ini lebih cocok digunakan untuk tahap
desain karena dengan diagram tersebut batasan ruang lingkup sistem terlihat
sangat jelas sehingga pekerjaan pengembangan sistem yang dilakukan dapat lebih
fokus.
Universitas Sumatera Utara
17
3.1.1. Diagram Alir Data
Diagram alir data mengindentifikasikan secara terperinci komponen sistem
informasi yang diterima. Tujuan dari penggambaran diagram ini adalah untuk
memberikan gambaran umum kepada pemakai (user) tentang sistem yang
dirancang.
Gambar 3.1. Diagram Konteks
3.2. Flowchart Sistem
Flowchart adalah sekumpulan bagan yang terdiri dari simbol-simbol tertentu yang
mengambarkan suatu rangkaian proses secara detail dan hubungan antara suatu
proses (instruksi) dengan proses yang lainnya dari awal hingga akhir dalam suatu
program.
Universitas Sumatera Utara
18
Gambar 3.2. Flowchart Tampilan Utama
Universitas Sumatera Utara
19
Gambar 3.3. Flowchart Menu Game
3.3. Perancangan Sistem
Perancangan sistem atau interface meliputi beberapa perancangan diantaranya
perancangan menu welcome, menu, menu play, menu help, menu game about dan
form Champions. Berikut ini merupakan perancangan-perancangan sistem atau
interface yang ada di dalam program aplikasi ini:
Universitas Sumatera Utara
20
1. Tampilan Intro Game
Di awal program aplikasi terdapat tombol yang menuju ke form game yang
berikutnya, yaitu form menu game. Tombol itu adalah tombol menu yaitu tombol
untuk ke menu game serta tombol exit untuk menutup aplikasi. Hanya tinggal
mengklik tombol tujuan maka form dari tombol yang diklik tersebut akan muncul.
Gambar 3.4. Tampilan Intro Game
2. Tampilan Menu Game
Di form ini juga terdapat tombol-tombol yang mengarahkan kita ke form-form
berikutnya. Seperti tombol Play dan tombol Exit. Tombol Play langsung
mengarahkan user menuju ke form game dan tombol exit untuk keluar dari
aplikasi atau untuk menutup aplikasi.
Intro
ANIMASI PEMBUKA GAME
Tombol untuk ke form Menu Tombol untuk keluar dari aplikasi
MENU EXIT
Universitas Sumatera Utara
21
Gambar 3.5. Tampilan Menu Game
3. Tampilan Game
Di form ini hanya terdapat tampilan game ketika dimainkan, user hanya akan
mendapatkan pilihan play again atau quit jika player mati atau kalah di dalam
game.
Gambar 3.6. Tampilan Game
Menu Game
PLAY
EXIT
Game
BACKGROUND
PLAYER
ENEMY
COIN
LIFE
Universitas Sumatera Utara
22
4. Tampilan Game Over
Pada tampilan ini merupakan pilihan main lagi atau keluar, tampilan ini muncul
apabila player mati atau kalah didalam game.
Gambar 3.7. Tampilan Game Over
5. Tampilan High Score
Tampilan ini muncul ketika player telah menyelesaikan semua level yang ada dan
telah berhasil menyelesaikan game (mission complete).
Game Over
GAME OVER
PLAY
AGAIN
QUIT
Universitas Sumatera Utara
23
Gambar 3.8. Tampilan High Score
Game Over
HIGH SCORE
BACK TO MENU EXIT
Universitas Sumatera Utara
24
BAB 4
IMPLEMENTASI SISTEM
Implementasi sistem merupakan langkah-langkah atau prosedur yang dilakukan
dalam menyelesaikan desain sistem yang telah disetujui, untuk menguji,
menginstall dam memulai sistem baru atau sistem yang diperbaiki dari sistem
yang lama. Langkah-langkah dari proses implementasi adalah urutan dari kegiatan
awal sampai kegiatan akhir yang harus dilakukan dalam mewujudkan sistem yang
dirancang. Hasil dari tahapan implementasi ini adalah suatu sistem pengolahan
data yang dapat berjalan dengan baik.
4.1. Tujuan Implementasi Sistem
Tujuan implementasi sistem adalah sebagai berikut:
1. Mengkaji rangkaian sistem baik dari segi software maupun hardware
sebagai sarana pengolahan data dan penyaji informasi.
2. Menyelesaikan rancangan sistem yang ada dalam dokumen sistem yang
baru atau yang telah disepakati.
3. Menguji program-program dan prosedur baru atau dokumen yang
diperbaiki.
4. Memastikan bahwa sistem yang dibuat dapat digunakan oleh pemakai
tanpa mengalami kesulitan dalam pemakaiannya.
5. Memastikan bahwa sistem telah berjalan lancar dengan mengontrol dan
melakukan instalasi dengan benar.
Universitas Sumatera Utara
25
4.2. Komponen dalam Implementasi Sistem
Perancangan sistem yang telah dikerjakan dapat berjalan baik atau tidak, maka
perlu dilakukan pengujian terhadap sistem yang telah dikerjakan. Untuk itu
dibutuhkan beberapa komponen utama yang mencakup perangkat keras
(hardware), perangkat lunak (software), dan perangkat operator (brainware).
4.2.1. Perangkat Keras (Hardware)
Perangkat keras merupakan bagian dari komputer yang dapat dilihat secara fisik
dan dapat disentuh. Perangkat keras merupakan seluruh komponen peralatan yang
membentuk suatu sistem komputer serta peralatan lainnya yang memungkinkan
komputer dapat melakukan tugasnya.
Dalam pembuatan aplikasi game adventure ini, saya menggunakan perangkat
keras sebagai berikut:
1. Laptop dengan processor intel core i3
2. VGA Card Amd Radeon HD 8530M 1GB
3. Harddisk 500 GB
4. Random Access Memory (RAM) 3 GB
5. Keyboard dan Mouse
Universitas Sumatera Utara
26
4.2.2. Perangkat Lunak (Software)
Software merupakan komponen di dalam sistem data berupa program atau
instruksi untuk mengontrol suatu sistem. Dalam hali ini, perangkat lunak yang
digunakan penulis untuk penulisan aplikasi game adventure ini adalah:
1. Sistem Operasi Windows 10
2. Adobe Flash CS6 sebagai aplikasi pembuatan game.
3. ActionScript 3.0 sebagai bahasa pemrogramannya.
4. Adobe Illustrator sebagai desain karakter dan elemen-elemen dalam game.
4.2.3. Perangkat Operator (Brainware)
Brainware adalah perangkat intelektual yang mengoperasikan dan mengeksplorasi
kemampuan dari perangkat keras maupun perangkat lunak. Perangkat operator
(brainware) meliputi 4 bagian, yaitu:
1. Analisis Sistem, yaitu orang yang membentuk dan membangun fasilitas
rancangan sistem data program.
2. Programmer, yaitu orang yang mengerti bahasa pemrograman yang
digunakan dalam membuat dan membangun suatu program.
3. Operator (Administrator), yaitu orang yang mengoperasikan sistem seperti
masukkan data untuk dioperasikan dan menghasilkan informasi.
4. Pelanggan (Public), yaitu orang yang memakai sistem yang telah
dirancang untuk mendapatkan informasi yang dibutuhkan.
Universitas Sumatera Utara
27
4.3. Tampilan Aplikasi
Pada game adventure ini memiliki banyak scene-scene yang merupakan intro,
menu, loading process, level1, dan level2. Adapun tampilan aplikasi game
adventure sebagai berikut:
Gambar 4.1. Halaman Introducing
Universitas Sumatera Utara
28
Gambar 4.2. Halaman Proses Loading
Gambar 4.3. Halaman Menu Game
Universitas Sumatera Utara
29
Gambar 4.4. Halaman Level 1
Gambar 4.5. Halaman Game Over
Universitas Sumatera Utara
30
Gambar 4.6. Halaman Level 2
Gambar 4.7. Halaman Finish Level 2
Universitas Sumatera Utara
31
Gambar 4.8. Halaman Completed Game & High Score
Universitas Sumatera Utara
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Dalam penulisan tugas akhir ini telah diuraikan hasil dan pembahasan pada bab –
bab sebelumnya, maka penulis dapat mengambil beberapa kesimpulan yaitu
sebagai berikut:
a. Dengan dibuatnya Game adventure ini penulis mengharapkan agar game
ini dapat membawa kembali kesenangan bagi para penggunanya yang
sangat merindukan game berbasis 2 dimensi klasik yang di kembangkan
dengan grafis yang lebih modern.
b. Penulis menggembangkan Game adventure ini kedalam android agar game
yang dikembangkan tidak hanya dapat dinikmati melalui perangkat PC
namun juga dapat dinikmati melalui perangkat mobile.
5.2. Saran
Dengan selesainya pembuatan game adventure ini, penulis memberikan beberapa
saran yang mungkin dapat menjadi bahan pertimbangan dalam upaya
pengembangan sistem lebih lanjut:
a. Sistem level yang masih kurang banyak, sebaiknya dapat ditambah lebih
banyak agar game yang dimainkan semakin lebih menarik dan tertantang
dengan level yang lebih sulit.
Universitas Sumatera Utara
33
b. Perlu adanya penambahan fitur boss yang dibuat di akhir level, sehingga
ketika player sampai dibagian akhir game, player berhadapan dengan boss
besar dari setiap levelnya agar bisa lanjut ke level selanjutnya.
c. Penambahan fitur story mode dapat membuat game jadi lebih menarik,
contohnya dengan penambahan menu map di game sehingga player
memiliki interaksi lebih banyak dengan karakter-karakter lainnya di dalam
game, dengan itu lah story mode disarankan oleh penulis.
Universitas Sumatera Utara
DAFTAR PUSTAKA
[LPKBM MADCOMS] Lembaga Pendidikan Komputer, Bisnis dan Manajemen.
2004. Membuat Animasi Kartun dengan Macromedia Flash MX 2004.
Andi. Yogyakarta.
[LPKBM MADCOMS] Lembaga Pendidikan Komputer, Bisnis dan Manajemen.
2008. Student Book Series: ADOBE FLASH CS3 PROFESSIONAL.
Yescom. Yogyakarta.
Philipus, E. 2008. First Step to Be Designer: FLASH. Yescom.Yogyakarta
Radion, K. 2009. Ultimate Game Design Building RPG Games using Adobe Flash
ActionScript. Andi. Yogyakarta.
Saputro, A. 2016. Mudah Membuat Game Adventure Menggunakan Adobe Flash
CS6 ActionScript 3.0. Andi. Yogyakarta.
Syarif, A.M. 2003. Bedah ActionScript: Menguasai Penulisan Script Macromedia
Flash MX. Elex Media Komputindo. Jakarta.
Universitas Sumatera Utara
1
Lampiran 1. Listing Program
import flash.events.Event;
import flash.geom.Point;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.system.fscommand;
//variabel gerak player ketika menekan tombol di keyboard//
var tekanKiri:Boolean = false;
var tekanKanan:Boolean = false;
var tekanAtas:Boolean = false;
var tekanBawah:Boolean = false;
//variabel batas gerak player
var batasKiri:Boolean = false;
var batasKanan:Boolean = false;
var batasAtas:Boolean = false;
var batasBawah:Boolean = false;
//variabel serangan
var pressA:Boolean=false;
var tembakJalanKiri:Boolean=false;
var tembakJalanKanan:Boolean=false;
var jumPukul:Number=0;
//poin untuk gerak player serta koordinat//
var poinKiri:Point = new Point(-35, -15);
var poinKanan:Point = new Point(35, -15);
var poinAtas:Point = new Point(0, 0);
var poinBawah:Point = new Point(0, 0);
Universitas Sumatera Utara
2
//variabel loading
var loading : Number = 0;
//variabel kecepatan gerak player//
var xKecepatan : Number = 0;
var yKecepatan : Number = 0;
//variabel pengontrol kecepatan, gesekan, gravitasi, dan lompatan player//
var kecKonstan:Number = 4;
var gesekanKonstan:Number = 0.9;
var gravitasiKonstan:Number = 2;
var lompatanKonstan:Number = -35;
var max_kecKonstan:Number = 18;
var m:int;
var p:int;
// hit peluru
var somePeluru:Vector.<MovieClip> = new Vector.<MovieClip>();
var arrPeluru:Array = [ ];
arrPeluru[0] = back.peluru1;
arrPeluru[1] = back.peluru2;
arrPeluru[2] = back.peluru3;
arrPeluru[3] = back.peluru4;
arrPeluru[4] = back.peluru5;
arrPeluru[5] = back.peluru6;
arrPeluru[6] = back.peluru7;
arrPeluru[7] = back.peluru8;
arrPeluru[8] = back.peluru9;
arrPeluru[9] = back.peluru10;
arrPeluru[10] = back.peluru11;
arrPeluru[11] = back.peluru12;
arrPeluru[12] = back.peluru13;
arrPeluru[13] = back.peluru14;
arrPeluru[14] = back.peluru15;
Universitas Sumatera Utara
3
arrPeluru[15] = back.peluru16;
arrPeluru[16] = back.peluru17;
arrPeluru[17] = back.peluru18;
arrPeluru[18] = back.peluru19;
arrPeluru[19] = back.peluru20;
arrPeluru[20] = back.peluru21;
arrPeluru[21] = back.peluru22;
arrPeluru[22] = back.peluru23;
arrPeluru[23] = back.peluru24;
arrPeluru[24] = back.peluru25;
arrPeluru[25] = back.peluru26;
arrPeluru[26] = back.peluru27;
arrPeluru[27] = back.peluru28;
arrPeluru[28] = back.peluru29;
arrPeluru[29] = back.peluru30;
arrPeluru[30] = back.peluru31;
arrPeluru[31] = back.peluru32;
arrPeluru[32] = back.peluru33;
arrPeluru[33] = back.peluru34;
arrPeluru[34] = back.peluru35;
arrPeluru[35] = back.peluru36;
arrPeluru[36] = back.peluru37;
arrPeluru[37] = back.peluru38;
arrPeluru[38] = back.peluru39;
arrPeluru[39] = back.peluru40;
somePeluru.push(back.peluru1);
somePeluru.push(back.peluru2);
somePeluru.push(back.peluru3);
somePeluru.push(back.peluru4);
somePeluru.push(back.peluru5);
somePeluru.push(back.peluru6);
somePeluru.push(back.peluru7);
somePeluru.push(back.peluru8);
Universitas Sumatera Utara
4
somePeluru.push(back.peluru9);
somePeluru.push(back.peluru10);
somePeluru.push(back.peluru11);
somePeluru.push(back.peluru12);
somePeluru.push(back.peluru13);
somePeluru.push(back.peluru14);
somePeluru.push(back.peluru15);
somePeluru.push(back.peluru16);
somePeluru.push(back.peluru17);
somePeluru.push(back.peluru18);
somePeluru.push(back.peluru19);
somePeluru.push(back.peluru20);
somePeluru.push(back.peluru21);
somePeluru.push(back.peluru22);
somePeluru.push(back.peluru23);
somePeluru.push(back.peluru24);
somePeluru.push(back.peluru25);
somePeluru.push(back.peluru26);
somePeluru.push(back.peluru27);
somePeluru.push(back.peluru28);
somePeluru.push(back.peluru29);
somePeluru.push(back.peluru30);
somePeluru.push(back.peluru31);
somePeluru.push(back.peluru32);
somePeluru.push(back.peluru33);
somePeluru.push(back.peluru34);
somePeluru.push(back.peluru35);
somePeluru.push(back.peluru36);
somePeluru.push(back.peluru37);
somePeluru.push(back.peluru38);
somePeluru.push(back.peluru39);
somePeluru.push(back.peluru40);
//hitTest monster
Universitas Sumatera Utara
5
var someMonster:Vector.<MovieClip> = new Vector.<MovieClip>();
//var serangan
Monster:kotakhit = new kotakhit();
var arrMonster:Array = [ ];
arrMonster[0] = back.monster1;
arrMonster[1] = back.monster2;
arrMonster[2] = back.monster3;
arrMonster[3] = back.monster4;
arrMonster[4] = back.monster5;
arrMonster[5] = back.monster6;
arrMonster[6] = back.monster7;
arrMonster[7] = back.monster8;
arrMonster[8] = back.monster9;
arrMonster[9] = back.monster10;
arrMonster[10] = back.monster11;
arrMonster[11] = back.monster12;
arrMonster[12] = back.monster13;
arrMonster[13] = back.monster14;
arrMonster[14] = back.monster15;
arrMonster[15] = back.monster16;
arrMonster[16] = back.monster17;
arrMonster[17] = back.monster18;
arrMonster[18] = back.monster19;
arrMonster[19] = back.monster20;
arrMonster[20] = back.monster21;
arrMonster[21] = back.monster22;
arrMonster[22] = back.monster23;
arrMonster[23] = back.monster24;
arrMonster[24] = back.monster25;
arrMonster[25] = back.monster26;
arrMonster[26] = back.monster27;
arrMonster[27] = back.monster28;
arrMonster[28] = back.monster29;
arrMonster[29] = back.monster30;
Universitas Sumatera Utara
6
arrMonster[30] = back.monster31;
arrMonster[31] = back.monster32;
arrMonster[32] = back.monster33;
arrMonster[33] = back.monster34;
arrMonster[34] = back.monster35;
arrMonster[35] = back.monster36;
arrMonster[36] = back.monster37;
arrMonster[37] = back.monster38;
arrMonster[38] = back.monster39;
arrMonster[39] = back.monster40;
someMonster.push(back.monster1);
someMonster.push(back.monster2);
someMonster.push(back.monster3);
someMonster.push(back.monster4);
someMonster.push(back.monster5);
someMonster.push(back.monster6);
someMonster.push(back.monster7);
someMonster.push(back.monster8);
someMonster.push(back.monster9);
someMonster.push(back.monster10);
someMonster.push(back.monster11);
someMonster.push(back.monster12);
someMonster.push(back.monster13);
someMonster.push(back.monster14);
someMonster.push(back.monster15);
someMonster.push(back.monster16);
someMonster.push(back.monster17);
someMonster.push(back.monster18);
someMonster.push(back.monster19);
someMonster.push(back.monster20);
someMonster.push(back.monster21);
someMonster.push(back.monster22);
someMonster.push(back.monster23);
Universitas Sumatera Utara
7
someMonster.push(back.monster24);
someMonster.push(back.monster25);
someMonster.push(back.monster26);
someMonster.push(back.monster27);
someMonster.push(back.monster28);
someMonster.push(back.monster29);
someMonster.push(back.monster30);
someMonster.push(back.monster31);
someMonster.push(back.monster32);
someMonster.push(back.monster33);
someMonster.push(back.monster34);
someMonster.push(back.monster35);
someMonster.push(back.monster36);
someMonster.push(back.monster37);
someMonster.push(back.monster38);
someMonster.push(back.monster39);
someMonster.push(back.monster40);
//membuat indikator healtbar
var persentase:int;
var maxhealt:Number=100;
var healt:Number = maxhealt;
var gameOverString:mcgameover = new mcgameover();
var tblPlayAgain:btnPlayAgain = new btnPlayAgain();
var tblQuit:btnQuit = new btnQuit();
var peluru:int;
//--------------------------
healtbar.addEventListener(Event.ENTER_FRAME, mchealtbar);
function mchealtbar(e:Event): void {
persentase = (healt/maxhealt)*100;
healtbar.width = persentase; //panjang healtbar....
if (healt >= maxhealt) {
healt = maxhealt;
Universitas Sumatera Utara
8
persentase_txt.text = "" + healt;
healtbar.width = 100;
}
if (healt <= 0) {
healt = 0;
persentase_txt.text = "" + healt;
trace("mati");
stage.removeEventListener(Event.ENTER_FRAME,perulangan);
player.gotoAndStop("mati");
stage.addChild(gameOverString);
gameOverString.x = 450;
gameOverString.y = 200;
stage.addChild(tblPlayAgain);
tblPlayAgain.visible = true;
tblPlayAgain.x = 450;
tblPlayAgain.y = 250;
stage.addChild(tblQuit);
tblQuit.visible = true;
tblQuit.x = 450;
tblQuit.y = 300;
}
if (back.mc_kotakObat1.hitTestObject(player)) {
healt += 50;
persentase_txt.text = "" + healt;
trace("tambahan nyawa");
back.mc_kotakObat1.gotoAndStop(2);
}
if (back.mc_kotakObat2.hitTestObject(player)) {
healt += 50;
persentase_txt.text = "" + healt;
trace("tambahan nyawa");
back.mc_kotakObat2.gotoAndStop(2);
}
if (back.mc_kotakObat3.hitTestObject(player)) {
Universitas Sumatera Utara
9
healt += 50;
persentase_txt.text = "" + healt;
trace("tambahan nyawa");
back.mc_kotakObat3.gotoAndStop(2);
}
if (back.mc_kotakObat4.hitTestObject(player)) {
healt += 50;
persentase_txt.text = "" + healt;
trace("tambahan nyawa");
back.mc_kotakObat4.gotoAndStop(2);
}
if (back.mc_kotakObat5.hitTestObject(player)) {
healt += 50;
persentase_txt.text = "" + healt;
trace("tambahan nyawa");
back.mc_kotakObat5.gotoAndStop(2);
}
if (back.mc_kotakObat6.hitTestObject(player)) {
healt += 50;
persentase_txt.text = "" + healt;
trace("tambahan nyawa");
back.mc_kotakObat6.gotoAndStop(2);
}
if (back.mc_kotakObat7.hitTestObject(player)) {
healt += 50;
persentase_txt.text = "" + healt;
trace("tambahan nyawa");
back.mc_kotakObat7.gotoAndStop(2);
}
if (back.mc_kotakObat8.hitTestObject(player)) {
healt += 50;
persentase_txt.text = "" + healt;
trace("tambahan nyawa");
back.mc_kotakObat8.gotoAndStop(2);
Universitas Sumatera Utara
10
}
// player kena tembak
for(peluru=0; peluru<arrPeluru.length; peluru++){
trace(peluru);
if(player.hitTestObject(somePeluru[peluru])){
trace("player kena tembak");
healt --;
persentase_txt.text = ""+healt;
}
}
}
//tombol Play Again
tblPlayAgain.addEventListener(MouseEvent.CLICK,pressPlayAgain);
function pressPlayAgain(e:MouseEvent): void {
//hilangkan tombol paly again, quit, dan movie clip game over
tblPlayAgain.visible = false;
tblQuit.visible = false;
gameOverString.visible = false;
gotoAndStop("halaman_playAgain");
}
//tombol Quit
tblQuit.addEventListener(MouseEvent.CLICK,pressQuit);
function pressQuit(e:MouseEvent): void {
}
stage.addEventListener(Event.ENTER_FRAME,perulangan);
function perulangan(e:Event): void {
//tumbukan untuk batas kiri//
if (back.collision.hitTestPoint(player.x+poinKiri.x, player.y+poinKiri.y,
true)) {
batasKiri = true;
}
Universitas Sumatera Utara
11
else {
batasKiri = false;
}
//tumbukan untuk batas kanan//
if (back.collision.hitTestPoint(player.x+poinKanan.x, player.y+poinKanan.y,
true)) {
batasKanan = true;
}
else {
batasKanan = false;
}
//tumbukan untuk batas atas//
if (back.collision.hitTestPoint(player.x+poinAtas.x, player.y+poinAtas.y,
true)) {
batasAtas = true;
}
else {
batasAtas = false;
}
//tumbukan untuk batas bawah//
if (back.collision.hitTestPoint(player.x+poinBawah.x, player.y+poinBawah.y,
true)) {
batasBawah = true;
}
else {
batasBawah = false;
}
//script tumbukan monster dengan player
for (m=0; m<arrMonster.length; m++){
//jika player menginjak monster
if (someMonster[m].hitTestPoint(player.x + poinBawah.x, player.y +
poinBawah.y, true)){
Universitas Sumatera Utara
12
trace("bertumbukan dengan bagian bawah");
someMonster[m].gotoAndPlay(2);
yKecepatan = lompatanKonstan;
score += 50; // score bertambah 50
score_txt.text = "" + score;
} else
if (someMonster[m].hitTestPoint(player.x + poinKanan.x, player.y +
poinKanan.y, true)){
trace("darah berkurang"+"kena bagian kanan");
healt-=25; //darah berkurang sebesar 25
persentase_txt.text = "" + healt;
xKecepatan -= 40;
yKecepatan = lompatanKonstan;
}
else if (someMonster[m].hitTestPoint(player.x + poinKiri.x, player.y +
poinKiri.y, true)){
trace("darah berkurang"+"kena bagian kiri");
healt-=25; //darah berkurang sebesar 25
persentase_txt.text = "" + healt;
xKecepatan += 40;
yKecepatan = lompatanKonstan;
} else
if (someMonster[m].hitTestPoint(player.x + poinAtas.x, player.y +
poinAtas.y, true)){
trace("darah berkurang"+"kena bagian atas");
healt-=25; //darah berkurang sebesar 25
persentase_txt.text = "" + healt;
xKecepatan = 40;
yKecepatan = lompatanKonstan;
}
}
//script untuk mengontrol player dengan keyboard//
if (tekanKiri) { //ketika menekan arah kiri
xKecepatan -= kecKonstan;
player.scaleX = -0.7;
Universitas Sumatera Utara
13
if (xKecepatan < max_kecKonstan*-1) {
xKecepatan = max_kecKonstan*-1;
}
}
else if (tekanKanan) { //ketika menekan arah kanan
xKecepatan += kecKonstan;
player.scaleX = 0.7;
if (xKecepatan > max_kecKonstan) {
xKecepatan = max_kecKonstan;
}
}
else if (tembakJalanKiri) {
tekanKanan = false;
pressA = false;
if (_theyArePressed[Keyboard.A] &&
_theyArePressed[Keyboard.LEFT]) {
player.gotoAndStop("menembak");
xKecepatan += kecKonstan;
player.scaleX = 0.7;
if (xKecepatan > max_kecKonstan) {
xKecepatan = max_kecKonstan;
}
}
}
else if (tembakJalanKanan) {
tekanKanan = false;
pressA = false;
if (_theyArePressed[Keyboard.A] &&
_theyArePressed[Keyboard.RIGHT]) {
player.gotoAndStop("menembak");
xKecepatan += kecKonstan;
player.scaleX = 0.7;
if (xKecepatan > max_kecKonstan) {
xKecepatan = max_kecKonstan;
}
Universitas Sumatera Utara
14
}
}
//script batas kiri, kanan, atas, bawah//
if (batasKiri) { //jika menyentuh batas kiri
if (xKecepatan < 0) {
xKecepatan *= -0.5;
}
}
if (batasKanan) { //jika menyentuh batas kanan
if (xKecepatan > 0) {
xKecepatan *= -0.5;
}
}
if (batasAtas) { //jika menyentuh batas atas
if (yKecepatan < 0) {
yKecepatan *= -0.5;
}
}
if (batasBawah) { //jika menyentuh batas bawah
if (yKecepatan > 0) {
yKecepatan *= -0.2; //kecepatan y dijadikan -
0.2
}
if (tekanAtas) { //jika menekan arah atas
yKecepatan = lompatanKonstan;
}
}else { //jika tidak menyentuh lantai
yKecepatan += gravitasiKonstan;
}
if (batasBawah) { //jika menyentuh lantai bawah
if (yKecepatan > 0) {
yKecepatan = 0; //kecepatan y dijadikan 0
}
}
Universitas Sumatera Utara
15
xKecepatan *= gesekanKonstan;
yKecepatan *= gesekanKonstan;
back.x -= xKecepatan;
back.y -= yKecepatan;
var visibleP:int;
//script untuk aksi diam dan berlari
if ((tekanKiri || tekanKanan || xKecepatan > kecKonstan || xKecepatan <
kecKonstan *-1) &&
batasBawah) {
player.gotoAndStop("berlari");
if (tekanKanan && pressA) {
player.gotoAndStop("menembak");
trace("main tembak");
// script musuh mati dan hilangkan peluru
for(p=0; p<(arrMonster && arrPeluru).length; p++){
trace(p);
if(player.pose_6.hit_kotak.hitTestObject(someMonster[p])){
someMonster[p].gotoAndPlay(2);
somePeluru[p].gotoAndStop(40);
somePeluru[p].visible=false;
trace("kena pukul");
}
}
}
if (tekanKiri && pressA) {
player.gotoAndStop("menembak");
trace("main tembak");
// script musuh mati dan hilangkan peluru
for(p=0; p<(arrMonster && arrPeluru).length; p++){
trace(p);
if(player.pose_6.hit_kotak.hitTestObject(someMonster[p])){
Universitas Sumatera Utara
16
someMonster[p].gotoAndPlay(2);
somePeluru[p].gotoAndStop(40);
somePeluru[p].visible=false;
trace("kena pukul");
}
}
}
} else
if (pressA) {
// player tembak monster/musuh
player.gotoAndStop("memukul");
trace("main tembak");
// script musuh mati dan hilangkan peluru
for(p=0; p<(arrMonster && arrPeluru).length; p++){
trace(p);
if(player.pose_5.hit_kotak.hitTestObject(someMonster[p])){
someMonster[p].gotoAndPlay(2);
somePeluru[p].gotoAndStop(40);
somePeluru[p].visible=false;
trace("kena pukul");
}
}
} else
if (batasBawah) {
player.gotoAndStop("diam");
}
else {
player.gotoAndStop("melompat");
}
//jika bertumbukan dengan koin ---
for(i=0; i<arrKoin.length; i++){
if(player.hitTestObject(someVector[i])){
trace("dapatkan koin");
Universitas Sumatera Utara
17
someVector[i].visible=false;
score+=10;
score_txt.text=""+score;
someVector[i].clear = true;
}
}
//jika bertumbukan dengan papan ---
for(u=0; u<arrPapan.length; u++){
if(player.hitTestObject(somePapan[u])){
trace("naik ke atas");
somePapan[u].gotoAndStop(2);
if (somePapan[u].hitTestPoint(player.x + poinBawah.x, player.y
+ poinBawah.y, true)){
trace("bertumbukan dengan bagian bawah");
somePapan[u].gotoAndStop(2);
yKecepatan = -1;
}
yKecepatan = -460;
}
}
//jika bertumbukan dengan papan level 2 ---
if(player.hitTestObject(back.papanlv2)){
loading++;
back.papanlv2.gotoAndStop(2);
if(loading >= 10) {
loading = 0;
healtbar.removeEventListener(Event.ENTER_FRAME,mchealtbar);
stage.removeEventListener(Event.ENTER_FRAME,perulangan);
gotoAndStop("level2");
}
}
}
Universitas Sumatera Utara
18
var _theyArePressed:Object = {};
//event keyboard
stage.addEventListener(KeyboardEvent.KEY_DOWN, keydown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyup);
//fungsi keydown
function keydown(e:KeyboardEvent): void {
switch (e.keyCode) {
case Keyboard.A: {
pressA = true;break;
}
}
switch (e.keyCode) {
case Keyboard.A && Keyboard.LEFT: {
tembakJalanKiri = true;break;
}
}
switch (e.keyCode) {
case Keyboard.A && Keyboard.RIGHT: {
tembakJalanKanan = true;break;
}
}
if (e.keyCode == Keyboard.LEFT) {
tekanKiri = true;
}
else if (e.keyCode == Keyboard.RIGHT) {
tekanKanan = true;
}
else if (e.keyCode == Keyboard.SPACE) {
tekanAtas = true;
}
else if (e.keyCode == Keyboard.DOWN) {
Universitas Sumatera Utara
19
tekanBawah = true;
}
}
//fungsi keyup
function keyup(e:KeyboardEvent): void {
switch (e.keyCode) {
case Keyboard.A: {
pressA = false;break;
}
}
switch (e.keyCode) {
case Keyboard.A && Keyboard.LEFT: {
tembakJalanKiri = false;break;
}
}
switch (e.keyCode) {
case Keyboard.A && Keyboard.RIGHT: {
tembakJalanKanan = false;break;
}
}
if (e.keyCode == Keyboard.LEFT) {
tekanKiri = false;
xKecepatan = 0;
}
else if (e.keyCode == Keyboard.RIGHT) {
tekanKanan = false;
xKecepatan = 0;
}
else if (e.keyCode == Keyboard.SPACE) {
tekanAtas = false;
}
else if (e.keyCode == Keyboard.DOWN) {
tekanBawah = false;
Universitas Sumatera Utara
20
}
}
var somePapan:Vector.<MovieClip> = new Vector.<MovieClip>();
var arrPapan:Array = [];
arrPapan[0] = back.papanup;
somePapan.push(back.papanup);
var u:int;
//hitTest dengan koin
var _root:MovieClip = MovieClip(root);
var someVector:Vector.<MovieClip> = new Vector.<MovieClip>();
var arrKoin:Array = [];
arrKoin[0] = back.koin1;
arrKoin[1] = back.koin2;
arrKoin[2] = back.koin3;
arrKoin[3] = back.koin4;
arrKoin[4] = back.koin5;
arrKoin[5] = back.koin6;
arrKoin[6] = back.koin7;
arrKoin[7] = back.koin8;
arrKoin[8] = back.koin9;
arrKoin[9] = back.koin10;
arrKoin[10] = back.koin11;
arrKoin[11] = back.koin12;
arrKoin[12] = back.koin13;
arrKoin[13] = back.koin14;
arrKoin[14] = back.koin15;
arrKoin[15] = back.koin16;
arrKoin[16] = back.koin17;
arrKoin[17] = back.koin18;
arrKoin[18] = back.koin19;
arrKoin[19] = back.koin20;
Universitas Sumatera Utara
21
arrKoin[20] = back.koin21;
arrKoin[21] = back.koin22;
arrKoin[22] = back.koin23;
arrKoin[23] = back.koin24;
arrKoin[24] = back.koin25;
arrKoin[25] = back.koin26;
arrKoin[26] = back.koin27;
arrKoin[27] = back.koin28;
arrKoin[28] = back.koin29;
arrKoin[29] = back.koin30;
someVector.push(back.koin1);
someVector.push(back.koin2);
someVector.push(back.koin3);
someVector.push(back.koin4);
someVector.push(back.koin5);
someVector.push(back.koin6);
someVector.push(back.koin7);
someVector.push(back.koin8);
someVector.push(back.koin9);
someVector.push(back.koin10);
someVector.push(back.koin11);
someVector.push(back.koin12);
someVector.push(back.koin13);
someVector.push(back.koin14);
someVector.push(back.koin15);
someVector.push(back.koin16);
someVector.push(back.koin17);
someVector.push(back.koin18);
someVector.push(back.koin19);
someVector.push(back.koin20);
someVector.push(back.koin21);
someVector.push(back.koin22);
someVector.push(back.koin23);
someVector.push(back.koin24);
Universitas Sumatera Utara
22
someVector.push(back.koin25);
someVector.push(back.koin26);
someVector.push(back.koin27);
someVector.push(back.koin28);
someVector.push(back.koin29);
someVector.push(back.koin30);
var i:int;
//score
var score:Number = 0;
score_txt.text = "" + score;
// -------
//kecepatan para monster
var kecMonster0:Number = 3;
var kecMonster1:Number = 3;
Universitas Sumatera Utara
Universitas Sumatera Utara
Universitas Sumatera Utara
Universitas Sumatera Utara
Universitas Sumatera Utara
Universitas Sumatera Utara