Red de conocimiento informático - Material del sitio web - Cómo aprender un marco de desarrollo

Cómo aprender un marco de desarrollo

De los muchos programadores con los que he entrado en contacto, la gran mayoría lo sabe pero no sabe por qué. Llevan varios años haciendo AS y muchos de ellos ni siquiera saben qué es AVM. es. Muchos programadores consideran el rápido desarrollo de productos terminados como el único objetivo de su trabajo y creen que estudiar el conocimiento subyacente y las tecnologías circundantes es una pérdida de tiempo. No es que no puedan saber muchas cosas, pero no quieren saberlas.

Es más, si aprende gotoAndPlay, puede decir que está familiarizado con Flash y si puede escribir ls, puede decir que domina Linux. Hace unos días, un amigo me envió un currículum que había admirado durante todo un día. Decía ensamblador, C/C, programación de redes Linux, JAVA EE, Perl, Bash, Python, desarrollo de controladores de Windows, desarrollo de microcontroladores, HTML. CSS3, JavaScript, PHP, cocos2d-x, desarrollo de iOS, desarrollo de Android... ¡y el nivel de todos los proyectos es competente!

Después de leer mi currículum, les dije a mis amigos: este maestro full-stack que se especializa en sistemas integrados de escritorio front-end y back-end, maneja páginas web y desarrollo de teléfonos móviles ha cambiado de trabajo 8 veces. en 10 años, y nunca ha trabajado en una empresa por más de 2 años Año, ¿te animas a utilizarlo?

======Lo anterior no tiene sentido, así que no lo leas.

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: ¿Cocos2dx lua es adecuado o Cocos2dx js? El enlace lua de cocos2d-x 2.x no es muy bueno, así que elegí rápido. cocos2d-x (más tarde, Touch adquirió Quick).

1.2 Learning C

C Primer Chinese Edition (5.a edición) (Douban) es un buen libro introductorio. Se recomienda leer la quinta edición. Escribí un artículo sobre C Primer. 4ª Edición Edición comparada con la 5ª edición. Durante el periodo de estudio, se recomienda dibujar algunos mapas mentales que ayuden a comprender y organizar las ideas. Por ejemplo, esto (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 utilizar doxygen para generar documentación y se recomienda navegar por cada función de API.

Algunos estudiantes pueden preferir mirar el código fuente directamente, lo cual, por supuesto, es mejor. Sin embargo, una ventaja del documento es que puede mostrar la relación de herencia de forma más intuitiva.

En el proceso de aprendizaje DEMO, 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. Plataforma Linux.

Tenga en cuenta que Quick-cocos2d-x no es compatible con la plataforma de desarrollo Linux.

Actualización del 17 de mayo de 2014: Quick ha reescrito la parte del reproductor usando QT, pero aún no es compatible con la plataforma Liunx.

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:

/archives/4809

Documento oficial chino Cocos2d-x v2.x

Cocos2D Desarrollo iOS | Consejos y trucos de BiOM

Zilong Shanren - Blog Park

Ruta de programación de juegos de Red Boy

Ray Wenderlich

Cocos2d-x | Plataforma Open Source 2D Game Engine

Muchos blogs son excelentes. Honghaier (quien luego agregó el control táctil) escribió muchos análisis del código fuente y agregó comentarios a cada oración del código fuente. Aunque no estoy de acuerdo con su método ingrato, de hecho es de gran ayuda 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.

1.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.

1.3 Ejecute todas las muestras que vienen con quick-cocos2d-x

Durante este período, familiarícese con todos los paquetes del marco. Puede consultar el sitio web rápido y la wiki rápida.

1.4 Aprenda a exportar API para usar en Lua

Exportar API C/C para usar en Lua

3. Aprenda OpenGL ES

Familiarícese con Lua Después de esta parte, como codificador que aspira a convertirse en programador, todavía tengo que volver a C/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 que por favor abre las piernas, que 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 de JAVA en Android, familiarizado con la aplicación de 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í.

¡Te deseo éxito!

Reimpreso únicamente como referencia, los derechos de autor pertenecen al autor original. Te deseo una vida feliz, acéptala si estás satisfecho