<출처>
http://blog.naver.com/PostView.nhn?blogId=predev&Redirect=View&logNo=130178007397&categoryNo=71&isAfterWrite=true
쿠키런같은 2D게임에 물리엔진을 사용하기가 그래서 스크립트로 간단하게 구현해 보았습니다.
예제가 파일로 첨부되어있으니 다운받아서 직접 실행해보세요.
<소스>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | using UnityEngine; using System.Collections; public class jump : MonoBehaviour { float y = 0.0f; float gravity = 0.0f; // 중력느낌용 int direction = 0; // 0:정지상태, 1:점프중, 2:다운중 // 설정값 const float jump_speed = 0.2f; // 점프속도 const float jump_accell = 0.01f; // 점프가속 const float y_base = 0.5f; // 캐릭터가 서있는 기준점 void Start() { y = y_base; } void Update() { JumpProcess(); if (Input.GetKeyUp(KeyCode.Space)) { DoJump(); } // y값을 gameObject에 적용하세요. Vector3 pos = gameObject.transform.position; pos.y = y; gameObject.transform.position = pos; } void DoJump() // 점프키 누를때 1회만 호출 { direction = 1; gravity = jump_speed; } void JumpProcess() { switch (direction) { case 0: // 2단 점프시 처리 { if (y > y_base) { if (y >= jump_accell) { //y -= jump_accell; y -= gravity; } else { y = y_base; } } break ; } case 1: // up { y += gravity; if (gravity <= 0.0f) { direction = 2; } else { gravity -= jump_accell; } break ; } case 2: // down { y -= gravity; if (y > y_base) { gravity += jump_accell; } else { direction = 0; y = y_base; } break ; } } } } |
<cocos2d-x에 적용>
// 물리엔진 없이 중력이 적용된 점프..............
float y = 0.0f;
float gravity = 0.0f; // 중력느낌용
int direction = 0; // 0:정지상태, 1:점프중, 2:다운중
// 설정값
const float jump_speed = 13.0f; // 점프속도
const float jump_accell = 0.5f; // 점프가속
const float y_base = 160; // 캐릭터가 서있는 기준점
//............................................................
나머지 코드는 동일하게 사용가능. ^^
좋다!!
'Unity3D' 카테고리의 다른 글
Mobile Movie Texture 플러그인 (0) | 2014.10.29 |
---|---|
Bitmap Font Generator 사용방법 (0) | 2014.09.02 |
Admob 광고 붙이기 - 방법2 (0) | 2014.07.31 |
Admob 광고 추가하는 방법 (0) | 2014.07.31 |
해상도 대응하기 (0) | 2014.07.30 |