Cómo aprender cocos2d-x
Da la casualidad de que también cambié de AS3 a cocos2d-x. Déjame hablar sobre mi experiencia.
1. Parte de Cocos2d-x
1.1 Selección de tecnología
A partir del tercer juego móvil, me atrajo mucho el ANE de Adobe y las pequeñas plataformas nacionales que perdí. Mi temperamento después de luchar tanto y decidí cambiar a cocos2d-x. Luché durante mucho tiempo sobre qué enlace de idioma elegir y finalmente elegí lua en contra de todas las opiniones: enlace de lenguaje de script Cocos2d-x: ¿Lua o Javascript? El enlace Lua de cocos2d-x 2.x no es muy bueno, así que elegí Quick-cocos2d-x.
1.2 Aprendiendo C++
"C++ Primer" es un buen libro introductorio. Se recomienda leer la quinta edición. He escrito un artículo comparando la cuarta y quinta edición de C++ Primer. . Durante el periodo de estudio, se recomienda dibujar algunos mapas mentales que ayuden a comprender y organizar las ideas. Por ejemplo, este (incompleto):
1.3 Aprenda la DEMO y familiarícese con la plataforma de desarrollo.
Compile el proyecto TestCPP que viene con cocos2d-x y ejecútelo todo. Familiarícese con el uso de la API cocos2d-x. Recuerde generar documentación y se recomienda navegar por cada función de la API.
En el proceso de aprendizaje DEMO, también debe estar familiarizado con el IDE de su propia plataforma de desarrollo. Por ejemplo, debe estar familiarizado con Visual Studio en Windows, xcode en OS X y Eclipse+CDT. en la plataforma Linux.
Tenga en cuenta que Quick-cocos2d-x no es compatible con la plataforma de desarrollo Linux.
1.4 Comprender la estructura de carpetas del motor
Los documentos generados en base al código fuente de cocos2d-x no son muy detallados y muchas funciones deben mirar el código fuente. Pero en esta etapa, no recomiendo involucrarse demasiado en el código fuente. En su lugar, puede ingresar a la estructura de carpetas de cocos2d-x, ver dónde se ubica cada clase y buscar macros, constantes y enumeraciones comunes. están definidos. No lleva mucho tiempo, pero le dará una comprensión más profunda de cocos2d-x y le dará una fuerte sensación de logro. Esta sensación de logro diluye tu sentimiento de impotencia cuando te enfrentas a una gran cantidad de código fuente, permitiéndote seguir adelante.
El siguiente es mi análisis:
1.5 Repita el paso 3 anterior: aprenda DEMO nuevamente
Puede que sea más fácil ver la DEMO en este momento, pero allí Habrá más problemas con los que luchar. ¿Como el soporte para múltiples resoluciones? ¿Como un sistema de coordenadas? ¿Te gusta una función de dibujo? Por ejemplo, ¿un sistema de gestión jerárquico? ¿Te gusta un sistema de entrega de eventos? Espera, espera... En este momento puedes ir a Google (ten cuidado de no usar Baidu y otros motores de búsqueda) para buscar documentos. Recomiendo algunos buenos documentos y blogs que he leído:
Análisis completo de la adaptación multiresolución de Cocos2d-x
Documento chino oficial de Cocos2d-x v2.x
Zilongshanren – Blog Park
Ruta de programación de juegos de Red Boy
Consejos y trucos de desarrollo de iOS de Cocos2D de BiOM
Ray Wenderlich
p>Cocos2d-x | Motor de juego 2D de código abierto multiplataforma
Muchos blogs son excelentes. Honghaier ha escrito muchos análisis del código fuente y se agregan comentarios detallados a cada oración del código fuente. Aunque no estoy de acuerdo con su método ingrato, de hecho es muy útil para los principiantes.
Además, puedes encontrar las respuestas a la mayoría de las preguntas en Stack Overflow. Por supuesto, muchas preguntas son específicas de cocos2d en lugar de cocos2d-x, pero el uso es el mismo, así que léalo correctamente. Muchos artículos excelentes se basan en cocos2d, así que no te preocupes, puedes dedicar medio día a familiarizarte con la sintaxis de OC, siempre que puedas entenderla.
No compres libros chinos todavía. Una vez pasé 3 días leyendo "La esencia de la tecnología de desarrollo de juegos Cocos2D-X" y "Desarrollo de juegos móviles cocos2d-x: en plataformas iOS, Android y WoPhone", y descubrí que el autor en realidad llegó a ganar regalías.
Olvidé los anuncios, mi blog (cocos2d-x | Blog de zrong) también tiene contenido de cocos2d-x, bienvenido a comentar.
1.6 Familiarízate con el conjunto de herramientas
Ahora deberías estar interesado en las herramientas periféricas. Por ejemplo, ¿qué se utiliza para crear una animación de fotogramas? ¿De qué está hecho BMFont? ¿Qué pasa con la animación esquelética? ¿Cómo editar un archivo plist? ¿Qué herramienta utilizas para juntar los dibujos rotos? En algunos proyectos, es posible que tenga muchas opciones o no. Vaya a Google. Si tiene alguna pregunta sobre la selección, no dude en comentarla conmigo.
2. Parte de Quick-cocos2d-x
2.1 Ahora es el momento de Lua
Lea atentamente "Programación de Lua (segunda edición)" Partes uno, dos y tres. Puedes saltarte la lectura de la cuarta parte por ahora.
2.2 Familiarícese con la estructura de carpetas de Quick-cocos2d-x
Creo que con la base anterior de cocos2d-x, esto no debería ser difícil de entender.
2.3 Ejecute todas las muestras que vienen con quick-cocos2d-x
Durante este período, familiarícese con todos los paquetes del framework. Puede consultar el sitio web rápido y la wiki rápida.
2.4 Aprenda a exportar API para usar en Lua
Exportar API C/C++ para usar en Lua
3. Aprenda OpenGL ES
Familiarízate con Lua Después de esta parte, como codificador que aspira a convertirse en programador, todavía tengo que volver a C++. Esta es la esencia de cocos2d-x.
cocos2d-x usa OpenGL ES para renderizar. Si desea extender la capa de renderizado de cocos2d-x de cualquier forma, no puede evitar OpenGL ES.
Como no puedes escapar, entonces dile, por favor abre las piernas, quiero subir.
3.1 Lea la Guía de programación de OpenGL ES 2.0
El siguiente es el sitio web oficial de este libro. Se ha publicado la versión 3.0 de OpenGL ES y cocos2d-x usa 2.0.
/es2/index.html
Este libro está escrito de forma fácil de entender y es muy adecuado para principiantes. Un internauta pasó 3 meses traduciendo la versión china, pero aún así te recomiendo que no la leas.
Aquí está la documentación oficial y la traducción API al chino de OpenGL ES.
Por supuesto, también puedes comprar el famoso Libro Rojo de OpenGL "Guía de programación de OpenGL (Libro original 7.ª edición)" para leerlo, pero OpenGL ES sigue siendo algo diferente de OpenGL. decir la diferencia.
3.2 Intente comprender la arquitectura de renderizado de cocos2d-x
No enumeraré las clases relacionadas. Estoy preparando una serie de artículos al respecto para publicarlos en el blog. Si está terminado, lo actualizaré aquí.
3.3 Escriba algunos filtros y extensiones de funciones de dibujo usted mismo
Por ejemplo: cocos2d-x-filters
4 Devolver proyecto
En. En este punto, puedes comenzar tu proyecto. Aunque todavía no he leído el código fuente, creo que puedo entender toda la arquitectura. En el proceso de trabajo en el proyecto, leer un poco el código fuente es un método más rápido y aceptable para mí, de lo contrario será demasiado aburrido.
Es posible que también deba elegir herramientas relacionadas con cocos2d-x. Es posible que haya oído hablar de CCB (cocosBuilder) y CCS (cocoStudio), intente comprenderlos antes de decidir si usarlos.
Ya tienes la base de AS3, por lo que tienes muchos conceptos y experiencia de front-end. Estas experiencias también son aplicables en cocos2d-x. Sin embargo, cabe señalar que cocos2d-x no es AS3. No intente utilizar cocos2d-x en métodos AS3.
Un programador se quejó conmigo cuando cambió de C# a AS3: ¿Por qué Flash Builder no tiene esta función o aquella función de Visual Studio?
Entonces este programador se quejó conmigo cuando cambió de AS3 a Sublime Text (para edición en Lua), ¿por qué Sublime Text no tiene esta función o aquella función de Flash Builder?
Lo anterior es una broma.
Al mismo tiempo, para resolver algunas funciones no proporcionadas por cocos2d-x, debes adquirir conocimientos relevantes. Por ejemplo, esto: use libcurl en cocos2d-x para implementar la función de carga de archivos (con el paquete quick-cocos2d-x). Pero ahora que tienes los conceptos básicos, aprenderlos no es difícil.
Cuando tenga tiempo, puede leer atentamente la cuarta parte de "Programación Lua (segunda edición)" mencionada anteriormente para comprender la forma en que se comunican los lenguajes Lua y C, y echar un vistazo a cocos2d-x ¿Cómo es? se implementó en el interior.
Además, algunas funciones que necesita y que no están disponibles en el motor también se pueden implementar fácilmente como código abierto (como este: un paquete LuaSocket). Quizás lo que necesita es exactamente lo que otros necesitan.
5. Familiarícese con la plataforma de publicación
Dado que estamos creando juegos para dispositivos móviles, no podemos escapar de las plataformas Android e iOS.
Debe estar familiarizado con las características de las plataformas Android e iOS, familiarizado con la aplicación del lenguaje JAVA en Android, familiarizado con la aplicación Objective-C en iOS y familiarizado con Eclipse ADT y XCode ( usted debe estar familiarizado con lo anterior).
También debe estar familiarizado con el proceso de publicación, las pautas y políticas de Google Play y AppStore, así como el acceso a compras dentro de la aplicación y la incorporación de SDK.
Hay que aprender a tratar con los programadores, empresarios y recepcionistas de cada plataforma de acceso (porque muchas veces no encuentras el verdadero personal técnico responsable del SDK que buscas), y hay que poder soportarlo. Las pequeñas plataformas nacionales tienen documentación deficiente, especificaciones de código y métodos de programación escandalosos.
Fin, sin fin
Lo anterior no está completo y deberían faltar muchas cosas, pero solo puedo decir hasta cierto punto. Porque mi experiencia no termina ahí.
Reimpreso solo como referencia. Te deseo una vida feliz y acéptalo si estás satisfecho.