Senin, 09 November 2015

Tugas T1: SAMPUL, KATA PENGANTAR, BAB I, dan BAB II



Kata Pengantar




Puji dan syukur Penulis panjatkan kepada Allah SWT yang telah memberikan nikmat serta karunia-Nya sehingga Penulis dapat menyelesaikan penulisan buku ini dengan baik. Judul penulisan buku yang dibuat adalah  Pengenalan Game Engine Enchant.Js . Tujuan dari pembuatan penulisan buku ini yaitu sebagai buku petunjuk untuk pengguna software game engine Enchant.js terutama bagi pengguna yang masih dalam tingkat pemula agar lebih tertarik dan terbantu dalam penggunaan software game engine Enchant.

Penulis menyadari bahwa tanpa adanya bimbingan dan dukungan penuh dari semua pihak, maka penulisan buku ini tidak akan berjalan dengan lancar. Oleh karena itu, pada kesempatan ini penulis meminta izin untuk menyampaikan ucapan terima kasih kepada: 1. Ibu Prof. Dr. E. S. Margianti, SE., MM., selaku Rektor Universitas Gunadarma. 2. Bapak Dr. rer. nat. I Made Wiryana, SKom, SSi, MAppSc., selaku dosen matakuliah softskill pengantar teknologi game.

Serta semua pihak yang telah banyak membantu terwujudnya penulisan sk-ripsi ini. Akhir kata semoga penulisan skripsi ini dapat memberikan manfaat bagi semua pihak yang bersangkutan, bagi Penulis pada khususnya dan bagi para pembaca pada umumnya.





                 Depok, 21 Oktober 2015









                                                                                                                  Penulis

  1


DAFTAR ISI
1
PENDAHULUAN
5
1.1
Latar Belakang Masalah . . . . . . . . . . . . . . . . . . . . . .
5
1.2
Rumusan Masalah . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.3
Batasan Masalah . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.4
Tujuan Masalah . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.5
Metode Penelitian . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.6
Sistematika Penulisan . . . . . . . . . . . . . . . . . . . . . . . .
6
2
PENGENALAN Enchant.js
8
2.1
Pengenalan Enchant . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.2
JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.3
Penulisan JavaScript . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.3.1 Penulisan Skrip di Head . . . . . . . . . . . . . . . . . . .
9
2.3.2 Penulisan Skrip di body . . . . . . . . . . . . . . . . . . .
10
2.3.3 Penulisan Skrip di Ekternal . . . . . . . . . . . . . . . . .
10
2.4
HTML 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.4.1 API Baru di HTML 5 . . . . . . . . . . . . . . . . . . . .
11
2.5
Pengorganisasian Game . . . . . . . . . . . . . . . . . . . . . . .
12
2.5.1
Game Objek . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.5.2
Adegan Objek . . . . . . . . . . . . . . . . . . . . . . . .
12
2.5.3
Node Objek . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.6
Siklushidup Game . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.6.1
Inisialisasi Enchant.js . . . . . . . . . . . . . . . . . . . .
13
2.6.2 State Changes and Events . . . . . . . . . . . . . . . . . .
15
2.7
Template Dasar . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.8
Basic Gambar . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.8.1      Membuat dan Menghapus Scene . . . . . . . . . . . . . .
16
2.8.2
Menampilkan Gambar . . . . . . . . . . . . . . . . . . . .
17
2.8.3
Menghapus Gambar . . . . . . . . . . . . . . . . . . . . .
18
2.8.4
Menampilkan Teks . . . . . . . . . . . . . . . . . . . . . .
18
2


DAFTAR ISI                                                                                                        3
 2.8.5
Memutar Suara . . . . . . . . . . . . . . . . . . . . . . . .
18
2.9
Dasar (Manipulasi) . . . . . . . . . . . . . . . . . . . . . . . . . .
19
2.9.1
Loading Elements . . . . . . . . . . . . . . . . . . . . . .
19
2.9.2
Proses Frame . . . . . . . . . . . . . . . . . . . . . . . . .
19
2.9.3
Proses Taps (klik) . . . . . . . . . . . . . . . . . . . . . .
20
2.10 Maps(Peta) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.10.1
A Note on Maps(Catatan pada Peta) . . .  . . . ... .
21
2.10.2
Membuat Maps(Peta) . . . . . . . . . . . . . . . . . . . .
23
2.10.3
Kendala Deteksi di Maps(Peta) . . . . . . . . . . . . .
25
2.11
Sprites
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
2.11.1
Moving Sprites . . . . . . .... . . . . . . . . . . . . . . . . .
27
2.11.2
Memutar Animasi dan Ukuran . . . . . . . . . . . . . . .
27
2.11.3
Transparansi Animasi . . . . ... . . . . . . . . . . . . . . .
27
2.11.4
Animasi dengan menggunakan kanvas . . . . . . . . .
28
2.11.5
Mendeteksi tabrakan di Animasi . . . . . . . . . . . . . .
28
2.12
Label
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
2.12.1
Merubah Color dan Font . . . . . . . . . . . . . . . . . .
29
2.12.2
Moving Label . . . . . . . . . . . . . . . . ... . . . . . . . .
29
2.12.3
Mengubah Label Transparansi . . . . . . . . . . . . . .
30
2.13
Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
2.13.1
Mengubah Scene Warna Latar Belakang . . . . .  .
30
2.13.2
Mengubah Game FPS . . . . . . . .. . . . . . . . . . . .
30
2.13.3
Skala Layar Game . . . . . . . . . . . . .. . . . . . . . . .
30
2.13.4
Mengubah Scene Selama Game Berjalan .. . . . . .
31
2.13.5
Preloading Elements . . . . . . . . . . . . . . . . .. . . . .
31
2.14
Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
2.14.1
Cara Penggunaannya . . . . . . . . . . . . . . . . . . . . .
31
2.14.2
Plugins Namespace . . . . . . . . . . . . . . . . . . . . . .
32
2.14.3
Plugins List . . . . . . . . . . . . . . ..... . . . . . . . . . . .
32

DAFTAR GAMBAR
   2.1 Animasi . . . . ..................... . . . . . . . . . . . . . . . . . . . . . . . . . . .            22
4


Bab 1



PENDAHULUAN



