Kod Sumber Permainan Pool: Di Dalam Pakej HTML5 8-Ball
Fizik, peraturan, CPU dan simpanan dalam fail berasingan: kandungan kod sumber Velvet Pool dan apa yang diubah pembeli dahulu.

Kod sumber permainan pool berbaloi dibeli apabila tiga perkara berada dalam fail yang berasingan dan mudah dibaca: fizik bola, peraturan 8-ball dan lawan komputer. Jika semuanya berselirat, setiap perubahan pada warna kain atau tahap kesukaran CPU akan menjadi sesi nyahpepijat. Velvet Pool, templat 8-ball kami, mengasingkannya, dan panduan ini meneliti pakejnya fail demi fail.
Kami terangkan cara kod disusun, apa yang biasanya diubah pembeli dahulu, cara mengehos atau membungkusnya sebagai aplikasi, apa yang dibenarkan oleh lesen dan apa yang tidak termasuk dalam edisi ini. Setiap nama fail di bawah diambil daripada panduan pembeli yang disertakan bersama permainan.
Ringkasnya: Velvet Pool ialah JavaScript biasa di atas WebGL2, tanpa pustaka 3D dan tanpa langkah binaan. Anda sunting fail, salin ke folder permainan dan muat semula halaman.
Apa yang terkandung dalam kod sumber permainan pool ini
Velvet Pool ialah permainan 8-ball yang sudah siap, bukan enjin atau kit permulaan. Muat turunnya ada empat folder: game/ ialah binaan sedia dimuat naik, source/ ialah permainan yang sama sebagai edisi pembangun dengan README, package.json dan ujian, documentation/ menyimpan panduan bergambar dalam bahasa Inggeris dan Portugis, dan THIRD-PARTY-LICENSES/ menyimpan teks lesen fon.
Permainan ini memainkan 8-ball dengan kesalahan (foul), ball-in-hand (bola di tangan) dan pilihan bola padu atau berjalur. Ada tiga tahap CPU (Easy, Medium dan Hard), meja latihan bebas dengan buat asal, penempatan bola dan susun semula, serta perlawanan dua pemain pada satu peranti. Pemain boleh memberi pusingan depan, pusingan belakang atau pusingan sisi pada bola putih, dan pencapaian tempatan membuka lima warna kain dan lima gaya kiu. Antara muka tersedia dalam 14 bahasa.
- Teknologi: JavaScript asli (vanilla), modul ES dan WebGL2. Tiada Three.js atau pustaka kod lain.
- Kod: JavaScript biasa yang berformat dalam source/src dan game/src. Tiada yang dikecilkan (minified) atau digabungkan (bundled).
- Ujian: pilihan, dengan Node.js 20 atau lebih baharu. Ia menyemak fizik, peraturan 8-ball, perlawanan CPU dan kunci terjemahan.
- Versi semasa artikel ditulis: 1.1.0, dikemas kini pada 22 Oktober 2026.
Lihat halaman Velvet Pool, demo dan manual
Bagaimana fail disusun
game/ dan source/ berkongsi susun atur yang sama, jadi laluan dalam satu folder menunjuk kepada fail yang sama dalam folder satu lagi. Pemisahan paling penting untuk permainan pool ialah antara src/core/ (simulasi dan peraturan) dan src/game/ (semua yang disentuh pemain).
- src/core/physics.js: simulasi bola, pusingan dan tindak balas kusyen.
- src/core/rules.js: peraturan 8-ball dan keputusan kesalahan.
- src/core/ai.js: cara CPU memilih pukulannya.
- src/game/controls.js: input membidik, kuasa dan pusingan.
- src/game/progress.js: pencapaian, kain, kiu dan pemarkahan perlawanan.
- src/game/i18n.js: teks dalam 14 bahasa, disenaraikan dalam LANGS.
- src/game/localRecords.js: sejarah skor tempatan.
- src/game/audio.js: main balik kesan bunyi dan muzik.
- css/style.css dan css/fonts.css: tema, susun atur responsif dan pengisytiharan fon.
- assets/: grafik, audio dan fon, dengan fail logo dalam assets/logo/.
Oleh sebab fizik, peraturan dan CPU ialah modul berasingan, anda boleh menjadikan CPU lebih bertolak ansur tanpa menyentuh pergerakan bola, atau menukar peraturan kesalahan tanpa melaras semula kusyen. Pemisahan itulah perkara utama yang perlu dicari dalam mana-mana kod biliard yang anda beli.
Apa yang diubah pembeli dahulu
Kebanyakan projek mengikut susunan yang sama. Mulakan dengan apa yang dilihat pemain, kemudian beralih kepada apa yang dirasai, dan tinggalkan peraturan untuk akhir sekali, kerana peraturan ialah tempat paling mudah untuk mencetuskan pepijat.
- Penjenamaan: gantikan fail logo dalam assets/logo/ dan laraskan saiz berkaitan dalam CSS. Label putih dibenarkan, jadi nama anda atau pelanggan anda boleh menggantikan nama kami.
- Rupa meja: warna dan fon berada dalam css/style.css. Definisi kain dan kiu berada dalam progress.js. Kekalkan ID-nya, jika tidak pemain akan kehilangan kosmetik yang sudah dibuka.
- Teks dan bahasa: setiap rentetan berada dalam i18n.js. Sunting ayat yang anda perlukan; senarai bahasa berada dalam LANGS.
- Kesukaran CPU: pemilihan pukulan berada dalam ai.js. Laraskan satu tahap pada satu masa dan main satu perlawanan penuh menentangnya.
- Fizik: geseran, pusingan dan tindak balas kusyen berada dalam physics.js. Perubahan kecil memberi kesan besar di sini, jadi jalankan ujian selepas setiap perubahan.
- Peraturan: variasi peraturan tempatan diletakkan dalam rules.js. Uji kesalahan dan ball-in-hand secara manual selain dengan set ujian.
Aliran kerjanya sama untuk semua: sunting fail dalam source/, salin ke laluan yang sama dalam game/, hidangkan folder melalui HTTP dan muat semula. Panduan pembeli mencadangkan mengubah satu ciri pada satu masa dan menguji menu, satu perlawanan, jeda, skrin keputusan dan muat semula selepas setiap perubahan.
Mengehos, membenamkan atau membungkusnya sebagai aplikasi
Pengehosan ialah bahagian paling mudah. Muat naik semua kandungan game/ ke folder seperti public_html/velvet-pool/, kekalkan subfolder, dan buka alamatnya. Tiada npm, terminal, PHP, pangkalan data atau akaun di sebelah pelayan. Pelan yang menghidangkan fail statik melalui HTTPS sudah memadai.
- Jangan buka index.html dengan klik dua kali: pelayar menyekat modul permainan pada file://. Untuk ujian tempatan, jalankan python -m http.server 8765 di dalam game/.
- Jika skrin kekal kosong, semak bahawa WebGL2 didayakan dan nama fail mengekalkan huruf besar dan kecilnya.
- Jika pelayar menolak sesuatu modul, pelayan anda menghantar .js dengan jenis MIME yang salah.
- Di dalam iframe pada portal, benarkan fullscreen dan autoplay.
Semua yang diperlukan permainan semasa berjalan berada di dalam game/, jadi tiada apa-apa dimuatkan dari CDN atau laman lain. Setiap muatan halaman baharu tetap menghubungi hos anda, jadi ini bukan aplikasi luar talian yang boleh dipasang. Ia berfungsi pada skrin sentuh: pemain membidik di atas meja dan menarik kawalan kuasa.
Projek aplikasi natif tidak termasuk dalam pakej. Jika anda mahukan permainan di Google Play atau App Store, pembalut seperti Capacitor, yang digambarkan oleh pembangunnya sebagai runtime natif merentas platform untuk membina aplikasi mudah alih dengan kod web, ialah satu laluan biasa. Membina dan menyelenggara projek gedung aplikasi ialah kerja anda, atau perkhidmatan yang kami sebut harga secara berasingan.
Apa yang tidak termasuk dalam edisi ini
Velvet Pool ialah edisi pelayar tempatan. Ia tiada berbilang pemain dalam talian atau bilik peribadi, tiada kedudukan dalam talian, tiada akaun awan dan tiada SDK pengiklanan. Dua orang boleh bermain pada satu peranti, dan skor peribadi daripada perlawanan CPU yang layak disimpan dalam pelayar. Latihan dan perlawanan pada peranti yang sama tidak menyimpan skor.
Permainan dalam talian memerlukan pelayan dan pembangunan anda sendiri. Itu projek sebenar, jadi peruntukkan bajet dari awal dan jangan harapkan templat ini berkembang menjadi begitu. Jika katalog anda memerlukan lebih banyak permainan sukan, dua permainan ini juga dijual sebagai edisi pelayar sedia dihos.
Puttide: golf mini 3D dengan 30 lubang, juga dalam JavaScript biasa
Golazo: bola sepak meja dengan 50 pasukan kebangsaan
Lesen dan harga dalam satu perenggan
Harga senarai Velvet Pool ialah $39. Sehingga 30 November 2026, promosi Black Friday memberi diskaun 15% untuk setiap templat, jadi harganya $33.15, dan pesanan dua templat atau lebih mendapat diskaun tambahan 5% hingga 20%. Setiap pembelian ialah lesen kekal dan tidak eksklusif untuk satu produk akhir, milik anda atau milik seorang pelanggan. Anda boleh mengubah kod, grafik dan audio di dalam produk itu dan meletakkan jenama anda sendiri. Pemain boleh mengaksesnya secara percuma atau melalui iklan. Anda tidak boleh menjual semula templat atau kodnya secara berasingan. Enam bulan sokongan disertakan, atau 12 bulan dengan lanjutan semasa pembayaran; kerja khas, pengehosan dan integrasi SDK atau portal disebut harga secara berasingan.
Baca terma lesen dan sokongan penuh
Soalan lazim
Adakah kod sumber permainan pool ini mudah dibaca atau dikecilkan?
Mudah dibaca. JavaScript dalam source/src dan game/src adalah biasa dan berformat, tanpa fail yang dikecilkan atau digabungkan.
Adakah saya perlukan Node.js atau langkah binaan?
Tidak. Anda sunting fail dalam source/ dan salin ke game/. Node.js 20 atau lebih baharu hanya diperlukan jika anda mahu menjalankan ujian pilihan.
Bolehkah saya menjadikan CPU lebih mudah atau lebih sukar?
Boleh. Pemilihan pukulan CPU berada dalam src/core/ai.js, berasingan daripada fizik, jadi anda boleh melarasnya tanpa mengubah pergerakan bola.
Adakah ia berfungsi di telefon?
Ya. Input sentuh disokong dan kawalan menyesuaikan diri dengan skrin. WebGL2 diperlukan, dan prestasi bergantung pada peranti, jadi uji pada telefon yang digunakan pemain anda.
Adakah pemain mengekalkan kemajuan jika saya memindahkan permainan ke domain baharu?
Tidak. Simpanan terikat pada origin pelayar, jadi menukar domain akan memulakan pemain dari awal. Pilih alamat akhir sebelum pelancaran.
Bolehkah saya menambah berbilang pemain dalam talian?
Tidak dengan edisi ini sahaja. Ia memerlukan pelayan dan pembangunan anda sendiri. Kami boleh memberi sebut harga sebagai kerja khas.
Siapa yang sesuai dengan kod pool ini
Ia sesuai untuk portal atau laman yang mahukan permainan 8-ball dalam katalognya, agensi yang menyerahkan permainan biliard berjenama kepada seorang pelanggan, dan pembangun yang mahu membaca cara fizik dan peraturan pool ditulis tanpa pustaka 3D menghalang. Ia kurang sesuai jika rancangan anda bergantung pada perlawanan dalam talian atau papan pendahulu yang dikongsi.
Main demo di telefon dan komputer riba sebelum membeli, dan buka peta fail dalam manual. Jika pemisahan antara fizik, peraturan dan CPU sepadan dengan cara anda merancang untuk bekerja, selebihnya hanyalah beberapa petang membuat perubahan.
