2009-08-06 13 views
5

A menudo escuchas que C++ es preferible a Objective-C para juegos, especialmente en un entorno de recursos limitados como el iPhone. (Sé que todavía necesitas algo de Objective-C para hablar inicialmente con los servicios de iPhone.) Sin embargo, el motor de juego en 2D elegido en estos días parece ser Cocos2d, que es Objective-C.Usa el motor de juego Objective-C en el juego de C++ para iPhone?

Entiendo que lo que Apple llama "Objective-C++" le permite mezclar clases C++ y Objective-C en un solo archivo, pero no puede mezclar y combinar construcciones de idiomas dentro de la misma clase o función.

Entonces, ¿es sensato/posible usar Cocos2d para un juego de C++? ¿Tienes que escribir un montón de código "pegamento"? Me gustaría evitar parte del trabajo pesado que un enfoque directo de OpenGL-ES requeriría.

Respuesta

3

Actualmente estoy creando un prototipo de un juego con Cocos2. Escribo la lógica del juego en C++ con Chipmunk y luego uso Cocos para implementar la capa de visualización. De hecho, puede mezclar C++ y Objective-C libremente en la misma clase, función y línea de código. Estoy seguro de que hay límites, como que probablemente no se puede mezclar la sintaxis de definición de métodos Objective-C y C++ en una interfaz de clase (en realidad no pensé en probar), pero para la mayoría de los propósitos prácticos puedes mezclar libremente.

Si solo está apuntando a iPhone, entonces no estaría demasiado preocupado por escribir todo en Objective-C. Como otros han mencionado, si algo es realmente un cuello de botella de rendimiento, puedes simplemente perfilarlo y optimizarlo. Estoy escribiendo el núcleo de mi juego en C++ porque es posible que desee implementarlo en otras plataformas y en ese caso Objective-C se convertirá en una responsabilidad.

+1

Gracias. Las consideraciones de rendimiento a un lado, preferiría usar C++ como una cuestión de gusto personal. Parece que puedo hacer esto y seguir usando Cocos2D. – Buggieboy

7

No debería tener que escribir ningún código de pegamento ya que Objective-C++ le permite mezclar código C++ y Objective-C con bastante libertad. Sin embargo, recomendaría escribirlo en Objective-C y luego crear perfiles si necesita optimizarlo y reescribir esas partes en C o C++ en lugar de comenzar con C++. Objective-C no es un lenguaje lento y no hay razón para poner todo el esfuerzo extra para usar C++ cuando sea lo suficientemente rápido.

Cuestiones relacionadas