1.       Latar Belakang Masalah

   Teknologi komputer dewasa ini sudah sangat berkembang pesat diberbagai bi-dang, baik ilmu pengetahuan, pekerjaan, seni, dll. Pemanfaatan teknologi inidi-rasakan tidak hanya oleh orang dewasa, melainkan juga anak-anak. Pekerjaan manusia yang dikerjakan sendiri oleh manusia (manual) sudah banyak digantik-an oleh komputer. Dengan begitu semua dapat dikerjakan lebih mudah, praktis dan hemat waktu.                       

Game engine Enchant.Js merupakan game engine berbasis web yang bersi-fat open source sehingga penggunanya dapat bebas menggunakan game engnie tersebut sesuai dengan kebutuhan. Dengan sifatnya open source masih sangat disayangkan karena penggunaanya masih banyak belum diketahui loleh banyak orang.

Oleh sebab itu penulis ingin membuat buku  Pengenalan Game Engine En-chant.Js  yang dapat menarik minat pembaca dan membantu pengguna game engine Turbulenz agar dapat menggunakannya.


2.         Rumusan Masalah

Rumusan masalah dalam buku ini terdiri dari hal - hal seperti berikut :

1.      Apakah sebenarnya game engine Enchant.js itu?

2. Bagaimana langkah pertama yang harus dilakukan untuk           menggunakan game engine Enchant.js


5


BAB 1. PENDAHULUAN
                               6

3.      Batasan Masalah

Batasan masalah dalam penulisan buku ini meliputi hal - hal sebagai berikut :

      1.  Pengenalan game engine Enchant.js

2. Instalasi game engine Enchant.js

      3. Penggunaan dasar game engine Enchant.js bagi pemula


      4.       Tujuan Masalah

Tujuan dari permasalahan yang ada dalam buku ini adalah:

      1. Untuk menarik minat pembaca tentang game engine     
        Enchant.js.

      2. Untuk membantu pengguna game engine Enchant.js dalam 
        penggunaanya.


      5.             Metode Penelitian

Metode yang kami gunakan adalah deskriptif, kajian pustaka dilakukan dengan mencari literature di internet dan dokumen panduan game engine Enchant.js.

      6.              Sistematika Penulisan

Dalam Penulisan buku ini untuk mempermudah pemahaman pembaca, penulis membuat sistematika penulisan sebagai berikut :

Bab 1 : Pendahuluan

Dalam bab ini diuraikan latar belakang masalah, batasan masalah, metode pe-nelitian, selanjutnya tujuan penulisan dan terakhir sistematika penulisan yang memberikan uraian dan gambaran dalam penulisan ini.

Bab 2 : Pengenalan

Enchant.js Menjelaskan tentang Enchant.js sebagai game engine berbasis web yang bersifat open source.

Bab 3 : Instalasi Enchant.js

Menjelaskan tentang bagaimana langkah   langkah yangharus dilakukan untuk linstalasi game engine Enchant.js pada komputer.

Bab 4 : Penggunaan Enchant.js


BAB 1. PENDAHULUAN
   7

Penggunaan dasar dalam game engine Enchant.js akan dijelaskan dalam bab ini.

Bab 5 : Penutup

Pada bab ini akan berisi kesimpulan dan saran terhadap buku ini

Bab 2



PENGENALAN Enchant.js




  1. Pengenalan Enchant

  Enchant.js adalah perpustakaan untuk mengembangkan game di Javascript. En-chant.js kerangka permainan di HTML5 + JavaScript. Game menggunakan enchant.js dapat diposting ke situs. Sejak permainan ini berjalan secara inde-penden, dalam div tunggal, mereka dapat diposting pada halaman web lain dan masih berfungsi sempurna.
  Metode dasar untuk membuat game ini didasarkan dari yang telah dite-tapkan kode, yang, bersama dengan le data yang diperlukan untuk aplikasi dan perpustakaan yang mengandung enchant.js, disimpan dan upload dalam satu folder.

  1. Pro Menggunakan enchant.js:

  1. Memiliki sistem adegan grak 2D dengan Flash-seperti sederhana API.

    1. Ini cross-platform. Permainan Anda akan bekerja pada iOS, Android, dan desktop browser.

    1. Ini ringan.

    1. Ada banyak plugin yang tersedia untuk membantu Anda membuat jenis tertentu permainan, seperti visual novel atau RPG.

    1. Ini gratis dan open-source!

B. Kontra Menggunakan enchant.js:

         1.   Ini tidak memiliki perangkat tur-orientasi terkait.

    1. Ini belum mendukung multi-touch.


8

BAB 2. PENGENALAN ENCHANT.JS
9

  1. Karena kerangka itu asal Jepang, ada kurangnya sumber daya dalam ba-hasa Inggris. (Tapi tutorial ini membantu untuk mengubah itu!)

Dukungan cross-platform adalah apa yang membuat enchant.js berdiri keluar dari kerangka permainan HTML5 lainnya. Sementara itu tidak memiliki be-berapatur, versi saat ini cukup fungsional untuk membuat game kerja yang lengkap.


  1. JavaScript

JavaScript adalah bahasa pemrograman berbasis java yang merupakan inter-face pembantu dalam pemrograman web. JavaScript populer di internet dan dapat bekerja di sebagian besar penjelajah web populer seperti Internet Explo-rer (IE),Mozilla Firefox, Netscape dan Opera. Kode JavaScript dapat disisipkan dalam halaman web menggunakan tag SCRIPT.

  1. Penulisan JavaScript

Kode JavaScript biasanya dituliskan dalam bentuk fungsi yang ditaruh di tag <head> yang dibuka dengan tag <script type="text/javascript">.

<script type="text/javascript"> alert("Halo Dunia!");

</script>

Kode JavaScript juga bisa diletakkan di le tersendiri yang berekstensi .js (singkatan dari JavaScript). Untuk memanggil kode JavaScript yang terdapat di le sendiri, di bagian awal <head> harus ditentukan dahulu nama le .js yang dimaksud Smenggunakan contoh kode seperti berikut:

<script type="text/javascript" src="alamat.js"> </script>

  1. Penulisan Skrip di Head

Skrip ini akan dieksekusi ketika dipanggil (biasanya berbentuk function) atau dipanggil berdasarkan trigger pada event tertentu.] Peletakkan skrip di head akan menjamin skrip dimuat terlebih dahulu sebelum dipanggil.

