Rumah hujung hadapan web tutorial js Kod permainan pertempuran tangki JavaScript ditulis semula menggunakan pengetahuan TypeScript_Basic

Kod permainan pertempuran tangki JavaScript ditulis semula menggunakan pengetahuan TypeScript_Basic

May 16, 2016 pm 04:05 PM
typescript

Muat turun kod sumber

Saya telah memuat naik kod sumber ke CSDN Tiada peruntukan sumber diperlukan: http://download.csdn.net/detail/zgynhqf/8565873.

Kod sumber dibangunkan menggunakan VS 2013 TypeScript 1.4. Selepas dibuka, gambar berikut dipaparkan:

JsTankGame 1.0: Permainan kereta kebal lama yang ditulis dalam JS.

JsTankGame 2.0: Permainan baharu yang diterjemahkan secara langsung menggunakan TS.

JsTankGame: Berdasarkan 2.0, permainan baharu dengan jenis yang dibina semula.

Langkah pembinaan semula

Oleh kerana permainan JS lama dibina menggunakan Pustaka Klien MS Ajax dan direka bentuk menggunakan kaedah OOD, dan TypeScript serasi dengan semua kod JS. Oleh itu, kerja pemindahan menggunakan TypeScript agak mudah, terutamanya menggantikan kod reka bentuk jenis: kelas, warisan, antara muka, dsb.

Selepas menyelesaikan kerja di atas, anda akan mempunyai versi 2.0 yang ditulis dalam TS. Dalam proses itu, saya telah mengalami banyak faedah daripada bahasa yang ditaip dengan kuat Sudah tentu, terdapat juga beberapa ketidaksempurnaan dalam TS (yang akan dibincangkan kemudian).

Selepas mendapat taip kuat versi 2.0, ia masih belum berakhir. Untuk mengalami faedah menaip kuat untuk pemfaktoran semula, saya memutuskan untuk memfaktorkan semula struktur kod berdasarkan versi ini.

Dengan kod yang ditaip kuat, saya boleh menganalisis setiap jenis, setiap kaedah dan tempat ia digunakan dengan mudah. Dengan cara ini, saya dapat mengetahui kebergantungan antara jenis dengan cepat. Anda tidak akan tahu jika anda tidak melihatnya, tetapi anda akan terkejut apabila anda melihatnya. Kod yang saya tulis sedikit demi sedikit sebelum ini, saya fikir jenis itu direka dengan baik dan gandingan antara mereka tidak sepatutnya terlalu tinggi. Tetapi selepas selesai melukis, saya mendapati ia adalah jauh dari apa yang saya bayangkan Ini adalah hasil daripada menulis kod secara langsung tanpa melukis

Dapat dilihat bahawa hubungan antara pelbagai jenis elf agak huru-hara, dan kebergantungan dua hala boleh dilihat di mana-mana. (Sebenarnya, kerana SpriteManager dilukis dalam gambar lain, hubungan yang lebih rumit dan kucar-kacir tidak ditunjukkan dalam gambar.)


Menurut ini, saya melukis rajah perhubungan baharu, dan kemudian memfaktorkan semula semua kod mengikut perhubungan ini. Ini memberikan anda versi terkini 3.0.

Rajah perhubungan jenis versi baharu adalah seperti berikut:

Pelapis:

Bunian:

Pengurus:

Pada peringkat kod, ia memindahkan kod gandingan antara bunian kepada pengurus peringkat atasan. Pada masa yang sama, acara ditakrifkan untuk bunian untuk memisahkan bunian terus daripada pengurus.

Kelebihan dan kekurangan pengalaman pertama TS

Kelebihan: Lambda menyelesaikan masalah penunjuk ini dengan baik. Chrome dan IE boleh menyahpepijat TypeScript secara langsung! Dalam proses itu, ralat yang tidak dapat ditemui oleh jenis lemah juga ditemui. Kerana penamaan semula, kod asal tidak diubah suai. (SpriteManager.js baris 98)

