키 포인트
-
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그게 다야, 우리는 끝났다. 남은 유일한 것은 game.start ()를 사용하여 게임을 시작하는 것입니다.
베이컨 .Property 및 더 많은 예
var game = new PacmanGame(parentDiv);
자세한 정보 및 실시간 데모를 알아보십시오
이 기사에서는 Pac Man Games를 구축하여 Bacon.js를 사용하여 응답 형 프로그래밍을 소개합니다. 게임 디자인을 단순화하고 이벤트 스트리밍 개념을 통해 더 많은 제어력과 유연성을 제공합니다. 전체 소스 코드는 Github에서 사용할 수 있으며 라이브 데모는 여기에서 찾을 수 있습니다.
rxjs 웹 사이트
예, Bacon.js를 사용하여 비동기 이벤트를 처리하는 데 필요한 게임 유형을 만들 수 있습니다. 여기에는 Pac Man과 같은 클래식 아케이드 게임뿐만 아니라 실시간 전략 게임 또는 멀티 플레이어 온라인 게임과 같은 더 복잡한 게임도 포함됩니다.
예, 다른 JavaScript 라이브러리 또는 프레임 워크와 함께 Bacon.js를 사용할 수 있습니다. Bacon.js는 독립형 라이브러리이므로 다른 라이브러리 나 프레임 워크에 의존하지 않습니다. 그러나 다른 라이브러리 또는 프레임 워크와 함께 사용하여보다 복잡한 응용 프로그램을 구축 할 수 있습니다.
위 내용은 Bacon.js로 Pacman 게임 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

C 및 JavaScript는 WebAssembly를 통한 상호 운용성을 달성합니다. 1) C 코드는 WebAssembly 모듈로 컴파일되어 컴퓨팅 전력을 향상시키기 위해 JavaScript 환경에 도입됩니다. 2) 게임 개발에서 C는 물리 엔진 및 그래픽 렌더링을 처리하며 JavaScript는 게임 로직 및 사용자 인터페이스를 담당합니다.

JavaScript는 웹 사이트, 모바일 응용 프로그램, 데스크탑 응용 프로그램 및 서버 측 프로그래밍에서 널리 사용됩니다. 1) 웹 사이트 개발에서 JavaScript는 HTML 및 CSS와 함께 DOM을 운영하여 동적 효과를 달성하고 jQuery 및 React와 같은 프레임 워크를 지원합니다. 2) 반응 및 이온 성을 통해 JavaScript는 크로스 플랫폼 모바일 애플리케이션을 개발하는 데 사용됩니다. 3) 전자 프레임 워크를 사용하면 JavaScript가 데스크탑 애플리케이션을 구축 할 수 있습니다. 4) node.js는 JavaScript가 서버 측에서 실행되도록하고 동시 요청이 높은 높은 요청을 지원합니다.

Python은 데이터 과학 및 자동화에 더 적합한 반면 JavaScript는 프론트 엔드 및 풀 스택 개발에 더 적합합니다. 1. Python은 데이터 처리 및 모델링을 위해 Numpy 및 Pandas와 같은 라이브러리를 사용하여 데이터 과학 및 기계 학습에서 잘 수행됩니다. 2. 파이썬은 간결하고 자동화 및 스크립팅이 효율적입니다. 3. JavaScript는 프론트 엔드 개발에 없어서는 안될 것이며 동적 웹 페이지 및 단일 페이지 응용 프로그램을 구축하는 데 사용됩니다. 4. JavaScript는 Node.js를 통해 백엔드 개발에 역할을하며 전체 스택 개발을 지원합니다.

C와 C는 주로 통역사와 JIT 컴파일러를 구현하는 데 사용되는 JavaScript 엔진에서 중요한 역할을합니다. 1) C는 JavaScript 소스 코드를 구문 분석하고 추상 구문 트리를 생성하는 데 사용됩니다. 2) C는 바이트 코드 생성 및 실행을 담당합니다. 3) C는 JIT 컴파일러를 구현하고 런타임에 핫스팟 코드를 최적화하고 컴파일하며 JavaScript의 실행 효율을 크게 향상시킵니다.

실제 세계에서 JavaScript의 응용 프로그램에는 프론트 엔드 및 백엔드 개발이 포함됩니다. 1) DOM 운영 및 이벤트 처리와 관련된 TODO 목록 응용 프로그램을 구축하여 프론트 엔드 애플리케이션을 표시합니다. 2) Node.js를 통해 RESTFULAPI를 구축하고 Express를 통해 백엔드 응용 프로그램을 시연하십시오.

웹 개발에서 JavaScript의 주요 용도에는 클라이언트 상호 작용, 양식 검증 및 비동기 통신이 포함됩니다. 1) DOM 운영을 통한 동적 컨텐츠 업데이트 및 사용자 상호 작용; 2) 사용자가 사용자 경험을 향상시키기 위해 데이터를 제출하기 전에 클라이언트 확인이 수행됩니다. 3) 서버와의 진실한 통신은 Ajax 기술을 통해 달성됩니다.

보다 효율적인 코드를 작성하고 성능 병목 현상 및 최적화 전략을 이해하는 데 도움이되기 때문에 JavaScript 엔진이 내부적으로 작동하는 방식을 이해하는 것은 개발자에게 중요합니다. 1) 엔진의 워크 플로에는 구문 분석, 컴파일 및 실행; 2) 실행 프로세스 중에 엔진은 인라인 캐시 및 숨겨진 클래스와 같은 동적 최적화를 수행합니다. 3) 모범 사례에는 글로벌 변수를 피하고 루프 최적화, Const 및 Lets 사용 및 과도한 폐쇄 사용을 피하는 것이 포함됩니다.

Python은 부드러운 학습 곡선과 간결한 구문으로 초보자에게 더 적합합니다. JavaScript는 가파른 학습 곡선과 유연한 구문으로 프론트 엔드 개발에 적합합니다. 1. Python Syntax는 직관적이며 데이터 과학 및 백엔드 개발에 적합합니다. 2. JavaScript는 유연하며 프론트 엔드 및 서버 측 프로그래밍에서 널리 사용됩니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

WebStorm Mac 버전
유용한 JavaScript 개발 도구

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

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전
