UI 및 게임 플레이에서 통합 클론 구축
2 부 : 레트로 개조 및 향상된 게임 플레이
클래식 스타일링 :
흑백 스프라이트 수입, 정통 레트로 비주얼을 위해 단위당 픽셀 (64). 기본 카메라 배경을 검은 색으로 변경하고 그에 따라 패들 및 볼 스프라이트를 업데이트하십시오. 여러 개의 스케일링 된 흰색 스프라이트를 사용하여 중앙 분배기를 만듭니다 강화 충돌 : 패들의 충격 각도를 계산하기 위해 볼 충돌 처리를 개선하여 층이 더 현실적입니다. 여기에는 함수를 사용하기 위해 스크립트의 메소드를 업데이트하는 것이 포함됩니다. 플레이어와 적의 패들에 적절하게 태그를 지정해야합니다. 개선 된 적 AI : 시간 기반 계산을 사용하여 부드러운 적의 패들 움직임, 응답 성 및 도전을 향상시킵니다.- 스크립트를 수정하여 를 사용하여 최적의 부드러움을 위해 속도와 타이밍을 조정하십시오. AI 패들이 화면 밖으로 나가는 것을 방지하기 위해 경계를 추가하십시오. 스크립트는 공이 파괴 된 후 적의 패들의 위치를 재설정해야합니다.
- 레트로 일시 정지 메뉴 : 사용자 정의 픽셀 글꼴 (예 : 실크 스크린)을 사용하여 일시 정지 메뉴를 만듭니다. 적절한 기능이있는 "재설정"및 "메인 메뉴"버튼을 포함하십시오. 스크립트는 일시 정지 메뉴 요소를 표시/숨기기와 함께 일시 정지 및 재개를 관리합니다. "showonPause"로 일시 정지 메뉴 요소를 태그하십시오. 동적 메인 메뉴 : 배경에 시뮬레이션 된 AI 게임 플레이가있는 메인 메뉴를 디자인하십시오. 기본 게임 장면을 복제하고 불필요한 요소를 제거하고 제목 및 "재생"버튼을 추가하십시오. 메인 메뉴에서 ai 패들을 제어하기 위해
- 스크립트 (적 AI와 유사하지만 속도 및 타이밍을 조정 함)를 사용하십시오.
득점 시스템 : 플레이어 및 AI 점수를 추적하는 득점 시스템을 구현하고 UI에 표시 ( 스크립트 사용)에 표시하고 점수 한도 (예 : 7 점, 7 포인트) 게임을 종료합니다. )에 도달하여 화면에 게임을 표시합니다. 스크립트는 승자를 표시합니다. "showonfinish"로 게임에 요소를 태그하는 것을 잊지 마십시오
BallController
OnCollisionEnter2D
코드 스 니펫 : (BallController.cs -OnCollisionEnter2d & 런치 앵이)(EnemyController.cs -Move)
void OnCollisionEnter2D(Collision2D col) { if (col.gameObject.tag == "Enemy") { float y = launchAngle(transform.position, col.transform.position, col.collider.bounds.size.y); Vector2 d = new Vector2(1, y).normalized; rig2D.velocity = d * speed * 1.5F; } if (col.gameObject.tag == "Player") { float y = launchAngle(transform.position, col.transform.position, col.collider.bounds.size.y); Vector2 d = new Vector2(-1, y).normalized; rig2D.velocity = d * speed * 1.5F; } } float launchAngle(Vector2 ball, Vector2 paddle, float paddleHeight) { return (ball.y - paddle.y) / paddleHeight; }
로그인 후 복사<<> (uimanager.cs -partial)
<<> (pointCounter.cs) <🎜 🎜>void Move() { if (ball == null) { ball = GameObject.FindGameObjectWithTag("Ball").transform; } ballRig2D = ball.GetComponent<Rigidbody2D>(); if (ballRig2D.velocity.x > 0) { if (ball.position.y > this.transform.position.y + .5F) { transform.Translate(Vector3.up * speed * Time.deltaTime); } else if (ball.position.y < this.transform.position.y - .5F) { transform.Translate(Vector3.down * speed * Time.deltaTime); } } // ... bounds checking ... }
로그인 후 복사<<> (gameover.cs)
// ... other methods ... public void showFinished() { foreach (GameObject g in finishObjects) { g.SetActive(true); } } // ... other methods ...
로그인 후 복사AI 스크립트의 속도 및 타이밍과 같은 값을 조정하여 게임 플레이 난이도를 미세 조정해야합니다. 이 강화 된 Pong 클론은보다 완벽하고 매력적인 복고풍 게임 경험을 제공합니다. GitHub 링크 (입력에 제공되지 않음)에는 전체 프로젝트 파일이 포함됩니다.
위 내용은 UI 및 게임 플레이에서 통합 클론 구축의 상세 내용입니다. 자세한 내용은 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)

뜨거운 주제











CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal 및 Actuated 간의 공동 작업 인이 파일럿 프로그램은 CNCF Github 프로젝트를위한 ARM64 CI/CD를 간소화합니다. 이 이니셔티브는 보안 문제 및 성과를 다룹니다

이 튜토리얼은 AWS 서비스를 사용하여 서버리스 이미지 처리 파이프 라인을 구축함으로써 안내합니다. ECS Fargate 클러스터에 배포 된 Next.js Frontend를 만들어 API 게이트웨이, Lambda 기능, S3 버킷 및 DynamoDB와 상호 작용합니다. th

이 최고의 개발자 뉴스 레터와 함께 최신 기술 트렌드에 대해 정보를 얻으십시오! 이 선별 된 목록은 AI 애호가부터 노련한 백엔드 및 프론트 엔드 개발자에 이르기까지 모든 사람에게 무언가를 제공합니다. 즐겨 찾기를 선택하고 Rel을 검색하는 데 시간을 절약하십시오
