2014-10-17 1 views
1

iOS Sprite Kit 및 AndEngine (Box2d 포함)에서 동시에 게임을 개발 중입니다. 게임의 물리학이 두 플랫폼에서 동일하게되기를 바랍니다. Sprite Kit는 AndEngine과 같은 물리 시뮬레이션을 위해 Box2d를 내부적으로 사용합니다. AndEngine의 Box2D의에서는 iOS Spritekit과 Android Andengine 간의 물리 표준화

, I는 X = Y = 밀도/34F (일부 상수 값) 스프라이트 키트

, 난 ball.physicsBody.velocity = CGVectorMake(x,y)

제가 마찬가지로 중력 & 임펄스에 대한 아래의 코드를 사용하여 사용 body.SetLinearVelocity(x,y)를 사용 AndEngine & 스프라이트 키트. 중력

: 내가 사용 AndEngine의 Box2D의에서

: AndEngine의 Box2D의에서

, 내가 충동에 대한

self.physicsWorld.gravity = CGVectorMake(0, -1); 

를 사용 스프라이트 키트에서

mPhysicsWorld = new FixedStepPhysicsWorld(60, 1, new Vector2(0, -1f),false, 6, 2); 

를 사용

,스프라이트 키트에서

, 내가 AndEngine에서

[ball.physicsBody applyImpulse:CGVectorMake(2,2)]; 

을 사용 나는 우리가 게임 플레이가 공 시작 및 종료 등의 모든 안드로이드 기기에서 동일한 보이는 할 수 있도록 속도가 WRT에게 장치의 밀도를 부여 제공 모든 장치에서 거의 같은 시간에 (모바일, 태블릿)

양 플랫폼의 물리학이 비슷하게 보이도록 스프라이트 키트 wrt AndEngine에서 어떤 값을 부여해야하는지 알고 싶습니다. 또한 우리는 AndEngine과 같은 다른 화면 크기에 대해 다른 속도를 주어야하는지 또는 모든 iOS 장치에 대해 동일한 속도를 제공해야하는지 여부를 결정해야합니다.

속도 설정과 별도로 화면 크기에 따라 중력, 임펄스 변수를 유지해야하는지 여부를 알아야합니다.

+0

나는 Steffen에 동의합니다. SpriteKit은 소스가 닫혀 있기 때문에 Box2D를 어떻게 수정했는지 알지 못합니다. AndEngine조차 다른 언어로의 Box2D의 포트입니다. 이것은 종종 차이점을 소개 할 것입니다. 플랫폼간에 표준화를 실제로 원한다면 iOS와 Android에서 동일한 소스 코드를 사용할 수있는 cocos2d-x와 같은 것을 사용하는 것이 좋습니다. – iforce2d

답변

1

두 가지 게임 엔진, 두 가지 버전의 Box2D (Sprite Kit 버전에 대해 알려지지 않은 수정 사항 포함), 두 가지 장치 플랫폼, 두 가지 프로그래밍 언어 및 두 가지 하드웨어 세트 (iOS 버전 기계적 인조 인간)? 그것은 불가능한 것입니다.

처음으로 Sprite Kit와 AndEngine에서 완전히 동일한 Box2D 버전을 실행해야합니다. SK 개발자가 Box2D에 내린 내부 수정을 알 수 없으므로. 그리고 몇 가지가 있습니다.

그런 다음 코드가 동일한 빌드 설정으로 컴파일되었는지, 특히 부동 소수점 연산과 관련되어 있는지 확인해야합니다.

관련 문제