2023년 11월 25일 토요일

[cocos2d-x] 2d 게임엔진으로 플래피버드 클론 게임 만들기 (게임을 꾸며서 마무리)

 


키보드 이벤트

EventListenerKeyboard로 생성하며,

onKeyPressed와 onKeyReleased를 오버라이딩 해 줍니다.

둘 중 하나만 해도 되며, onTouchBegan처럼 return true/false를 해 줄 필요는 없습니다.

키 입력으로 게임을 조작하고 싶으면, 키를 누르고 있는 상태를 읽어올 수 없기 때문에 오버라이드 함수 내에서는 상태변수의 값만 변환시키고 스케줄이나 update 함수 내에서 처리하는 방법을 써야 합니다.

몇 가지 트윈(액션)에 대한 tmi

3.xx 일부 버전에서는 RepeatForever는 Sequence를 실행 가능하지만 Repeat는 불가능했던 적이 있습니다.

FadeOut은 FadeTo::create([duration], 0)과

FadeIn은 FadeTo::create([duration], 255)와 같습니다.

Show, Hide : visible을 on/off하는 트윈입니다. (Show=setVisible(true), Hide=setVisible(false))

BezierTo, BezierBy : 4개의 점을 받아 베지어 곡선으로 움직이게 하는 트윈입니다.

좌표값을 받아낼 수는 없고, 액션으로만 동작합니다.

RemoveSelf : 자신을 삭제하는 트윈입니다.

Ease 트윈의 rate값

EaseIn, Out 액션에 들어가는 rate는 가속 비중을 정합니다. 1보다 클 때와 0<rate<1일 때의 동작이 다릅니다.

EaseIn : 1보다 클 때는, 클수록 느린 상태의 시간이 길어지고, 가속이 늦어집니다. 0<rate<1이면 rate가 작을수록 가속이 빨라지고 클수록 느려집니다.

EaseOut : 1보다 크면, 클수록 가속이 빨라지고 느려지는 구간에 늦게 진입합니다. 0<rate<1이면 rate가 작을수록 느린 상태의 시간이 깁니다.

EaseInOut의 경우, rate>1일 경우 duration의 1/2에 가까워질수록 빨라지고 빠른 상태의 시간이 짧아집니다.

솔직히 말로 설명해도 잘 느낌이 안 오기 때문에 실행해 보고 맘에 드는 움직임을 찾아야 합니다

그때문에 단순한 가속도 움직임을 제외하면 잘 안씁니다..

댓글 없음:

댓글 쓰기

[cocos2d-x] 2D 엔진으로 만드는 3D 슈팅게임

왜 2D 게임엔진으로 3D 게임 만들려고 삽질을 합니까?   예 뭐 3D 게임 만드는데 좋은 엔진은 아닙니다. 셰이더도 부실하고 물리엔진 쓰기도 까다롭고. 요즘은 외부업체 SDK 인트하기도 점점 힘들어지고.. ​ 그래도 기왕 해 본 거, 여기까지 왔으...