이 기사는 뱀 게임의 PHP 명령 줄 버전 구축에 대해 자세히 설명합니다. 불가리아 회의 Hackathon 은이 프로젝트에 영감을 주었으며, 실시간 게임 개발에서 PHP의 놀라운 기능을 보여주었습니다. 우리는 원래 저장소를 사용하지 않고 처음부터 게임을 구성합니다.
.
주요 개념 :
PHP CLI Keypress 처리 : PHP, 일반적으로 실시간 게임과 관련이없는 PHP는 즉각적인 입력 감지를 위해
및 를 사용하여 CLI 키 프레스를 효과적으로 관리합니다.
키 매핑 : 유연한 키 매핑 시스템은 키 코드를 뱀 이동 방향에 연결하고 제어 사용자 정의 및 멀티 플레이어 지원을 단순화합니다.
게임 루프 : 게임은 뱀 방향을 포함한 주요 입력을 모니터링하고 게임 상태를 업데이트하기 위해 연속 루프를 사용합니다.
입력 메소드 : 두 가지 방법이 제시됩니다.
직접 문자 읽기의 경우
가 더 강력하지만 복잡하지만 처리합니다. 둘 다 *닉스 특이 적입니다
게임 플레이 : 명령 줄 (브라우저 기반 아님) 용으로 설계된이 게임에는 다양한 장애물과 점수 메커니즘이있는 단일 및 멀티 플레이어 모드가 포함되어 있습니다. Windows 사용자는 호환성을 위해 VM (홈스테드 개선)이 필요합니다.
설정 및 게임 규칙 : stty
이 자습서는 홈스테드 개선을 쉽게 설정하기 위해 개선합니다. 환경이 명령 줄 PHP 실행을 지원하는지 확인하십시오
<:> 게임 특징 :
readline
뱀은 단일 캐릭터로 시작하여 각 음식 품목이 소비되면서 자랍니다.
무작위로 배치 된 음식
단일 플레이어 화살표 키 컨트롤, 화살표 키와 wasd를 사용하는 멀티 플레이어.
싱글 플레이어 벽 충돌은 게임을 종료합니다
멀티 플레이어 벽 랩 어라운드; 충돌은 뱀 길이를 재설정합니다. 100 초 후 가장 긴 뱀이 승리합니다
명령 줄 인터페이스 만; 브라우저 호환되지 않습니다. Windows에는 VM이 필요합니다
초기 구조 (play.php 및 snakegame.php) :
파일은 전면 컨트롤러 역할을하며 명령 줄 인수를 처리하고 게임 로직을 시작합니다. 에는 핵심 게임 클래스가 포함됩니다. 우리는 기본 구조로 시작합니다 :
게임 루프 및 키 프레스 처리 :
전통적인 게임은 프레임 기반 루프를 사용합니다. PHP에는 해결 방법이 필요합니다. 우리는 를 사용하여 콘솔에 입력하지 않고 즉각적인 키 프레스 판독 값을 활성화합니다.
뱀 클래스 및 키 매핑 :
a 클래스는 이름, 방향 및 길이를 포함한 개별 뱀 인스턴스를 관리합니다. Key Mapping은 Easy Player Control 구성을 위해
에 정의됩니다.
(Snake.php 및 SnakeGame.php 코드는 여기에 원본과 비슷하지만 명확성이 향상되고 잠재적으로 더 간결한 코드가 있습니다.)
Snake
SnakeGame
결론과 추가 개발 :
이것은 PHP 명령 줄 뱀 게임의 토대를 마련합니다. 2 부에는 렌더링, 움직임 및 충돌 감지가 포함됩니다. 방법은 단순성을 위해 선호됩니다
(FAQS 섹션은 게임의 핵심 코드 및 구조와 관련이 없기 때문에 간결하게 생략되었습니다.)위 내용은 그들은 어떻게 그것을 하는가? Phpsnake : 키 프레스 감지의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!