Bacon.js로 Pacman 게임 구축
키 포인트
-
Bart de Smet은 그의 연설에서 이러한 변화를 설명합니다. André Staltz는이 기사에서 반응 형 프로그래밍을 탐색합니다.
-
반응 형 프로그래밍을 시작하면 모든 것이 비동기 데이터 스트림이됩니다. 서버의 데이터베이스, 마우스 이벤트, 약속 및 서버 요청이됩니다. 이를 통해 "콜백 지옥"이라는 것을 피하고 더 나은 오류 처리를 제공 할 수 있습니다. 이 접근법의 또 다른 강력한 특징은 데이터 스트림을 결합하는 능력으로, 훌륭한 제어와 유연성을 제공합니다. Jafar Husain은 그의 연설에서 이러한 개념을 설명합니다. - 프로젝트 설정
-
라이브러리를 설치 한 후에는 응답 형 프로그래밍을 시작할 수 있습니다.
Pac Man Game API 및 Unicodetiles.js
-
먼저, 게임 로직을 처리하는 Pacmangame이라는 클래스를 만들었습니다. 다음 방법을 제공합니다 -
Pacmangame (부모) : Pacman 게임 객체를 만듭니다
<: :> start () : 게임을 시작하십시오
<: :> tick () : 게임 로직을 업데이트하고 게임을 렌더링합니다.
SpawnGhost (Color) : 새 유령을 생성
-
또한 다음 콜백을 노출시킵니다 - 를 호출하십시오.
updateGhosts () : 게임의 모든 유령 를 업데이트하십시오MovePacman (P1V) : Pacman을 지정된 방향 로 이동하십시오 onpacmanmove (movvev) : 참석하면 사용자가 버튼을 누르고 Pacman에게 이동하도록 요청할 때 Observable.onend (F) : 스트림에서 끝나고 더 이상 이동 값을 사용할 수없는 이벤트를 듣습니다. - 이벤트 흐름에 대한 또 다른 유용한 개념은 시간 개념입니다. 즉, 이벤트는 미래에 언젠가 올 수 있습니다. 예를 들어, 이러한 방법은 특정 시간 간격 내에서 이벤트를 전달하는 이벤트 스트림을 만듭니다.
이제 우리는 이벤트 스트림의 기본 사용을 이해 했으므로 이벤트 스트림을 만드는 방법을 살펴 보겠습니다. Bacon.js는 jQuery 이벤트, Ajax Promise, Dom Eventtarget, Simple Callbacks 및 Arrays에서 이벤트 스트림을 만드는 데 사용할 수있는 몇 가지 방법을 제공합니다. bacon.interval (간격, 값) : 주어진 간격 으로이 값을 무한히 반복합니다. 베이컨. 반복적으로 (간격, 값) : 주어진 간격으로 이러한 값을 무한히 반복하십시오. bacon.later (지연, 값) : 주어진 지연 후에 값을 생성합니다. 더 많은 컨트롤을 위해 Bacon.frombinder ()를 사용하여 고유 한 이벤트 스트림을 만들 수 있습니다. 우리는 Pac Man Move를위한 이벤트를 생성 할 Movestream 변수를 만들어 게임에서 이것을 보여줄 것입니다.
$ bower install bacon
로그인 후 복사로그인 후 복사로그인 후 복사우리는 관찰자가들을 수있는 이벤트를 보낼 값으로 싱크를 호출 할 수 있습니다. 싱크대 전화는 OnpacmanMove 콜백에 있습니다. 즉, 사용자가 키를 누르고 Pac-Man에게 이동하도록 요청할 때마다. 따라서 Pac-Man Move 요청에 대한 이벤트를 발행하는 관찰 가능한 객체를 만듭니다. 우리는 간단한 값 movev를 사용하여 싱크를 불렀습니다. 이것은 MoveV 값을 사용하여 Move 이벤트를 추진합니다. Bacon.error 또는 Bacon.end와 같은 이벤트를 추진할 수도 있습니다. 다른 이벤트 스트림을 만들어 봅시다. 이번에는 고스트 이벤트를 생성하기 위해 알림을 발행하고 싶습니다. 우리는 이것에 대한 spawnstream 변수를 만들 것입니다 : <🎜 🎜> bacon.seageventially () 주어진 간격으로 값을 전달하는 스트림을 만듭니다. 우리의 경우 800 밀리 초마다 유령 색상을 통과합니다. 또한 Delay () 메소드를 호출합니다. 스트림이 지연되므로 2.5 초 지연 후 이벤트가 방출되기 시작합니다. 이벤트 스트림의 방법 및 대리석 다이어그램 이 섹션에서는 이벤트 스트림에 사용할 수있는 몇 가지 실용적인 방법을 나열합니다.
Observable.map (f) : 값을 매핑하고 새 이벤트 스트림을 반환하십시오. $ bower install bacon
로그인 후 복사로그인 후 복사로그인 후 복사Observable.Filter (f) : 주어진 술어를 사용하여 값을 필터링하십시오. 관찰 가능. Observable.skip (n) : 스트림에서 첫 번째 n 요소를 건너 뜁니다.관찰 가능. 스로틀 (지연) : 특정 지연을 통한 흐름을 조절합니다. 관찰 가능 .debounce (지연) : 특정 지연을 통한 흐름을 제기합니다. 관찰 가능 .Scan (seed, f) 주어진 종자 값 및 축적기 기능으로 스트림을 스캔하십시오. 이것은 스트림을 단일 값으로 단순화합니다. -
이벤트 스트리밍을위한 더 많은 방법은 공식 문서 페이지를 참조하십시오. 대리석 다이어그램을 사용하여 스로틀 링과 제조의 차이점을 볼 수 있습니다.
-
보시다시피, 스로틀링은 일상적으로 스로틀링 이벤트이며, De-Jittering은 주어진 "침묵 기간"이후에만 이벤트를 방출합니다. -
이벤트 흐름을 관찰하십시오 지금까지, 우리는 이벤트 스트림을 만들고 조작했으며 이제 스트림에 가입하여 이벤트를 관찰 할 것입니다.
이러한 유틸리티는 단순하고 강력하며 흐름을 개념화하고 제어 할 수 있으므로 그 안에 데이터를 제어 할 수 있습니다. Netflix가 이러한 간단한 방법을 사용하여 자동 완성 상자를 만드는 방법에 대한이 이야기를 보는 것이 좋습니다. 이전에 만든 Movestream 및 SpawnStream을 검토하십시오. 지금 구독합시다 : -
-
bacon.zipasarray (스트림) : 스트림을 새 스트림으로 압축하십시오. 각 스트림의 이벤트는 쌍으로 결합됩니다.
bacon.combinetemplate (템플릿) : 템플릿 개체를 사용하여 이벤트 스트림을 결합합니다. - 보시다시피, 우리는 템플릿을 사용하여 이벤트 스트림 (예 : 비밀번호, 사용자 이름, FirstName 및 LastName)을 LoginInfo라는 결합 된 이벤트 스트림으로 결합합니다. 이벤트 스트림이 이벤트를 수신 할 때마다 로그인 닌포 스트림은 이벤트를 방출하여 다른 모든 템플릿을 단일 템플릿 객체로 결합합니다.
-
Bacon.js로 자신의 Pac Man 게임을 구축하려면 먼저 JavaScript 및 기능적 반응 형 프로그래밍 (FRP)의 기본 사항을 이해해야합니다. 이 지식을 마스터하면 개발 환경을 설정할 수 있습니다. 컴퓨터에 node.js 및 npm (노드 패키지 관리자)을 설치해야합니다. 그런 다음 NPM을 사용하여 Bacon.js를 설치할 수 있습니다. 모든 것이 설정되면 게임 코드 작성을 시작할 수 있습니다. Bacon.js를 사용하여 Pac Man 게임을 구축하는 방법에 대한 단계별 가이드를 보려면 당사 웹 사이트의 튜토리얼을 팔로우 할 수 있습니다. -
bacon.js는 JavaScript 용 기능성 반응 프로그래밍 (FRP) 라이브러리입니다. 사용자 입력과 같은 비동기 이벤트를보다 관리하기 쉽고 읽기 쉬운 방식으로 처리 할 수 있습니다. Pac Man 게임을 구축 할 때 Bacon.js는 사용자 입력 (예 : 키보드 이벤트), 게임 로직 (예 : Pac Man 및 Ghost의 움직임)을 처리하고 게임 상태를 화면으로 렌더링하는 데 사용될 수 있습니다. - 물론 ! Bacon.js로 기본 PAC 맨 게임을 구축 한 후에는 원하는대로 사용자 정의 할 수 있습니다. 게임의 시각적 효과를 변경하고 새로운 기능을 추가하며 게임 규칙을 수정할 수도 있습니다. 가능성은 끝이 없으며, 가장 중요한 부분은 Bacon.js의 힘과 단순성과 기능적 반응 형 프로그래밍의 혜택을 누리면서 모든 것을 할 수 있다는 것입니다.
-
Bacon.js를 사용하여 구축 된 Pac-Man 게임을 어떻게 디버그합니까?
$ bower install bacon
<🎜 🎜> <<> 베이컨 .Property 및 더 많은 예 <🎜
var game = new PacmanGame(parentDiv);
자세한 정보 및 실시간 데모를 알아보십시오
이 기사에서는 Pac Man Games를 구축하여 Bacon.js를 사용하여 응답 형 프로그래밍을 소개합니다. 게임 디자인을 단순화하고 이벤트 스트리밍 개념을 통해 더 많은 제어력과 유연성을 제공합니다. 전체 소스 코드는 Github에서 사용할 수 있으며 라이브 데모는 여기에서 찾을 수 있습니다.
rxjs 웹 사이트
Bacon.js로 구축 된 Pac Man 게임의 성능을 최적화하는 몇 가지 방법이 있습니다. 한 가지 방법은 DOM 업데이트 수를 최소화하는 것입니다. Bacon.js의 "Combinetemplate"기능을 사용하여 여러 스트림을 DOM을 업데이트하는 단일 스트림으로 결합하여이를 달성 할 수 있습니다. 또 다른 방법은 불필요한 스트림 생성을 피하기 위해 "FlatMap"기능을 사용하는 것입니다.
예, Bacon.js를 사용하여 비동기 이벤트를 처리하는 데 필요한 게임 유형을 만들 수 있습니다. 여기에는 Pac Man과 같은 클래식 아케이드 게임뿐만 아니라 실시간 전략 게임 또는 멀티 플레이어 온라인 게임과 같은 더 복잡한 게임도 포함됩니다.
Bacon.js로 구축 된 Pac Man 게임에 멀티 플레이어 기능을 추가하려면 플레이어 간의 통신을 처리 할 수있는 서버가 필요합니다. 이를 위해 node.js 및 websockets를 사용할 수 있습니다. 클라이언트에서는 Bacon.js를 사용하여 수신 및 나가는 WebSocket 메시지를 처리합니다.
예, 다른 JavaScript 라이브러리 또는 프레임 워크와 함께 Bacon.js를 사용할 수 있습니다. Bacon.js는 독립형 라이브러리이므로 다른 라이브러리 나 프레임 워크에 의존하지 않습니다. 그러나 다른 라이브러리 또는 프레임 워크와 함께 사용하여보다 복잡한 응용 프로그램을 구축 할 수 있습니다.
위 내용은 Bacon.js로 Pacman 게임 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











