만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

20
Chapter 10 슈슈 슈슈 슈슈슈슈 슈슈

description

 

Transcript of 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

Page 1: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

Chapter 10

슈팅 게임 스테이지 구현

Page 2: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

Scene, Layer, Object

Scene : cocos2d-x 에서 한 게임 화면을 나타냄 ex) 타이틀 화면 -> 메인 메뉴 -> 게임화면 Scene 3 개

Scene 아래로 Layer 를 추가할 수 있고 Layer 에 오브젝트를 추가할수 있음

CCScene, CCLayer class 사용

Page 3: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

Chapter 10.1.1 GameLayer 클래스 추가

Game Layer 코드

Page 4: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

실행 화면

Page 5: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

Chapter 10.1.2 배경 이미지 추가

Chapter 10.1.3 오리엔테이션 설정

종 스크롤 게임을 만들지 횡 스크롤 (Landscape 설정 ) 게임을 만들지 결정

Portrait 모드 지원

Page 6: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

Chapter 10.1.4 다양한 해상도 지원

다양한 해상도가 존재 => 중간정도의 해상도를 비율에 따라 늘리거나 줄여 사용

Page 7: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

Chapter 10.1.4 다양한 해상도 지원

kResolutionShowAll : 디자인 해상도의 비율이 유지되도록 하면서 화면 안에 전체 이미지가 나타나도록 함

레터박싱 : 비어있게 되는 공간을 검은색으로 채우는 것

Page 8: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

Chapter 10.2.1 원리

10.2 배경화면 스크롤

1

2

이미지를 상하로 이어 붙였을 때 이미지가 끊어져 보이는 경우가 없도록 제작

Page 9: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

Chapter 10.2.2 스크롤 구현

Z Order( 우선순위 ) : 같은 Layer 에 포함되는 여러 오브젝트들의 그리는 순서를 결정해주는 값

void scheduleUpdate(void )

Schedules the "update" method.It will use the order number 0. This method will be called every frame. Scheduled methods with a lower order value will be called before the ones that have a higher order value. Only one "update" method could be scheduled per node.

Page 10: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

Chapter 10.2.2 스크롤 구현

배경이미지가 화면을 완전히 벗어났는지 확인

Page 11: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

Chapter 11

헬리콥터

Page 12: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

11.1 빠른 렌더링을 위한 SpriteBatchNode

CCSprite::create(“ 이미지 이름” )

필요할 때 마다 스프라이트를 하나씩 생성 해서 사용하는 방식은 스프라이트의 수가 많아질수록 게임이 크게 느려짐

그래픽 처리를 담당하는 디바이스의 하드웨어는 사용하는 텍스처 ( 이미지 ) 가 교체될 때마다 하드웨어에서 관리하고 있는 여러 가지 상태를 변경해야 하는데 , 이 상태를 변경하는 횟수가 많아질수록 렌더링 속도가 급격하게 떨어짐 .

이미지를 하나씩 로딩해서 그리는 방식보다 여러 장의 이미지를 하나의 이미지 파일로합쳐서 로딩한 후 그 이미지 안에서 필요한 부분만 사용하는 방식이 하드웨어의 렌더링처리를 빠르게 할 수 있는 방법

Page 13: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

CCSprite::create(“ 이미지1.png”) CCSprite::create(“ 이미지2.png”) Atlas Texture :

여러장의 이미지 파일들을 합쳐서 생성된 하나의 이미지

Page 14: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

11.2 빠른 렌더링을 위한 Atlas Texture 생성

툴 이용 ……… .

Page 15: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

11.3 헬리콥터 생성

Page 16: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
Page 17: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
Page 18: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

11.3 프로펠러 추가

Page 19: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

실행 화면

Page 20: 만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장

The End…..