BAB 2. PENGENALAN ENCHANT.JS
10

<html>

<head>

<script type="text/javascript">

...

</script>

</head>

</html>

  1. Penulisan Skrip di body

Skrip ini dieksekusi ketika halaman dimuat sampai di bagian <body>. Keti-ka menempatkan skrip pada bagian <body> berarti antara isi dan JavaScript dijadikan satu bagian.

<html>

<head>

</head>

<body>

<script type="text/javascript">

...

</script>

</body>

</html>

Jumlah JavaScript di <head> dan <body> yang ditempatkan pada doku-men tidak terbatas.

  1. Penulisan Skrip di Ekternal

Terkadang ada yang menginginkan menjalankan JavaScript yang sama dalam beberapa kali pada halaman yang berbeda, tetapi tidak mau disibukkan jika harus menulis ulang script yang diinginkan di setiap halaman. Maka JavaScript dapat ditulis di le secara eksternal. Jadi, antara dokumen HTML dan Java-Script dipisahkan, kemudian berkas tersebut dipanggil dari dokument HTML. Berkas JavaScript tersebut disimpan dengan ekstensi .js.

JavaScript : js/xxx.js document.write("pesan ini tampil ketika halaman di-load");

Untuk menggunakan eksternal JavaScript (.js) dipakai atribut "src" pada tag <script> pada halaman HTML-nya.


BAB 2. PENGENALAN ENCHANT.JS
11

<html>

<head>

</head>

<body>

<script src="xxx.js"> </script>

<p>Script di atas berada di berkas "xx.js" (eksternal) </p> </body>

</html>

  1. HTML 5

HTML5 adalah sebuah bahasa markah untuk menstrukturkan dan menampilkan isi dari Waring Wera Wanua, sebuah teknologi inti dari Internet. HTML5 adalah revisi kelima dari HTML (yang pertama kali diciptakan pada tahun 1990 dan versi keempatnya, HTML4, pada tahun 1997) dan hingga bulan Juni 2011 masih dalam pengembangan. Tujuan utama pengembangan HTML5 adalah untuk memperbaiki teknologi HTML agar mendukung teknologi multimedia terbaru, mudah dibaca oleh manusia dan juga mudah dimengerti oleh mesin.

HTML5 merupakan salah satu karya Konsortium Waring Wera Wanua (Wor-ld Wide Web Consortium, W3C) untuk mendenisikan sebuah bahasa markah tunggal yang dapat ditulis dengan cara HTML ataupun XHTML. HTML5 me-rupakan jawaban atas pengembangan HTML 4.01 dan XHTML 1.1 yang selama ini berjalan terpisah, dan diimplementasikan secara berbeda-beda oleh banyak perangkat lunak pembuat web.

  1. API Baru di HTML 5

Untuk menambah keluwesan pemformatan, pada HTML5 telah dispesikasikan pengkodean application programming interfaces (APIs). Antarmuka document object model (DOM) yang ada dikembangkan dan tur de facto didokumenta-sikan. Beberapa APIs terbaru pada HTML5 antara lain :

  1. Elemen canvas, sebagai mode untuk menggambar object dua dimensi (2D). Lihat spesikasi 1.0 untuk canvas 2D.

  1. Timed media playback

  1. Media penyimpanan luring (aplikasi web luring). Lihat Web Storage

  1. Penyuntingan dokumen

  1. Drag and Drop

BAB 2. PENGENALAN ENCHANT.JS
12

  1. Cross-document messaging

  1. Manajemen sejarah kunjungan penjelajah web

  1. Tipe MIME dan penanggung jawab protokol registrasi.

Tidak semua teknologi di atas dimasukkan pada spesikasi HTML5 W3C, meski teknologi tersebut telah termaktub dalam spesikasi milik WHATWG HTML.[20] Beberapa teknologi yang juga terkait namun tidak dijadikan bagian dalam spe-sikasi HTML5 W3C dan WHATWG HTML5 adalah :

  1. Geolocation

  1. Web SQL Database, media penyimpanan database lokal.

  1. ˆAPI Database terindeks, mode penyimpanan hierarkis key-value (Web-SimpleDB).

  1. Web Speech API.


  1. Pengorganisasian Game

Membuat game di enchant.js melibatkan menyatukan beberapa unsur. Unsur-unsur ini, dan penjelasan mereka, tercantum di bawah ini.

  1. Game Objek

Objek permainan mengawasi permainan, sistem berjalan, dan fungsi dasar per-mainan. Semua permainan berjalan frum dalam objek permainan.Setiap objek permainan menciptakan adegan objek default dengan nama rootScene.

Beberapa permainan dapat dibuat pada satu halaman web, dan dalam hal ini, satu-satunya hal yang disimpan pada halaman adalah objek permainan dan nomor masing-masing game.

  1. Adegan Objek

Benda adegan adalah kumpulan dikelompokkan benda yang terlihat pada saat yang sama. Benda adegan ini digunakan untuk mengelola visibilitas obyek No-de, yang merupakan elemen dapat ditampilkan, atau primitif, yang membuat permainan. Misalnya, ketika permainan memiliki layar Mulai, mengubah la-yar dari layar Start untuk layar di mana permainan ini benar-benar bermain dilakukan dengan beralih keluar benda Scene.


BAB 2. PENGENALAN ENCHANT.JS
13

Game dapat berisi baik benda Tema tunggal atau beberapa objek Scene. Dalam permainan yang sangat sederhana, mengubah keluar gambar dan men-ciptakan transisi dapat dicapai dengan menambahkan dan menghapus elemen dari rootScene tersebut.

Juga, benda Tema dapat ditumpuk ke dalam lapisan, dan dikelola seperti itu. Misalnya, dalam shooting game, atau game apa saja di mana ada skor yang ditampilkan pada layar, objek adegan yang berisi skor ditempatkan di depan objek adegan yang berisi adegan sebenarnya di mana permainan yang sedang dimainkan.

  1. Node Objek

Benda simpul adalah elemen visual yang membuat permainan. Pada kenyataan-nya, permainan menggunakan benda yang mewarisi fungsi benda Node murni. (Di bawah digunakan sebagai Node-jenis benda.) Contoh Node-jenis benda me-liputi:

  1. Sprite objek: Obyek yang menampilkan gambar atau gambar

  1. Label objek: Obyek yang menampilkan teks

  1. Peta objek: Obyek yang menampilkan peta permainan


  1. Siklushidup Game

