ホームページ >バックエンド開発 >PHPチュートリアル >どのように彼らはそれをしますか? phpsnake:キープレスの検出
この記事では、SnakeゲームのPHPコマンドラインバージョンの構築について詳しく説明しています。 ブルガリアの会議ハッカソンがプロジェクトに影響を与え、リアルタイムゲーム開発におけるPHPの驚くべき能力を紹介しました。 元のリポジトリを使用するのではなく、ゲームをゼロから構築します。
重要な概念:
stty
を使用してCLIキープレスを効果的に管理します。
readline
stty cbreak
ゲームプレイ:コマンドライン用に設計された(ブラウザベースではない)、ゲームには、さまざまな障害物とスコアリングメカニズムを備えたシングルおよびマルチプレイヤーモードが含まれます。 Windowsユーザーは、互換性のためにVM(Homesteadの改善など)が必要です。
readline_callback_handler_install
stream_select
1人のキャラクターとして始まるヘビは、各食品アイテムが消費されて成長しています。 ランダムに配置された食品 シングルプレイヤー矢印キーコントロール、矢印キーを使用したマルチプレイヤー。
シングルプレイヤーの壁の衝突ゲームはゲームを終了しますマルチプレイヤーウォールラップアラウンド;衝突はヘビの長さをリセットします。 100秒後の最長のヘビが勝ちました。
コマンドラインインターフェイスのみ。ブラウザ互換ではありません。 WindowsにはVMが必要です
従来のゲームはフレームベースのループを使用します。 PHPには回避策が必要です。 コンソールへの入力をエコーせずに即時キープレスの読み取り値を有効にするためにを使用します。
play.php
ヘビのクラスとキーマッピング:
aSnake
クラスは、名前、方向、長さなど、個々のヘビインスタンスを管理します。 キーマッピングは、簡単なプレーヤーコントロール構成のためにSnakeGame
で定義されています。
(snake.phpとsnakegame.phpコードは、元のものと同様にここに追加されますが、明確さが向上し、潜在的に簡潔なコードがあります。
結論とさらなる開発:
これは、PHPコマンドラインスネークゲームの基礎を築きます。 パート2では、レンダリング、動き、および衝突検出について説明します。 メソッドは、そのシンプルさに適しています。
stty
(FAQSセクションは簡潔に省略されています。これは、大部分が繰り返され、ゲームのコアコードと構造に関連性が低いため)
以上がどのように彼らはそれをしますか? phpsnake:キープレスの検出の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。