Kelemahan: Persekitaran pembangunan - tiada fungsi komen kod bersepadu dan anda hanya boleh menyalinnya secara manual. Persekitaran Pembangunan - Coretan Kod tidak disokong pada masa ini. Persekitaran pembangunan - Penjanaan kod kata kunci tidak disokong: jika, sementara, suis, padanan kurungan, dsb. Persekitaran pembangunan - tidak menyokong takrifan wilayah kod (Wilayah). Sintaks - Definisi acara tidak disokong. Sintaks - Mentakrifkan kaedah terlebih beban untuk kelas masih belum disokong. Lihat kaedah SpriteBase.IsCollided.

Lain-lain:

Kod JS yang disusun mempunyai lebihan tertentu. Ruang arahan sangat jelas. Gantikan kaedah kelas asas tanpa gesaan. Pengambil/penetap harta kelas asas tidak boleh ditindih. Tidak ada cara untuk mengetahui kaedah mana yang bersifat maya. Sifat baca sahaja tidak boleh ditakrifkan dalam antara muka. Masih terdapat BUG. (SpriteManager.ts baris 93). Jika anda hanya mentakrifkan medan berangka, nilai lalainya bukan 0, tetapi NaN.

Ringkasan

Secara umumnya, selepas percubaan, saya merasakan TS pada versi 1.4 semasa boleh digunakan untuk pembangunan projek JS berskala besar secara formal. Tetapi masih terdapat banyak bidang untuk penambahbaikan!

Lampirkan tangkapan skrin TS penyahpepijatan Chrome dan IE:

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird jedem helfen, das Typoskript zu beherrschen.

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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

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)

5 ralat memori JavaScript biasa 5 ralat memori JavaScript biasa Aug 25, 2022 am 10:27 AM

JavaScript tidak menyediakan sebarang operasi pengurusan memori. Sebaliknya, memori diuruskan oleh JavaScript VM melalui proses penambakan memori yang dipanggil pengumpulan sampah.

Bagaimanakah penggunaan Vue3+TypeScript+Vite memerlukan untuk memperkenalkan sumber statik seperti imej secara dinamik? Bagaimanakah penggunaan Vue3+TypeScript+Vite memerlukan untuk memperkenalkan sumber statik seperti imej secara dinamik? May 16, 2023 pm 08:40 PM

Soalan: Cara menggunakan memerlukan untuk memperkenalkan sumber statik secara dinamik seperti imej dalam projek Vue3+TypeScript+Vite! Penerangan: Apabila membangunkan projek hari ini (rangka kerja projek ialah Vue3+TypeScript+Vite), sumber statik perlu diperkenalkan secara dinamik, iaitu, nilai atribut src tag img diperoleh secara dinamik Mengikut amalan masa lalu, ia boleh diperkenalkan secara langsung oleh memerlukan. Kod berikut: Tulis Selepas memuat naik kod, ralat baris beralun dilaporkan, dan mesej ralat ialah: nama "require" tidak ditemui. Adakah anda perlu memasang definisi jenis untuk nod? Cuba npmi --save-dev@types/node. ts(2580) selepas menjalankan npmi--save-d

Cara menggunakan TypeScript dalam Vue3 Cara menggunakan TypeScript dalam Vue3 May 13, 2023 pm 11:46 PM