프론트 엔드 개발시 프론트 엔드 열지대 티켓 인쇄를위한 자주 묻는 질문과 솔루션, 티켓 인쇄는 일반적인 요구 사항입니다. 그러나 많은 개발자들이 구현하고 있습니다 ...

JavaScript는 현대 웹 개발의 초석이며 주요 기능에는 이벤트 중심 프로그래밍, 동적 컨텐츠 생성 및 비동기 프로그래밍이 포함됩니다. 1) 이벤트 중심 프로그래밍을 사용하면 사용자 작업에 따라 웹 페이지가 동적으로 변경 될 수 있습니다. 2) 동적 컨텐츠 생성을 사용하면 조건에 따라 페이지 컨텐츠를 조정할 수 있습니다. 3) 비동기 프로그래밍은 사용자 인터페이스가 차단되지 않도록합니다. JavaScript는 웹 상호 작용, 단일 페이지 응용 프로그램 및 서버 측 개발에 널리 사용되며 사용자 경험 및 크로스 플랫폼 개발의 유연성을 크게 향상시킵니다.

기술 및 산업 요구에 따라 Python 및 JavaScript 개발자에 대한 절대 급여는 없습니다. 1. 파이썬은 데이터 과학 및 기계 학습에서 더 많은 비용을 지불 할 수 있습니다. 2. JavaScript는 프론트 엔드 및 풀 스택 개발에 큰 수요가 있으며 급여도 상당합니다. 3. 영향 요인에는 경험, 지리적 위치, 회사 규모 및 특정 기술이 포함됩니다.