Permainan memiliki siklus hidup. Dalam sebuah permainan, yang dimulai se-telah enchant.js diinisialisasi, banyak proses yang berbeda dijalankan. Jika pengguna menavigasi ke halaman diernet, atau menutup browser, permain-an berakhir, tapi ada banyak cara untuk permainan sampai akhir yang dapat direkayasa selama pengembangan.

Misalnya, permainan di atas layar dapat ditampilkan (menunjukkan skor akhir), atau pemain dapat kembali ke menu, dll Ada banyak permainan yang tidak benar-benar berakhir, karena mereka kembali ke layar menu saat pertan-dingan sudah selesai.

Dalam essance, di game dibuat dengan enchant.js, akhir dari permainan tidak penting, itulah sebabnya kami akan melanjutkan ke bagian penting dari pekerjaan dalam sebuah permainan, mulai dari inisialisasi permainan.

  1. Inisialisasi Enchant.js

Ketika permainan enchant.js menginisialisasi, hal-hal berikut terjadi:


1. Enchant.js diinisialisasi
BAB 2. PENGENALAN ENCHANT.JS
14

  1. Objek permainan diciptakan

  1. Objek permainan diinisialisasi

  1. Unsur yang membentuk objek yang dimuat

  1. Memulai permainan-kode diatur

  1. Permainan dimulai

  1. Permainan menunggu preloading untuk menyelesaikan, dan kemudian ber-lanjut

  1. Kode game awal dieksekusi Dalam contoh di atas, preloading elemen sa-ngat penting.

Sebuah implementasi sederhana dari preloading ditampilkan di bawah ini:

  1. enchant();

    1. var game = new Game(320, 320);

    1. game.preload('preload1.gif', 'preload2.wav');

    1. game.onload = function () {

    1. // Game code is written here

    1. };

    1. game.start();

  1. Enchant.js diinisialisasi

Pertama, enchant.js diinisialisasi. Hal ini membuat sehingga terlepas dari di mana pada halaman mereka ditempatkan, enchant.js objek dan variabel dapat digunakan.

2. Permainan objek diciptakan

(baris ke 3)Objek permainan, seperti dijelaskan di atas, memainkan peran sen-tral untuk permainan itu sendiri, dan melaksanakan apa yang terjadi di layar. Ketika objek permainan diinisialisasi, resolusi layar diatur. Dalam contoh ini, objek permainan yang berisi layar permainan resolusi 320 pixel dan lebar 320 piksel tinggi dibuat. 3. Permainan objek yang diinisialisasi (baris 4-7) Berikut pengaturan awal untuk objek game ditetapkan. Pengaturan awal ini mengan-dung denisi untuk pengaturan seperti fps (frame per detik) dan sebagainya.


BAB 2. PENGENALAN ENCHANT.JS
15

3. Permainan objek yang diinisialisasi

(baris 4-7) Berikut pengaturan awal untuk objek game ditetapkan. Pengaturan awal ini mengandung denisi untuk pengaturan seperti fps (frame per detik) dan sebagainya.

4. Elemen yang membentuk objek yang dimuat

(baris 4) ini dijelaskan secara lebih rinci dalam Melaksanakan Obyek Element Preloading.

5. Mulai game-kode diatur

(baris 5-7) Kode untuk permainan itu sendiri diatur tepat setelah pertandingan dimulai. Pada dasarnya, ini menciptakan adegan pertama, menu mulai, dll

6. Permainan dimulai / preloading

(baris 8) Perintah untuk permainan untuk memulai dikeluarkan di sini. Tidak bahwa sistem telah secara khusus menunggu sampai sekarang (hal maju sebagai normal), tetapi ini adalah di mana program permainan itu sendiri sebenarnya dimulai. Hal ini terjadi oleh game.onload dipanggil. Jika tidak ada kode telah ditulis untuk permainan, pengolahan permainan berhenti di sini. Berikutnya datang tahap preloading, dan sistem akan menunggu untuk ini untuk menyele-saikan sebelum mengeksekusi kode game.

7. Kode permainan awal dieksekusi

Setelah preloading selesai dan permainan dimulai, pengolahan permainan dimu-lai lagi. Pada saat ini, unsur-unsur ditetapkan dari garis 5-7 atas ke game.onload dieksekusi. Pada dasarnya, itu adalah pada titik ini bahwa kode untuk perma-inan pengguna digunakan, jadi kita akan mulai menulis kode ini.

Jika permainan yang sudah sangat besar, kode untuk awal permainan (misal-nya kode untuk layar menu) dapat ditulis secara terpisah dari kode permainan utama, dan kemudian disebut pada saat ini.

  1. State Changes and Events

Sebuah permainan yang dibuat di js mempesona berisi beberapa negara. Hal yang disebut Events terjadi tergantung pada negara-negara. Dengan mende-nisikan kode tertentu untuk diproses ketika mereka ovents terjadi, permainan dibuat.

Berikut adalah peristiwa utama:


BAB 2. PENGENALAN ENCHANT.JS
16

  1. ENTER_FRAME: Terjadi ketika sebuah frame mulai

  1. A_BUTTON_DOWN: Terjadi ketika tombol ditekan A

  1. B_BUTTON_DOWN: Terjadi ketika tombol ditekan B

  1. DOWN_BUTTON_DOWN: Terjadi ketika tombol kursor ke bawah di-tekan

  1. LEFT_BUTTON_DOWN: Terjadi ketika tombol kursor kiri ditekan

  1. RIGHT_BUTTON_DOWN: Terjadi ketika tombol kursor kanan ditekan

  1. UP_BUTTON_DOWN:Terjadi ketika tombol kursor up ditekan

Untuk informasi lebih rinci mengenai peristiwa lainnya tipe tertentu, bacalah dokumentasi enchant.js resmi.


  1. Template Dasar

    1. enchant();

    1. window.onload = function () {

    1. var game = new Game(320, 320);

    1. game.onload = function () {

    1. // Anything written here is processed

    1. };

  1. game.start();

    1. }

  1. Basic Gambar

  1. Membuat dan Menghapus Scene

Di sini kita akan membuat sebuah adegan. Membuat Tema melibatkan berikut:

  1. Creating the Scene

  1. Adding Node objects

  1. alling pushScene()