Bagaimana untuk mengisytiharkan jenis dengan nama medan enum? Mengikut reka bentuk, medan jenis hendaklah merupakan nilai penghitungan dan tidak boleh ditetapkan sewenang-wenangnya oleh pemanggil. Berikut ialah pengisytiharan penghitungan Jenis, dengan jumlah 6 medan. enumType{primary="primary",success="success",warning="warning",warn="warn",//warningaliasdanger="danger",info="info",}TypeSc

Bagaimana untuk membangunkan fungsi pengkomputeran berprestasi tinggi menggunakan Redis dan TypeScript Bagaimana untuk membangunkan fungsi pengkomputeran berprestasi tinggi menggunakan Redis dan TypeScript Sep 20, 2023 am 11:21 AM

Gambaran keseluruhan cara menggunakan Redis dan TypeScript untuk membangunkan fungsi pengkomputeran berprestasi tinggi: Redis ialah sistem storan struktur data dalam memori sumber terbuka dengan prestasi tinggi dan berskala. TypeScript ialah superset JavaScript yang menyediakan sistem jenis dan sokongan alat pembangunan yang lebih baik. Menggabungkan Redis dan TypeScript, kami boleh membangunkan fungsi pengkomputeran yang cekap untuk memproses set data yang besar dan menggunakan sepenuhnya storan memori dan keupayaan pengkomputeran Redis. Artikel ini akan menunjukkan kepada anda bagaimana untuk

Membangunkan aplikasi bahagian hadapan berskala menggunakan Redis dan TypeScript Membangunkan aplikasi bahagian hadapan berskala menggunakan Redis dan TypeScript Aug 01, 2023 pm 09:21 PM

Tajuk: Membangunkan Aplikasi Bahagian Hadapan Boleh Skala Menggunakan Redis dan TypeScript Pengenalan: Dalam era Internet hari ini, kebolehskalaan ialah salah satu elemen utama bagi mana-mana aplikasi. Aplikasi bahagian hadapan tidak terkecuali. Untuk memenuhi keperluan pengguna yang semakin meningkat, kami perlu menggunakan teknologi yang cekap dan boleh dipercayai untuk membina aplikasi bahagian hadapan berskala. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Redis dan TypeScript untuk membangunkan aplikasi bahagian hadapan berskala dan menunjukkan aplikasinya melalui contoh kod. Pengenalan kepada Redis

Bagaimana untuk melaksanakan fungsi penukaran jenis data dalam TypeScript menggunakan MySQL Bagaimana untuk melaksanakan fungsi penukaran jenis data dalam TypeScript menggunakan MySQL Jul 29, 2023 pm 02:17 PM

Bagaimana untuk melaksanakan fungsi penukaran jenis data dalam TypeScript menggunakan MySQL Pengenalan: Penukaran jenis data adalah keperluan yang sangat biasa apabila membangunkan aplikasi web. Apabila memproses data yang disimpan dalam pangkalan data, terutamanya apabila menggunakan MySQL sebagai pangkalan data belakang, kami selalunya perlu menukar data dalam hasil pertanyaan kepada jenis yang kami perlukan. Artikel ini akan memperkenalkan cara menggunakan MySQL untuk melaksanakan penukaran jenis data dalam TypeScript dan memberikan contoh kod. 1. Persediaan: Bermula

Tulis kod yang lebih baik dengan TypeScript dalam PHP Tulis kod yang lebih baik dengan TypeScript dalam PHP Jun 19, 2023 pm 06:31 PM

Dengan pembangunan JavaScript yang berterusan, jurutera bahagian hadapan secara beransur-ansur menyedari beberapa masalah dalam JavaScript itu sendiri, seperti kekurangan pemeriksaan jenis dan modulariti, yang sering menyebabkan kekeliruan dan ralat dalam projek besar. Untuk menyelesaikan masalah ini, TypeScript muncul dan menjadi bahasa yang semakin popular dalam pembangunan front-end. Dalam bidang pembangunan back-end, PHP sentiasa menjadi bahasa skrip yang sangat popular. Oleh itu, gabungkan TypeScript untuk membangunkan aplikasi PHP

Perubahan dalam Vue3 berbanding Vue2: Inferens jenis TypeScript yang Lebih Baik Perubahan dalam Vue3 berbanding Vue2: Inferens jenis TypeScript yang Lebih Baik Jul 07, 2023 pm 01:05 PM

Perubahan dalam Vue3 berbanding Vue2: Inferens jenis TypeScript yang Lebih Baik Vue ialah rangka kerja JavaScript yang popular untuk membina antara muka pengguna. Vue3 ialah versi terkini rangka kerja Vue, dengan banyak penambahbaikan dan pengoptimuman berdasarkan Vue2. Salah satunya ialah penambahbaikan dalam inferens jenis TypeScript. Artikel ini akan memperkenalkan penambahbaikan dalam inferens jenis dalam Vue3 dan menggambarkannya melalui contoh kod. Dalam Vue2, kita perlu mengkonfigurasi komponen Vue secara manual

See all articles