Rumah hujung hadapan web tutorial js Mencipta rekod penuh pertempuran kereta kebal dengan kemahiran javascript (2)_javascript

Mencipta rekod penuh pertempuran kereta kebal dengan kemahiran javascript (2)_javascript

May 16, 2016 pm 04:30 PM
javascript berorientasikan objek

2. Perbaik peta

Peta kami mempunyai halangan seperti kawasan lapang, dinding, keluli, rumput, air dan ibu pejabat. Kita boleh mereka semua ini sebagai objek.

2.1 Cipta kumpulan objek halangan

Kumpulan objek menyimpan objek pada pelbagai peta Kami menggunakan sifat objek untuk menentukan sama ada objek boleh dilalui atau diserang.

Barrier.js:

Salin kod Kod adalah seperti berikut:

// Objek kelas asas halangan, diwarisi daripada TankObject
Penghalang = fungsi () {
Ini.DefenVal = 1; // Kuasa pertahanan
This.CanBeAttacked = true; // Sama ada ia boleh diserang
}
Barrier.prototype = TankObject baharu();
// Dinding
WallB = fungsi () { }
WallB.prototype = Penghalang baharu();
// Ruang terbuka
EmptyB = fungsi () {
This.CanAcross = benar; // Boleh dilalui
}
EmptyB.prototype = Penghalang baharu();
// Sungai
RiverB = fungsi () {
This.DefenVal = 0;
This.CanBeAttacked = false; // Ahli objek diambil dahulu, dan mereka yang diwarisi daripada kelas induk akan ditimpa.
}
RiverB.prototype = Penghalang baharu();
// Keluli
SteelB = fungsi () {
Ini.DefenVal = 3;
}
SteelB.prototype = Penghalang baharu();
// Objek rumput
TodB = fungsi () {
This.CanBeAttacked = palsu;
This.DefenVal = 0;
This.CanAcross = benar;
}
TodB.prototype = Penghalang baharu();
//Ibu Pejabat
PodiumB = fungsi () {
Ini.DefenVal = 5;
}
PodiumB.prototype = Penghalang baharu();

2.2 Data ditulis pada peta.

Tambahkan kod berikut dalam Common.js:

Salin kod Kod adalah seperti berikut:

//Penghitungan jenis elemen peta
/*
0: Ruang terbuka
1: Dinding
2: Keluli
3: Semak
4:Sungai
5: Ibu Pejabat
*/
var EnumMapCellType = {
Kosong: "0"
, Dinding: "1"
, Keluli: "2"
, Tod: "3"
, Sungai: "4"
, Podium: "5"
};
//Nama gaya yang sepadan dengan setiap rupa bumi
var ArrayCss = ['kosong', 'dinding', 'keluli', 'tod', 'sungai', 'podium'];
// Peta aras
/*Tahap*/
var str = '0000000000000';
str = ',0011100111010';
str = ',1000010000200';
str = ',1200333310101';
str = ',0000444400001';
str = ',3313300001011';
str = ',3011331022011';
str = ',3311031011011';
str = ',0101011102010';
str = ',0101011010010';
str = ',0100000000110';
str = ',0100012101101';
str = ',0010015100000';
//Peta tahap storan 0,1,2,3... masing-masing adalah 1-n...Tahap
var Top_MapLevel = [str];

2.3 Lukis peta

Setelah persiapan selesai, mari kita mula menghidangkan hidangan dan melukis peta. Seperti yang dinyatakan sebelum ini, peta kami ialah jadual 13 * 13. Oleh itu, kami menambah atribut baris dan lajur pada objek pemuatan permainan, dan menambah kaedah peta permulaan.

Frame.js:

Salin kod Kod adalah seperti berikut:

