Butir-butir artikel ini membina versi baris arahan PHP permainan ular. Hackathon persidangan Bulgaria mengilhami projek itu, mempamerkan keupayaan mengejutkan PHP dalam pembangunan permainan masa nyata. Kami akan membina permainan dari awal, bukannya menggunakan repositori asal.
Konsep Utama:
PHP PHP Keypress PHP:stty
readline
Pemetaan Kunci: stty cbreak
readline_callback_handler_install
stream_select
Gameplay: Tutorial ini menggunakan Homestead bertambah baik untuk kemudahan persediaan. Pastikan persekitaran anda menyokong pelaksanaan PHP baris arahan.
Ciri Permainan:
ular bermula sebagai watak tunggal, berkembang dengan setiap item makanan yang digunakan.
Fail berfungsi sebagai pengawal depan, mengendalikan argumen baris arahan dan memulakan logik permainan.
mengandungi kelas permainan teras. Kami bermula dengan struktur asas:
play.php
SnakeGame.php
// play.php <?php use PHPSnake\SnakeGame; require_once 'classes/SnakeGame.php'; $param = ($argc > 1) ? $argv[1] : ''; $snake = new SnakeGame(); //Further game initialization would go here.
// classes/SnakeGame.php <?php namespace PHPSnake; class SnakeGame { public function __construct() { echo "Game initialized!\n"; //Simple initialization message. } }
Permainan tradisional menggunakan gelung berasaskan bingkai. PHP memerlukan penyelesaian. Kami akan menggunakan untuk membolehkan bacaan keypress segera tanpa mengulangi input ke konsol.
stty cbreak -echo
Kelas Ular dan Pemetaan Kunci:
Kelas Snake
menguruskan contoh ular individu, termasuk nama, arah, dan panjang. Pemetaan utama ditakrifkan dalam SnakeGame
untuk konfigurasi kawalan pemain yang mudah.
(Kod Snake.php dan Snakegame.php akan ditambah di sini, sama seperti yang asal, tetapi dengan kejelasan yang lebih baik dan kod yang lebih ringkas.)
Kesimpulan dan perkembangan selanjutnya:
Ini meletakkan asas untuk permainan ular baris arahan PHP. Bahagian dua akan meliputi rendering, pergerakan, dan pengesanan perlanggaran. Kaedah lebih disukai untuk kesederhanaannya.
stty
(bahagian Soalan Lazim yang ditinggalkan untuk keringkasan, kerana ia sebahagian besarnya berulang dan kurang relevan dengan kod teras dan struktur permainan.)
Atas ialah kandungan terperinci Bagaimana mereka melakukannya? PHPSNake: Mengesan Keypresses. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!