동일한 ID로 배열 요소를 JavaScript의 하나의 객체로 병합하는 방법은 무엇입니까? 데이터를 처리 할 때 종종 동일한 ID를 가질 필요가 있습니다 ...

JavaScript를 배우는 것은 어렵지 않지만 어려운 일입니다. 1) 변수, 데이터 유형, 기능 등과 같은 기본 개념을 이해합니다. 2) 마스터 비동기 프로그래밍 및 이벤트 루프를 통해이를 구현하십시오. 3) DOM 운영을 사용하고 비동기 요청을 처리합니다. 4) 일반적인 실수를 피하고 디버깅 기술을 사용하십시오. 5) 성능을 최적화하고 모범 사례를 따르십시오.

이 기사에서 시차 스크롤 및 요소 애니메이션 효과 실현에 대한 토론은 Shiseido 공식 웹 사이트 (https://www.shiseido.co.jp/sb/wonderland/)와 유사하게 달성하는 방법을 살펴볼 것입니다.

JavaScript의 최신 트렌드에는 Typescript의 Rise, 현대 프레임 워크 및 라이브러리의 인기 및 WebAssembly의 적용이 포함됩니다. 향후 전망은보다 강력한 유형 시스템, 서버 측 JavaScript 개발, 인공 지능 및 기계 학습의 확장, IoT 및 Edge 컴퓨팅의 잠재력을 포함합니다.

Console.log 출력의 차이의 근본 원인에 대한 심층적 인 논의. 이 기사에서는 Console.log 함수의 출력 결과의 차이점을 코드에서 분석하고 그에 따른 이유를 설명합니다. � ...