// Objek pemuatan permainan Objek teras keseluruhan permainan
GameLoader = fungsi () {
This._mapContainer = document.getElementById("divMap"); // Div
yang menyimpan peta permainan This._selfTank = null; // tangki pemain
This._gameListener = null; // id pemasa gelung utama permainan
/*Atribut baharu ditambah dalam v2.0*/
Tahap_ini = 1;
This._rowCount = 13;
This._colCount = 13;
This._battleField = []; // Simpan tatasusunan dua dimensi objek peta
}
//Muatkan kaedah peta
Beban: fungsi () {
// Mulakan peta mengikut tahap
        var map = Top_MapLevel[this._level - 1].split(",");
        var mapBorder = UtilityClass.CreateE("div", "", "mapBorder", this._mapContainer);
// Lintas setiap sel dalam jadual peta
untuk (var i = 0; i < this._rowCount; i ) {
                                    // Buat div, dan peta setiap baris disimpan dalam div ini
            var divRow = UtilityClass.CreateE("div", "", "", mapBorder);
//Buat tatasusunan lain dalam tatasusunan satu dimensi
This._battlefield[i] = [];
untuk (var j = 0; j < this._colCount; j ) {
// Baca data peta, nilai lalai: 0
              var v = (peta[i] && peta[i].charAt(j)) || 0;
// Masukkan elemen span, elemen span ialah unit peta
              var spanCol = UtilityClass.CreateE("span", "", "", divRow);
                     spanCol.className = ArrayCss[v];
                         // Letakkan objek peta ke dalam tatasusunan dua dimensi untuk memudahkan pengesanan perlanggaran seterusnya.
              var to = null;
suis (v) {
kes EnumMapCellType.Empty:
                                 kepada = EmptyB( baharu);
rehat;
kes EnumMapCellType.Wall:
                                 kepada = WallB baharu();
rehat;
kes EnumMapCellType.Steel:
                                  kepada = SteelB baharu();
rehat;
kes EnumMapCellType.Tod:
                                 kepada = TodB baharu();
rehat;
kes EnumMapCellType.River:
                              kepada = RiverB baharu();
rehat;
kes EnumMapCellType.Podium:
                              kepada = PodiumB baharu();
rehat;
                                                                                                                                                                                                                                  ... buang Ralat baharu("Nombor peta di luar sempadan!");
rehat;
                 }
                     kepada.UI = spanCol;
                         // j di sini ialah X, kerana gelung dalam adalah mendatar, x ialah absis
                          kepada.XPosition = j;
                        kepada.YPosition = i;
                                           // Simpan objek peta semasa ke dalam tatasusunan dua dimensi, obj ialah objek halangan dan penghuni ialah objek yang menduduki
This._battleField[i][j] = { obj: to, occupier: null, lock: false };
                                           //tamat untuk
                                     // tamat untuk
                                                                                                                                                                                                                                     // Masukkan ke dalam pembolehubah global tetingkap
            tetingkap.BattleField = ini._battleField;
}

ok, peta kami selesai di sini. Komen di sini sangat terperinci Jika anda masih tidak memahami sesuatu, muat turun kod sumber dan nyahpepijatnya sendiri.


Di sini kami terutamanya memuatkan data peta dan memasukkan setiap peta ke dalam dokumen html sebagai elemen span. Dan simpan objek peta dalam tatasusunan dua dimensi. Pada masa hadapan, apabila kita melakukan pengesanan perlanggaran, kita boleh terus mendapatkan objek tatasusunan yang sepadan melalui koordinat objek, yang sangat mudah.

Dilampirkan kod sumber:

http://xiazai.jb51.net/201411/yuanma/jstankedazhan(jb51.net).rar

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Jan 05, 2024 pm 06:08 PM

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

Terokai pengaturcaraan berorientasikan objek dalam Go Terokai pengaturcaraan berorientasikan objek dalam Go Apr 04, 2024 am 10:39 AM

Bahasa Go menyokong pengaturcaraan berorientasikan objek melalui definisi jenis dan perkaitan kaedah. Ia tidak menyokong warisan tradisional, tetapi dilaksanakan melalui gubahan. Antara muka menyediakan ketekalan antara jenis dan membenarkan kaedah abstrak ditakrifkan. Kes praktikal menunjukkan cara menggunakan OOP untuk mengurus maklumat pelanggan, termasuk mencipta, mendapatkan, mengemas kini dan memadam operasi pelanggan.

Ciri Lanjutan PHP: Amalan Terbaik dalam Pengaturcaraan Berorientasikan Objek Ciri Lanjutan PHP: Amalan Terbaik dalam Pengaturcaraan Berorientasikan Objek Jun 05, 2024 pm 09:39 PM

Amalan terbaik OOP dalam PHP termasuk konvensyen penamaan, antara muka dan kelas abstrak, pewarisan dan polimorfisme, dan suntikan kebergantungan. Kes praktikal termasuk: menggunakan mod gudang untuk mengurus data dan menggunakan mod strategi untuk melaksanakan pengisihan.

Analisis ciri berorientasikan objek bahasa Go Analisis ciri berorientasikan objek bahasa Go Apr 04, 2024 am 11:18 AM

Bahasa Go menyokong pengaturcaraan berorientasikan objek, mentakrifkan objek melalui struct, mentakrifkan kaedah menggunakan penerima penunjuk, dan melaksanakan polimorfisme melalui antara muka. Ciri berorientasikan objek menyediakan penggunaan semula kod, kebolehselenggaraan dan enkapsulasi dalam bahasa Go, tetapi terdapat juga pengehadan seperti kekurangan konsep tradisional kelas dan pewarisan dan hantaran tandatangan kaedah.

Adakah terdapat ciri berorientasikan objek seperti kelas di Golang? Adakah terdapat ciri berorientasikan objek seperti kelas di Golang? Mar 19, 2024 pm 02:51 PM

Tiada konsep kelas dalam erti kata tradisional dalam Golang (bahasa Go), tetapi ia menyediakan jenis data yang dipanggil struktur, yang melaluinya ciri berorientasikan objek yang serupa dengan kelas boleh dicapai. Dalam artikel ini, kami akan menerangkan cara menggunakan struktur untuk melaksanakan ciri berorientasikan objek dan menyediakan contoh kod konkrit. Definisi dan penggunaan struktur Pertama, mari kita lihat definisi dan penggunaan struktur. Di Golang, struktur boleh ditakrifkan melalui kata kunci jenis dan kemudian digunakan di mana perlu. Struktur boleh mengandungi atribut

Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Jan 05, 2024 pm 01:37 PM

Pengenalan kepada kaedah mendapatkan kod status HTTP dalam JavaScript: Dalam pembangunan bahagian hadapan, kita selalunya perlu berurusan dengan interaksi dengan antara muka bahagian belakang, dan kod status HTTP adalah bahagian yang sangat penting daripadanya. Memahami dan mendapatkan kod status HTTP membantu kami mengendalikan data yang dikembalikan oleh antara muka dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan memberikan contoh kod khusus. 1. Apakah kod status HTTP bermakna kod status HTTP apabila penyemak imbas memulakan permintaan kepada pelayan, perkhidmatan tersebut

Pemahaman mendalam tentang pengaturcaraan berorientasikan objek PHP: Teknik nyahpepijat untuk pengaturcaraan berorientasikan objek Pemahaman mendalam tentang pengaturcaraan berorientasikan objek PHP: Teknik nyahpepijat untuk pengaturcaraan berorientasikan objek Jun 05, 2024 pm 08:50 PM

Dengan menguasai status objek penjejakan, menetapkan titik putus, pengecualian penjejakan dan menggunakan sambungan xdebug, anda boleh menyahpepijat kod pengaturcaraan berorientasikan objek PHP dengan berkesan. 1. Jejak status objek: Gunakan var_dump() dan print_r() untuk melihat atribut objek dan nilai kaedah. 2. Tetapkan titik putus: Tetapkan titik putus dalam persekitaran pembangunan, dan penyahpepijat akan berhenti seketika apabila pelaksanaan mencapai titik putus, menjadikannya mudah untuk menyemak status objek. 3. Pengecualian jejak: Gunakan blok try-catch dan getTraceAsString() untuk mendapatkan jejak tindanan dan mesej apabila pengecualian berlaku. 4. Gunakan penyahpepijat: Fungsi xdebug_var_dump() boleh memeriksa kandungan pembolehubah semasa pelaksanaan kod.

JavaScript dan WebSocket: Membina enjin carian masa nyata yang cekap JavaScript dan WebSocket: Membina enjin carian masa nyata yang cekap Dec 17, 2023 pm 10:13 PM

JavaScript dan WebSocket: Membina enjin carian masa nyata yang cekap Pengenalan: Dengan pembangunan Internet, pengguna mempunyai keperluan yang lebih tinggi dan lebih tinggi untuk enjin carian masa nyata. Apabila mencari dengan enjin carian tradisional, pengguna perlu mengklik butang carian untuk mendapatkan hasil kaedah ini tidak dapat memenuhi keperluan pengguna untuk hasil carian masa nyata. Oleh itu, menggunakan teknologi JavaScript dan WebSocket untuk melaksanakan enjin carian masa nyata telah menjadi topik hangat. Artikel ini akan memperkenalkan secara terperinci penggunaan JavaScript

See all articles