2011-10-13 15 views
8

Mi proyecto se originó como la plantilla Box2D cocos2d y estoy teniendo problemas tan pronto como he tratado de crear un mundo:Xcode: Cocos2d: No se puede crear el mundo con Box2D

world = new b2World(gravity,doSleep); 

da el error: No se constructor correspondiente para la inicialización de 'b2World'.

El archivo es .mm, supongo que es un problema sobre la vinculación de la biblioteca, tal vez? Si es así, estoy usando xCode 4, ¿cómo puedo verificar que la lib esté correctamente vinculada?

Gracias.

+0

¿Qué versión de Cocos2d estás usando? Si es cocos2d 2.0 alpha, entonces debería venir con una plantilla de proyecto actualizada "cocos2d with box2d". – LearnCocos2D

Respuesta

25

Está utilizando Box2D v2.2 o posterior. El b2World constructor ya no toma dos argumentos, solo uno (gravedad). Usted tiene que fijar doSleep por separado:

world = new b2World(gravity); 
world->SetAllowSleeping(doSleep); 

Este no será el único cambio que tendrá que hacer la transición de Box2D v2.1.x a v2.2.x. Kobold2D tiene un proyecto de ejemplo funcional de Box2D 2.2.1, incluso si no usa Kobold2D, puede obtener el código fuente actualizado para los conceptos básicos de Box2D. En particular, la clase GLESDebugDraw y cómo configurar un cuadro delimitador de pantalla con un cuerpo que utiliza varias formas.

+0

gracias :) – FBryant87

+0

Gracias Steffen. Parece que la referencia oficial de Box2D echa de menos la actualización. http://box2d.org/manual.pdf página 8 todavía tiene la antigua forma de crear el mundo. Por cierto, has establecido un muy buen "puerto de escucha" para las preguntas de Cocos2D :). –

Cuestiones relacionadas