BAB 2. PENGENALAN ENCHANT.JS
17

Hanya ada 3 langkah. Ketika pushScene () disebut, Tema yang ditampilkan pada layar.

  1. var scene = new Scene();

  1. game.pushScene(scene);

  1. // an example of adding a Node object

  1. scene.addChild(sprite);

Jika hanya ada satu adegan ditampilkan, dapat dihapus dengan popScene

().

1. game.popScene();

  1. Menampilkan Gambar

Untuk menggunakan gambar, kita menggunakan subjek Sprite.

  1. var sprite = new Sprite(64, 64);

  1. sprite.image = game.assets['chara0.gif'];

  1. scene.addChild(sprite);

Dalam rangka untuk menempatkan layar gambar, itu harus telah dimuat sebelumnya.

  1. window.onload = function () {

  1. enchant();

  1. var game = new Game(320, 320); game.preload('chara0.gif');

  1. game.onload = function() {

  1. var scene = new Scene();

  1. var sprite = new Sprite(32, 32);

  1. sprite.image = game.assets['chara0.gif'];

  1. scene.addChild(sprite);

  1. game.pushScene(scene);

  1. };

  1. game.start();

  1. };


BAB 2. PENGENALAN ENCHANT.JS
18

  1. Menghapus Gambar

Gambar dapat ditampilkan dengan menggunakan metode Tema addChild (), dan dapat dihapus dengan menggunakan metode removeChild().

  1. // Erases a sprite from the screen

    1. game.rootScene.removeChild(sprite)

  1. Menampilkan Teks

Untuk menampilkan teks pada layar, gunakan Label.

  1. var label = new Label("test");

    1. scene.addChild(label) window.onload = function () {

    1. enchant();

    1. var game = new Game(320, 320); game.onload = function () {

    1. var scene = new Scene();

    1. var label = new Label("test"); scene.addChild(label); ga-me.pushScene(scene);

    1. };

    1. game.start();

    1. }

  1. Memutar Suara

Untuk memutar suara, kita menggunakan metode Suara objek play().

1. game.assets['audio.wav'].play();

Sejak objek suara tidak Nod, tidak perlu untuk mendaftarkan mereka ke ebuah scene, seperti Sprite atau Label. Namun, seperti elemen lain yang digu-nakan dalam permainan, mereka harus dimuat sebelum mereka dipanggil.


BAB 2. PENGENALAN ENCHANT.JS
19

  1. enchant();

    1. window.onload = function () {

    1. var game = new Game(320, 320);

    1. game.preload('jump.wav');

    1. game.onload = function() {

    1. game.assets['jump.wav'].play();

    1. };

    1. game.start();

    1. };

  1. Dasar (Manipulasi)

  1. Loading Elements

Untuk memuat elemen selama di sebuah game, metode permainan objek load() yang digunakan. Metode load dapat digunakan untuk memuat gambar, suara, atau le lain yang diperlukan.

