2011-10-21 2 views
2

저는 최근에 iPhone/iPad 및 Mac 용 cocos2d 앱을 만드는 방법에 대한 연구를했습니다. 나는 iPhone/iPad 경로를 만들었지 만 Mac 대상으로 한 적이 없습니다. 어떤 사람들은 그것을 대상으로 추가했지만 그것이 까다롭고 다른 사람들은 동일한 파일을 사용하는 별도의 Cocos2d Mac 프로젝트를 만들 것을 제안했습니다. 여기에 알려줄 수있는 지혜가 있습니까?iPhone/iPad/Mac을 대상으로하는 Cocos2d

답변

2

동일한 프로젝트에서 iOS와 Mac 타겟을 모두 가지고있는 것이 절대적으로 중요하다고 생각합니다. 그렇지 않으면 결국 하나의 플랫폼을 다른 플랫폼과 동기화 상태로 유지하는 데 너무 많은 시간을 할애하여 결국에는 좋은 (그러나 여전히 시간 소모적 인) 워크 플로를 만들거나 두 플랫폼 중 하나를 무시하게됩니다.

이상적으로 코드베이스는 가능한 한 컴파일러 매크로를 거의 사용하지 않아야합니다. 하나의 플랫폼에서 사용되지 않는 경우에도 iOS와 Mac 코드를 모두 컴파일해야합니다. 따라서 어떤 클래스 나 메소드가 Mac에 #ifdef 인 경우, iOS에있는 다른 클래스 나 메소드를 사용하면 대상을 전환 할 때 컴파일 오류가 발생하는 경우가 많습니다. 이는 래퍼 클래스를 의미하므로 플랫폼에 관계없이 동일한 코드를 작성할 수 있으므로 필수적입니다.

지금 Cocos2D는 동일한 Xcode 프로젝트에서 Mac 대상을 &으로 만들 것을 제안하지 않습니다. 각 대상은 Base SDK, SDK 루트, 배포 대상, 아키텍처 및 가능하게는 컴파일러 버전에 대한 자체 빌드 설정을 필요로하기 때문에 거기에 도달하는 방법이 즉시 명백하지 않습니다. 경우에 따라 iOS 및 Mac 특정 대상을 해당 라이브러리에 대해서도 만들어야하기 때문에 타사 라이브러리 (Box2D, Chipmunk 등)를 사용하려는 경우 악화됩니다 (라이브러리가 빌드되었는지 확인하기 만하면됩니다). 프로젝트의 타겟과 같은 컴파일러로 컴파일하면 가장 이상한 빌드 또는 런타임 문제가 발생할 수 있습니다.

Xcode를 사용하지 않고 단일 Xcode 프로젝트 내에서 이러한 플랫폼 특정 타겟을 작동시키는 데 문제가 발생했습니다. 나는 Xcode 4.1과 4.2로 시도하지 않았다. 그때까지 빌드 설정을 호스팅 할 .xcconfig 파일을 만들었습니다. .xcconfig 파일은 최신 Xcode 버전에서는 필요하지 않을 수도 있지만, 여러 플랫폼 특정 대상을보다 쉽게 ​​관리 할 수 ​​있습니다.

간단히 말해서, cocos2d-iphone으로 크로스 플랫폼 개발을하는 가장 쉽고 쉬운 방법은 Kobold2D을 사용하는 것입니다.

15 개의 템플릿 프로젝트 중 대부분은 각 프로젝트에 iOS 및 Mac 타겟이 있으며, 해당 스키마를 선택하기 만하면 빌드 &이 실행됩니다. 가장 일반적으로 필요한 플랫폼 관련 코드 (사용자 입력 처리)는 플랫폼에 구속받지 않고 사용하기 쉬운 래퍼 클래스 KKInput으로 래핑됩니다.

면책 조항 : 나는 Kobold2D의 개발자입니다. 내가 편견을 가질 가능성이 희박합니다. 어쨌든 Kobold2D을 시도해야합니다. :)

+0

Hah - 네. 사실 저는 책을 선주문했습니다. 도움에 감사드립니다. 나는 호기심에서 Kobold2D를 몇 달 전에 시험해 보았고 xCode 4에서 멋지게 컴파일하지 못했고 주위를 어지럽힐 시간이 없었습니다. 나는 가장 최근 버전을 시도 할 것이다. 슈퍼 그것은 구운 맥 대상과 템플릿 프로젝트를 가지고 도움이! – Codezy

+0

그것은 항상 xcode 4에서만 사용되었습니다. "빌드를 실행했지만 실행되지 않습니다"라고 가정하고 수정하기 쉽습니다. 다음 버전에서는 제외되었습니다. – LearnCocos2D

관련 문제