메뉴 건너뛰기

cuiwenchu

chu
조회 수 3564 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
다음은 gamesalad를 이용하여 자동차 게임에서 자동차를 컨트롤 하는 설정 방법 중 하나 이다.
car actor를 생성하여 actor editor mode로 전환한다.

키보드 up 키를 누를 경우,
car actor는 다음의 self.currentSpeed의 값을 가진다.
constrain attribute : self.currentSpeed는 self.maxSpeed = 5와 self.currentSpeed에 self.acceleration = 0.4를 증가한 값 중 최소값을 가진다.
최초 self.currentSpeed는 0, min(5, 0+0.4) = 0.4, 정지 상태에서 up 키를 누를 경우 0.4 씩 증가한 값은 최대 5를 넘지 않는다.

키보드 down 키를 누를 경우,
car actor는 다음의 self.currentSpeed 값을 가진다.
constrain attribute : self.currentSpeed는 -self.reverseSpeed = -2와 self.currentSpeed에 self.acceleration = 0.4를 감소한 값 중 최대값을 가진다.
현재 car actor의 값이 0일 경우, max(-2, 0-0.4) = -0.4, 정지 상태에서 down 키를 누를 경우 -0.4씩 감소한 값은 최대 -2를 넘지 않는다.

키보드 left 키를 누를 경우,
만약, self.currentSpeed의 값이 0.3보다 크거나, -0.3보다 작으면 다음의 회전 값을 가진다.
(up, down 키를 한번이라도 누를 경우와 같다.)
constrain attribute : self.rotation은 self.rotation에 self.currentSpeed에서 self.maxSpeed = 5를 나눈값과 self.rotationStep = 5를 곱한 값을 더한 값이다.
이는 현재 currentSpeed 증가분 0.4에 최대값 5로 나누어 결과적으로 0.08씩 증가하는 값에 rotationStep 5를 곱하여 최종 증가 값은 0.4에서 최대 5 사이에서 증가하는 회전 값을 가진다.

키보드 right 키를 누를 경우,
left와 마찬가지 이지만 left의 경우 양의 값을 가지지만 right의 경우 음의 값으로 self.rotation에 회전 값을 감소 시킨다.

car actor의 진행 방향과 속도, 위치에 대한 설정.
화면의 위/아래 방향은 Y축, 좌/우 방향은 X축
X방향의 위치값,
constrain attribute : self.position.X는 self.position.X에서 sin(self.rotation) 값에 self.currentSpeed를 곱한 값을 뺀 값이다.
최초 car actor는 정방향 위를 보고 있고 rotation = 0 이다. 
오른쪽 방향으로 회전 후 X축 방향으로 이동할 경우, 오른쪽 정방향은 -90도, -sin90° = -1, 여기에 앞으로 전진하는 currentSpeed값을 곱한 값은 여전히 음수, 음수 값에 음수를 곱하면 양수, 현재 X 위치 값에 양수를 더하면 X축 오른쪽 방향으로 이동한다. 반대로 좌측 방향은 음수.

Y방향의 위치값,
constrain attribute : self.position.Y는 self.position.Y에서 cos(self.rotation) 값에 self.currentSpeed를 곱한 값을 더한  값이다.
최초 car actor는 정방향 위를 보고 있고 rotation = 0 이다. 
위쪽 방향으로 직진 이동할 경우, rotation 값은 0도, cos0° = 1, 여기에 앞으로 전진하는 currentSpeed값을 곱한 값만큼 현재 Y 위치 값에 양수를 더하면 Y축 위쪽 방향으로 이동한다.

여기까지 설정을 마치면 키보드를 한번 누르면 최초 값 0.4에서 변함이 없다. 키보드를 연속해서 눌러야 속도, 회전의 변화가 이루어 진다.
최종적으로 추가 사항은 키보드를 최초 1회 누른 상태에서 점점 빠르게 그리고 키보드에서 손을 떼었을 경우 정지하는 설정을 추가 한다.

만약, self.currentSpeed의 값이 0.3보다 크거나 -0.3보다 작을 경우.
constrain attribute : self.currentSpeed는 self.currentSpeed에 self.speedDecay = 0.96를 곱한 만큼 계속 증가한다.
그렇지 않을 경우,
change attribute : self.currentSpeed는 0의 값으로 바꾸어 준다.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
15810 중국 회사 온라인 사이트 경영허가증 ICP证 검색 chu 2014.10.13 23975
15809 중국 회사 법인 만든후 바로 해야할 업무 - 새무관련 chu 2014.09.24 20933
15808 기타 한글이름 입력후 영어이름 지어주기 chu 2014.12.22 24130
15807 중국 한국인 중국에서 법인 설립 chu 2014.09.01 23764
15806 중국 한국인 중국 취직 서류 준비 chu 2014.12.12 21462
15805 중국 한국마스크팩 중국 위생허가 받기 chu 2014.12.22 23712
15804 컴퓨터 프로그래밍 배우기 chu 2014.11.05 37274
15803 컴퓨터 포토샵 이미지따기 섬세한 머리카락 편 chu 2016.05.06 19629
15802 직장 파워 포인트 디자이너 부럽지 않다 chu 2014.11.05 23937
15801 중국 텐센트 腾讯旗下股票-腾讯相关股票 chu 2015.11.25 20006
15800 기타 카메라 흔들림 보정 기능, 원리 알면 똑똑하게 쓸 수 있다 chu 2014.12.09 26294
15799 직장 찾을수록 보이는 직장생활 노하우 file chu 2014.12.18 23973
15798 직장 직장인을 위한 문서 만들기 기법 - 4 chu 2014.11.05 23372
15797 기타 지젝의 질문 그리고 한국 chu 2014.10.22 23639
15796 중국 중국관련 내용 알아두기 chu 2015.03.21 21553
15795 중국 조선족 동호회 모음 chu 2014.08.20 21676
15794 컴퓨터 제어판에 삭세 할것 정리 chu 2014.09.16 28909
15793 기타 인문학과 자연과학이 만나기 chu 2014.10.22 28602
15792 중국 은행카드 개설주소 찾기 chu 2015.10.10 18156
15791 서버 웹진형, 갤러리형, 모바일(목록)형 공통 설정 chu 2015.01.15 24811
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 791 Next
/ 791