game.load('imagele.png' function () {

// Code written here is executed after loading is complete });

Metode load() hanya dapat memuat satu le. Oleh karena itu, ketika loading beberapa le, perlu untuk memanggil metode load() untuk setiap le yang akan diambil. Jika Anda memuat dalam beberapa le, itu jauh lebih mudah untuk preload mereka sebagai gantinya.

  1. Proses Frame

Pengolahan bingkai dilakukan dengan menggunakan ENTER_FRAME. Dengan setiap frame maju, ENTER_FRAME akan terjadi, sehingga setiap metode ter-daftar terjadi ketika peristiwa yang terjadi akan kembali pada setiap awal frame.
  1. game.addEventListener('enterframe', function () {

  1. // Write code to be processed every frame here

  1. });


BAB 2. PENGENALAN ENCHANT.JS
20

  1. // Sample which moves an image to the right

    1. enchant();

    1. window.onload = function () {

    1. var game = new Game(320, 320);

    1. game.preload('chara0.gif');

    1. game.onload = function() {

    1. var scene = new Scene();

    1. var sprite = new Sprite(32, 32);

    1. sprite.image = game.assets['chara0.gif'];

    1. scene.addChild(sprite);

    1. game.addEventListener('enterframe', function() {

    1. sprite.x += 1;

    1. });

    1. game.pushScene(scene);

    1. };

    1. game.start();

    1. };

  1. Proses Taps (klik)

TOUCH_START dan TOUCH_END Acara dipicu ketika pemain menyentuh (klik) layar). (Catatan: Tapping layar pada ponsel pintar dan mengklik layar pada komputer diperlakukan sebagai hal yang sama di enchant.js.) Ketika pe-main tekan atau klik pada objek Node ditampilkan, TOUCH_START untuk objek Node adalah dispached segera pada titik waktu di mana layar disentuh atau tombol mouse diklik. Akibatnya, TOUCH_END terjadi pada titik wak-tu ketika pemain berhenti menyentuh objek Node, atau ketika tombol mouse dilepaskan.

Metode dan kode lain dapat didaftarkan untuk objek Node tertentu. Node ini dapat digunakan untuk membuat interaktivitas serta animasi.

Registrasi metode tertentu yang ingin dijalankan ketika sebuah objek disen-tuh atau dilepaskan, untuk hal pendengar bahwa objek tertentu.


BAB 2. PENGENALAN ENCHANT.JS
21

  1. sprite.addEventListener('touchend', function() {

  1. // Code written here will be executed when the the user stops touching (or lets up the mouse button from) the sprite

  1. });

  1. // This sample shows an image that will move to the right when clicked

    1. enchant();

    1. window.onload = function () {

    1. var game = new Game(320, 320);

    1. game.preload('chara0.gif');

    1. game.onload = function() {

    1. var scene = new Scene();

    1. var sprite = new Sprite(32, 32);

    1. sprite.image = game.assets['chara0.gif'];

    1. scene.addChild(sprite);

    1. sprite.addEventListener('touchstart', function() {

    1. sprite.x += 1;

    1. });

    1. game.pushScene(scene);

    1. };

    1. game.start();

    1. };

  1. Maps(Peta)

  1. A Note on Maps(Catatan pada Peta)

Peta fungsionalitas yang disediakan oleh enchant.js dapat digunakan untuk de-ngan mudah membuat peta untuk 2D RPG!.Untuk menggunakan fungsi peta berikut ini harus dipersiapkan terlebih dahulu:

ˆ Tile Set
BAB 2. PENGENALAN ENCHANT.JS
22






Gambar 2.1: Animasi

ˆ Peta data

Ubin set dasarnya lembar animasi yang berisi semua ubin yang akan digunakan pada peta, diletakkan dalam kotak dengan setiap sel ukuran yang sama.

Data peta menentukan bagaimana ubin ini harus ditata, satu ubin pada setiap waktu. Data ini disusun dalam array JavaScript.


BAB 2. PENGENALAN ENCHANT.JS
23

  1. var baseMap = [

    1. [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

    1. [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

    1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0],

    1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

    1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

    1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

    1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

    1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

    1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

    1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

    1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

    1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0],

    1. [ 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

    1. [ 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

    1. [ 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

    1. [ 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

    1. ];

  1. Membuat Maps(Peta)

Untuk membuat sebuah peta, digunakan sebuah objek peta.


BAB 2. PENGENALAN ENCHANT.JS
24

  1. // Create a Map and draw it on-screen

  1. var map = new Map(16, 16);

  1. map.image = game.assets['map0.gif'];

  1. var baseMap = [

  1. [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

  1. [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0],

  1. [ 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

  1. [ 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

  1. [ 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

  1. [ 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

  1. ];

  1. map.loadData(baseMap);

  1. scene.addChild(map);

Dalam kode diatas, berikut ini yang akan terjadi:

  1. Objek Peta dibuat

  1. Menyusun ubin pada gambar diteruskan ke properti gambar Peta objek

  1. Data peta Array dilewatkan ke metode Peta objek LoadData


BAB 2. PENGENALAN ENCHANT.JS
25

4. Persiapan untuk objek Peta selesai

Dari sini, karena persiapan untuk menarik objek Peta selesai, itu akan ditam-pilkan pada layar dengan menambahkannya ke scene dengan addChild ().

  1. Kendala Deteksi di Maps(Peta)

Untuk memeriksa apakah tempat tertentu di peta mengandung kendala, metode Map objek hitTest() dapat digunakan.


Deteksi kendala menggunakan hitTest () tergantung pada kemampuan untuk membaca properti collisionData dari objek Peta yang bersangkutan. Properti tabrakan data berisi data peta yang menunjukkan jika ada kendala bagi setiap sel (didenisikan oleh baik 0 atau 1).
BAB 2. PENGENALAN ENCHANT.JS
26

  1. // Obstacle Detection on Maps

  1. var map = new Map(16, 16);

  1. map.image = game.assets['map0.gif'];

  1. var baseMap = [

  1. [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

  1. [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0],

  1. [ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0],

  1. [ 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

  1. [ 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

  1. [ 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

  1. [ 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

  1. ];

  1. map.loadData(baseMap);

  1. var colMap = [

  1. [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

  1. [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

  1. [ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],

  1. [ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],

  1. [ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],

  1. [ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],

  1. [ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],

  1. [ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],


BAB 2. PENGENALAN ENCHANT.JS
27

  1. Sprites

  1. Moving Sprites

Animasi bergerak dapat dicapai dengan memodikasi sifat animasi objek x dan y .

  1. // x and y positions are specied on the Sprite's properties

  1. sprite.x = 100; sprite.y = 20;

Animasi objek X dan y selalu berisi lokasi Sprite saat ini, sehingga dapat digunakan seperti ini:

  1. // Move the Sprite to the left by 10

  1. sprite.x -= 10;

Dengan cara ini, itu mungkin untuk memindahkan animasi relatif terhadap lokasi saat ini.

  1. Memutar Animasi dan Ukuran

Memutar animasi dapat dicapai dengan metode animasi objek rotate().

  1. // Rotate the Sprite by 120 degrees

  1. sprite.rotate(120);

Anda mungkin bisa memberitahu dari kode, bahwa unit pengukuran yang digunakan untuk sudut rotasi dalam derajat. Tentu, sudut saat objek animasi selalu dapat diperoleh dari properti rotasi objek animasi.

  1. // View a Sprite's current angle of rotation

  1. console.log(sprite.rotation);

Sekala animasi dapat dicapai dengan metode objek animasi scale()

// Double the width of a Sprite sprite.scale(2, 1);

Tentu untuk mengetahui faktor skala saat dari animasi, objek animasi scaleX dan ScaleY dapat dirujuk.

  1. // View the Sprite's current scale factor

    1. console.log(sprite.scaleX);

    1. console.log(sprite.scaleY);

  1. Transparansi Animasi

Untuk mengubah transparansi dari Sprite, menggunakan properti opacity Sprite objek.

BAB 2. PENGENALAN ENCHANT.JS
28

  1. // To give the sprite an opacity of 50%

  1. sprite.opacity = 0.5;

Nilai properti opacity harus antara 1 dan 0 Sepenuhnya buram (terlihat) adalah 0, dan benar-benar transparan adalah 1.

  1. Animasi dengan menggunakan kanvas

Unsur kanvas HTML5-ditetapkan dapat digunakan sebagai elemen Animasi gambar (apa yang muncul di layar) di tempat gambar yang sebenarnya. Keti-ka elemen Canvas digunakan dengan cara ini, terlebih dahulu harus disiapkan sebagai objek Permukaan.

  1. // use a Canvas element as a Sprite's drawing element

  1. var surface = new Surface(320, 320);

  1. sprite.image = surface;

Jika permukaan objek digunakan oleh Animasi, dapat digunakan dengan menunjuk sebagai properti gambar animasi.

Sejak beberapa metode menggunakan elemen Canvas yang didukung untuk permukaan objek, silahkan cek Dokumentasi enchant.js resmi untuk informasi lebih lanjut.

  1. Mendeteksi tabrakan di Animasi

Apakah suatu animasi yang diberikan telah bertabrakan (atau menyentuh) ani-masi lain dapat ditentukan dengan berpotongan dengan metode intersect() dan within().

Metode berpotongan mendeteksi jika daerah satu animasi yang bertabrakan atau kontak dengan sesuatu yang lain. Catatan, jika Anda membuat animasi 64Ö 64 ukuran, tetapi kemudian menggunakan 30 gambar Ã– 30-berukuran untuk animasi, daerah asli animasi dari 64 Ã– 64 akan digunakan untuk deteksi, jadi hati-hati.

  1. // Detect if sprite collides with sprite2

  1. if(sprite.intersect(sprite2)) {

  1. alert("hit!"); }

Metode within() mendeteksi tabrakan berdasarkan jarak dari titik pusat dari sprite dan titik pusat dari objek lain.


BAB 2. PENGENALAN ENCHANT.JS
29


  1. // if the distance between the center point of sprite and sprite2 is 40 or less, the alert is displayed

    1. if(sprite.within(sprite2, 40)) { alert("hit!"); }

  1. Label

  1. Merubah Color dan Font

Mengganti warna teks Label dicapai dengan properti warna Label objek.

  1. // Change the label color to red

  1. label.color = '#f00';

Setiap nilai warna yang valid dalam CSS dapat digunakan.

Sebagai contoh:

  1. # 123

  1. # 123456

  1. hitam

semua nilai warna valid.

Mengubah font Label dilakukan dengan menggunakan properti font Label objek.

  1. // Change the Label's font

  1. label.font = "8px cursive";

Apa nilai properti Font CSS dapat digunakan.

(Peringatan:. Font properti di CSS berbeda dengan properti font-family Ketika mendeklarasikan properti font, minimal font-size dan font-family harus dinyatakan untuk bekerja dengan baik.

  1. Moving Label

Moving label dicapai dengan mengubah label objek x dan y

  1. // Display the Label at position 100,20 (x,y)

  1. label.x = 100;

  1. label.y = 20;

Tentu posisi saat label selalu dipertahankan dalam label x dan y.

  1. // Move a Label to the left by 10

  1. label.x -= 10;


BAB 2. PENGENALAN ENCHANT.JS
30

Dengan cara ini, Label dapat dipindahkan relatif terhadap posisi mereka saat ini.

  1. Mengubah Label Transparansi

Label transparansi dapat dikontrol dengan properti opacity label objek.

  1. // Make the label 50% transparent

  1. label.opacity = 0.5;

Dia menilai properti opacity harus antara 1 dan 0 Sepenuhnya buram (ter-lihat) adalah 0, dan benar-benar transparan adalah 1.


  1. Miscellaneous

  1. Mengubah Scene Warna Latar Belakang

Sebuah latar belakang Adegan ditentukan oleh properti background warna Scene objek.

  1. // Change a Scene's background color to red

  1. scene.backgroundColor = 'red';

Setiap nilai warna yang valid dalam CSS dapat digunakan.

  1. Mengubah Game FPS

Dalam rangka untuk mengubah fps permainan, memodikasikan properti fps Game objek.

  1. // Make the game run at 30 frames per second

  1. game.fps = 30;

Perhatikan bahwa properti ini hanya terpanggil ketika game.start() dijalank-an, dan harus diubah sebelum metode yang disebut untuk berlaku. Mengubah fps dari permainan setelah telah dimulai tidak mungkin.

  1. Skala Layar Game

Untuk mengubah faktor skala layar permainan, memodikasi properti skala Ga-me objek.

  1. // Enlarge the game screen by a factor of 2

  1. game.scale = 2;



BAB 2. PENGENALAN ENCHANT.JS
31

Perhatikan bahwa properti ini hanya terpanggil ketika game.start() dijalank-an, dan harus diubah sebelum metode yang disebut untuk berlaku. Mengubah fps dari permainan setelah telah dimulai tidak mungkin.

  1. Mengubah Scene Selama Game Berjalan

Untuk mengubah layar ditampilkan ketika loading, memodikasi properti me-muat adegan Game objek.

  1. // Change the screen shown when loading

  1. game.loadingScene = myscene;

Pemuatan adegan harus ditentukan sebelum game mengeksekusi start ().

  1. Preloading Elements

Dalam enchant.js, elemen dapat dimuat sebelum game mengeksekusi start ().

  1. // Preload elements

  1. game.preload('data1.jpg', 'data2.png', 'data3.wav');

Seperti ditunjukkan di atas, beberapa elemen dapat dimuat dengan mema-sukkan koma di antara mereka. Hal ini juga memungkinkan untuk memuat satu elemen juga.

  1. Plugins

Melekat enchant.js beberapa modul (plugin) yang menambahkan fungsionalitas tambahan untuk perpustakaan utama.

  1. Cara Penggunaannya

<script src="js/enchant.js" />

<script src="js/nineleap.enchant.js" /> <script src="js/twitter.enchant.js" />

Semua plugin ini harus dimuat setelah perpustakaan utama, enchant.js di-muat. Semua perpustakaan dengan dependensi harus dimuat setelah perpus-takaan mereka bergantung pada yang dimuat. Berhati-hatilah dari urutan di mana Anda memuat plugin saat menggunakan gl.enchant.js atau plugin yang berinteraksi dengan 9leap.

Jika sebuah plugin gagal untuk memuat kesalahan berikut akan ditampilkan (v0.6.0):

superclass is not dened.


BAB 2. PENGENALAN ENCHANT.JS
32

  1. Plugins Namespace

Ruang nama untuk plugin yang terkandung dalam objek enchant. Sebagai con-toh, semua kelas termasuk dalam gl.enchant.js didenisikan dalam lokasi seperti:

enchant.gl.Shader enchant.gl.Sprite3D

Dalam namespace Plugin, untuk item yang berisi properti aset, aset tersebut dimuat. Misalnya, dalam kode berikut diambil dari nineleap.enchant.js, aset start.png danend.png dimuat.
enchant.nineleap = { assets: ['start.png', 'end.png'] };

Dalam kode permainan, fungsi pertama yang berjalan adalah enchant();. Di sini, semua kelas yang didenisikan oleh namespace yang diekspor secara global. Secara khusus, berikut ini terjadi:

var Core = enchant.Core; var Sprite = enchant.Sprite;

var Entity = enchant.Entity; ... (and so on)

var Core = enchant.gl.Core; // Overwrites the Core class with a new denition var Shader = enchant.gl.Shader;

var Sprite3D = enchant.gl.Sprite3D;

... (and so on - this is where plugins get exported)

Dengan didenisikan dalam namespace global, kelas Plugin menjadi bergu-na. (ex. var game = new Core(320, 320);)

Plugins baru dibuat dan diperbarui sering, jadi silakan memeriksa dokumen-tasi untuk informasi yang paling up-to-date pada pelaksanaannya.

  1. Plugins List

Saat repositori wise9 / enchant.js berisi plugin berikut. Daftar ini disusun mencerminkan hirarki plugin.

  1. avatar

  1. nineleap o twitter

o memory o socket

  1. ui

  1. widget

  1. box2d


BAB 2. PENGENALAN ENCHANT.JS
33

  1. gl

o bone.gl o collada.gl o mmd.gl o physics.gl
o primitive.gl

  1. extendMap

Ocial repositori Plugin postingan terletak di wise9 / enchant.js-contrib. Plu-gins kode oleh masyarakat yang diposting di sini.

Bagian berikutnya memberikan ringkasan tentang berbagai plugin resmi. Penjelasan rinci dan contoh kode keduanya dapat ditemukan dalam dokumentasi resmi dan kode sumber dari plugin yang sesuai.

1. avatar.enchant.js

Ini adalah perpustakaan karakter animasi yang dibuat dari perpustakaan elemen gambar yang dibuat oleh EIU.

Berikut adalah kelas yang disiapkan oleh plugin ini:

  1. Character image class

  1. Enemy Character image class

  1. Scenery image class

Penggunaan elemen gambar avatar.enchant.js dibatasi untuk free game dibuat dengan enchant.js (nirlaba game tidak dapat menggunakan perpustakaan ini), tapi dapat digunakan tanpa memperoleh izin dari EIU atau menampilkan se-suatu yang istimewa di layar. Perlu diketahui bahwa plugin ini didukung oleh server API.

2. nineleap.enchant.js

Plugin ini mengelola komunikasi dengan dev permainan publik dan berbagi situs 9leap jika permainan diupload ke situs. Plugin ini memiliki plugin yang bergantung padanya (twitter, memori), dan mendukung fungsi-fungsi berikut:

  1. Communication with the 9leap Score Ranking API

  1. Display of the Game Start and Game Over splash screens

start.png dan end.png gambar harus disimpan dalam direktori yang sama hirarki sebagai le html yang menyebut permainan. Jangan ragu untuk menggunakan gambar sampel termasuk dalam images/ direktori.


BAB 2. PENGENALAN ENCHANT.JS
34

3. twitter.enchant.js

Tergantung Plugin: nineleap.enchant.js

Jika pengguna log in ke 9leap dengan informasi akun Twitter mereka, plugin ini memperoleh info akun yang relevan dari Twitter.

Informasi berikut dapat diperoleh (untuk pengguna yang login):

  1. User information

  1. Recent tweets

  1. Info on users the user is following

Misalnya, ini dapat digunakan untuk membuat game di mana pengikut Anda di twitter muncul sebagai chracters dalam RPG.

4. memory.enchant.js

Tergantung Plugin: nineleap.enchant.js.

9leap mendukung penghematan data khusus untuk pengguna yang login dengan akun Twitter.

Informasi berikut dapat diperoleh dengan plugin ini:

  1. Individual user data

  1. Data shared by all users

Menyimpan data fungsi dapat dilakukan dengan cookies atau localStorage, teta-pi metode seperti menghubungkan ke akun Twitter, menabung untuk repositori dari permainan individu, dan referensi repositori umum data pengguna bersama juga dapat digunakan.

5. ui.enchant.js

Perpustakaan ini berisi denisi untuk User Interface kelas elemen yang dapat digunakan dalam game. Kelas berikut termasuk:

  1. D-pad (Pad)

  1. Analog Keypad (APad)

  1. Button (Button)

  1. Font image [like spritesheets for text] (MutableText)

  1. Score label (ScoreLabel)

  1. Time label (TimeLabel)


BAB 2. PENGENALAN ENCHANT.JS
35

  1. Life label (LifeLabel)

  1. Bar (Bar)

Elemen-elemen gambar utama untuk perpustakaan ini (pad.png, apad.png, icon0.png, font0.png) harus berada di struktur direktori yang sama dengan le html yang menyebut permainan. Jangan ragu untuk menggunakan le gambar sampel terletak di images/ folder.

6. gl.enchant.js

Plugin ini menambahkan dukungan untuk menggambar menggunakan WebGL. Shader, quaternions, sumber cahaya, kamera, dan sebagainya termasuk, dan API intuitif didukung. Perpustakaan lain dengan fungsi serupa, seperti Three.js juga ada. Berikut ini contoh kelas yang didukung:

  1. Sprite3D (corresponds to the Sprite class)

  1. Scene3D (Corresponds to the Scene class)

  1. Camera3D (Camera class)

  1. Light3D (Lighting class)

Meskipun beberapa submodul ada untuk menyediakan fungsionalitas tambah-an, perpustakaan inti gl.enchant.js dapat digunakan dengan sendirinya untuk banyak hal yang berbeda.

  1. bone.gl.enchant.js Plugin ini mendenisikan kelas mendukung skinning animation

  1. collada.gl.enchant.js Plugin ini untuk memuat data model 3D yang me-lalui format le Collada.

  1. mmd.gl.enchant.js Plugin ini memungkinkan pembacaan data anima-si melalui PMD dan format le VMD untuk MMD (Miku Miku Dance) alat animasi, dikembangkan di Jepang.

  1. widget.enchant.js Plugin mendukung penggunaan berbagai elemen User Interface.

BAB 2. PENGENALAN ENCHANT.JS
36

7. tl.enhanct.js

fungsi tl.enchant.js telah digabungkan dengan enchant.js. Di bawah ini adalah kelas termasuk:

  1. Timeline class

  1. Action class

  1. Easing class

Misalnya untuk membuat karakter utama (contoh pemain atau kelas Sprite) pindah ke (160.160) lebih dari 30 frame:
player.tl.moveBy(160, 160, 30); // Move to (160,160) over 30 frames
Untuk menampilkan "Game Over" peringatan setelah 300 frame:
game.rootScene.tl.delay(30).then(function(){ alert("Game Over"); });

Hal ini juga memungkinkan untuk menentukan berdasarkan waktu animasi bukan animasi berbasis frame. Bahkan jika gambar layar tertinggal, item terse-but akan berakhir di mana ia seharusnya dalam jumlah waktu yang ditentukan.

player.tl.setTimeBased(); player.tl.moveBy(160, 160, 1000); // -> Move to (160x160) over 1000ms












































































































Tidak ada komentar:

Posting Komentar