Kobold2D (Alfa) Demostración

El 26 de junio de 2011, en cocos2d, Kobold2D, por Steffen Itterheim by Steffen Itterheim

Registré un screencast para darle una primera impresión de la versión alfa corriente de Kobold2D. Le mostraré lo que es es, lo que esto incluye (hasta ahora) y como esto mejora el proceso de desarrollo cocos2d.

Desde la grabación del screencast he añadido el proyecto de Gota de Garabato del libro como un proyecto de plantilla animoso iOS. También añadí los proyectos de física de Ardilla listada & Box2D del libro y los mejoré para trabajar tanto en iOS como en Mac OS X.

Actualización

Aquí está un screenshot la exposición de la lista corriente de proyectos de plantilla (Hola Kobold2D, Hola Cocos3D, Hola Cocos2D-X, Física Box2D, Ardilla listada de Física, Ardilla listada de Física SpaceManager, Gota de Garabato) y la marcha de plantilla de Gota de Garabato:

La actualización de Cocos2D en un Proyecto Existente

El 20 de mayo de 2011, en cocos2d, apoyo, Xcode, por Steffen Itterheim by Steffen Itterheim

La mejora del cocos2d-I-Phone es una cuestión que se repite para muchos reveladores, pero ya que esto pasa tan con poca frecuencia durante el lifecycle de un proyecto, no hay sólo ninguna rutina para seguir. Finalmente usted podría querer mejorar el cocos2d-I-Phone, entonces la pregunta se levanta: ¿cómo está usted esto con la menor parte de cantidad de problema? how do you do that with the least amount of trouble?

Como paso por el proceso de actualizar más de 70(!) proyectos de Xcode para la segunda revisión de mi Aprender el libro de Cocos2D, yo creía que debería perfilar los pasos para mejorar Xcode existente 3 proyecto que usa el cocos2d-I-Phone v0.99.x para Xcode 4 proyecto que usa el cocos2d-I-Phone v1.0.x.

Requisitos previos: actualización de software

Obviamente, usted quiere descargar la última versión de cocos2d-I-Phone y desabrocharla a cualquier directorio. Sólo recuerde donde usted lo desabrochó porque esto es donde usted copiará las nuevas carpetas de biblioteca de.

Usted también quiere asegurarse que usted ha mejorado a Xcode 4 ya, instalando el iOS 4.3 (o más tarde) SDK, si usted no ha hecho tan ya.

Precaución: Asegúrese que Xcode está cerrado durante los primeros pasos.

El paso #1: suprima contenido de carpeta libs

En la carpeta de su proyecto, en este caso DoodleDrop03, seleccionan todas las carpetas en la carpeta libs y los suprimen sin la piedad:

Usted terminará con una carpeta libs vacía. En otras palabras, no suprima la carpeta libs sí mismo o por si usted hiciera, asegúrese que usted recrea la carpeta libs.

Precaución: La razón por qué suprimo todas las bibliotecas en la carpeta libs en vez de superponer simplemente las bibliotecas con nuevos es simple: usted puede esperar que la versión de cocos2d-I-Phone actualizada haya quitado o haya renombrado algunos archivos. Por la primera supresión de todas las bibliotecas usted puede estar seguro que ningunos “archivos de zombi” existen que ya no son usados, pero todavía podrían ser compilados cuando usted más tarde añade de nuevo las bibliotecas. Tales archivos de zombi atornillarían el proceso de construcción y generarían errores como los símbolos definidos "del duplicado” y otras tales desgracias. you can expect the updated cocos2d-iphone version to have removed or renamed some files. By first deleting all libraries you can be sure that no “zombie files” exist which are no longer used but might still be compiled when you later re-add the libraries. Such zombie files would screw up the build process and generate errors like “Duplicate defined symbols” and other such mishaps.

El paso #2: copie las carpetas de biblioteca

La primera cosa que usted notará cuando usted quiere mejorar el libs (Box2D, Ardilla listada, cocos2d, CocosDenshion, cocoslive, FontLabel y TouchJSON) consiste en que ellos están en carpetas diferentes en el proyecto de cocos2d-I-Phone que usted ha descargado y ha desabrochado.

Asegúrese que usted selecciona el exacto mismas carpetas que son seleccionadas en el screenshot abajo:

Esta diferencia en la disposición de carpeta puede ser un poco confusa. De qué usted tiene que ser consciente es que el Box2D, la Ardilla listada, FontLabel y las carpetas de TouchJSON están en la carpeta externa en el proyecto de cocos2d-I-Phone. Además, la carpeta Box2D que usted debería copiar es una subcarpeta de Box2d. Note la diferencia en la capitalización de la carta D. Usted quiere copiar la carpeta con la mayúscula D: Box2D. El mismo va para la carpeta de CocosDenshion, usted debería seleccionar la carpeta de CocosDenshion dentro de la carpeta de CocosDenshion. Furthermore, the Box2D folder that you should copy is a subfolder of Box2d. Note the difference in capitalization of the letter D. You want to copy the folder with the uppercase D: Box2D. The same goes for the CocosDenshion folder, you should select the CocosDenshion folder inside the CocosDenshion folder.

Precaución: Asegúrese que usted no selecciona la carpeta de Banco de pruebas Box2D – si usted hace y copia esto también, Xcode 4 podría cerrar la construcción del proyecto, la consumación del poder de CPU del 100 % y el requerimiento de una fuerza dejan de cerrarlo.

Note: Si usted sólo usa la Ardilla listada o la física Box2D, o ninguno de ellos, usted puede saltar la copia de estas carpetas por supuesto.

Para completar la copia opertation, vaya a la carpeta libs y pegue las carpetas de biblioteca copiadas de modo que usted termine con una carpeta libs que exactamente parece a la imagen en el Paso #1.

Punta: Si usted prefiere la rastra y la gota usted puede arrastrar sólo las carpetas seleccionadas de una ventana Finder al otro en la carpeta libs de su proyecto. Esto puede ser más fácil a hacer pero usted debería acordarse de dominar la llave de Opción cayéndose de modo que usted realmente copie las carpetas en vez de moverlos. La operación de copia es indicada por el verde + icono debajo del cursor como usted arrastra & se cae sosteniendo la llave de Opción. This may be easier to do but you should remember to hold down the Option key while dropping so that you actually copy the folders instead of moving them. The copy operation is indicated by the green + icon underneath the cursor as you drag & drop while holding the Option key.

El paso #3: Quite Referencias de Biblioteca

Abra su proyecto en Xcode 4 ahora.

Seleccione todos los grupos bajo el grupo de la Fuente cocos2d y golpee la Tecla de retroceso para suprimir estos grupos (o el chasquido correcto y elegir Suprimen). Le empujarán con un diálogo como en el screenshot abajo.

Asegúrese que usted selecciona la opción de falta Quitan Referencias Sólo para evitar suprimir las nuevas carpetas de biblioteca que usted sólo copió:

Una vez que usted ha quitado los grupos de bibliotecas, el grupo de la Fuente cocos2d debería ser completamente vacío. Usted sólo se deshizo de todas las viejas referencias, salvándose de cualquier error de compilación potencial causado por referencias a archivos que pueden no existir más.

El paso #4: Añada Carpetas de Biblioteca

Después usted quiere añadir de nuevo sus carpetas de biblioteca. El chasquido escogido y correcto el grupo de la Fuente cocos2d y escogido Añade Archivos a “NameOfYourProject”:

Hojee en la carpeta libs del proyecto y seleccione todas las carpetas de biblioteca que usted necesita en su proyecto.

Usted puede haber notado que mi proyecto no usa ningún motor de física, entonces decidí no añadirlos aquí. Si usted realmente usa Box2D en su proyecto usted querría seleccionar también Box2D por supuesto. Igualmente si usted usa la Ardilla listada. Likewise if you use Chipmunk.

Note: Mientras no es un problema de añadir que ambas carpetas de motor de física, haciendo tan podrían aumentar la talla de su App.

¡Ahora, aquí está dónde usted tiene que tener cuidado con las opciones! Usted quiere asegurarse que ellos son puestos exactamente como en el screenshot abajo. El más importantemente, añadiendo archivos Xcode faltará para añadir los archivos al objetivo principal del proyecto (en este caso DoodleDrop) en vez del objetivo de bibliotecas cocos2d. Most importantly, when adding files Xcode will default to add the files to the project’s main target (in this case DoodleDrop) instead of the cocos2d libraries target.

Asegúrese que sólo el objetivo de bibliotecas cocos2d es seleccionado para evitar que cualquiera construya errores:

El paso #5: ¡Constrúyalo!

Usted debería intentar ahora y construir el proyecto. Si usted tiene suerte, no habrá ningún error y usted puede seguir con su trabajo.

Pero con la mayor probabilidad, según la complejidad de su proyecto y los cambios hechos al cocos2d-I-Phone, usted debería fijar cualquiera construye errores que ocurren. La mayor parte de ellos probablemente serán causados por clases que han sido renombradas o funciones que han sido desaprobadas. En este caso usted tendrá que averiguar por la Referencia API y soltar notas lo que los cambios son y como fijarlos. In this case you’ll have to find out through the API Reference and release notes what the changes are and how to fix them.

La fijación de “SDK bajo ausente” mensaje

Una cuestión común que ocurre expresamente a proyectos más viejos es “SDK bajo ausente” error. Creo que era la versión de Xcode introducida con Mac OS X Leopardo de Nieve (soltado el 28 de agosto de 2010) que finalmente fijó esta cuestión temida añadiendo que “último iOS” opción para SDK bajo Construye el Ajuste.

Si usted ve un mensaje como esto (sobre todo si esto le da una advertencia compilar o error):

Usted debería cambiar SDK bajos Construyen el Ajuste de su proyecto de usar “Último iOS” ajuste:

Note: En algunos casos puede ser necesario cerrar Xcode 4 y volverlo a abrir para hacer “SDK bajo ausente” el mensaje se marcha.

Correctamente Heredamiento Construye Ajustes

Normalmente, todos los objetivos en Xcode heredan los Ajustes Construir del proyecto en ausencia.

Sin embargo, una vez que usted ha hecho cualquier cambio en cualquiera Construir el Ajuste al nivel objetivo esto Construye el Ajuste ya no heredará cambios hechos al mismo Construyen el Ajuste al nivel de proyecto. La reacción de falta por muchos reveladores a menudo es morder la bala y control y nuevo control los Ajustes Construir del proyecto así como todos los objetivos, y hacer el mismo cambio tan muchas veces como usted tiene objetivos en su proyecto.

¡No haga esto, hay un camino mejor y más fácil!

Usted puede tener un Ajuste Construir al nivel objetivo a la falta atrás para heredar el Ajuste Construir definido al nivel de proyecto. Igualmente un Ajuste Construir al nivel de proyecto puede ser hecho heredar de la configuración predeterminada OS. En el screenshot abajo he cambiado resueltamente el Ajuste Construir al nivel objetivo: In the screenshot below I have purposefully changed the Build Setting at the target level:

Para tenerlo la falta atrás al ajuste de proyecto, que es Último iOS (iOS 4.3) todo que usted tiene que hacer debe seleccionar lo que Construye el Ajuste y golpea la tecla de supresión:

Punta: la Conmutación del Combinado a la visión de Niveles examinando los Ajustes Construir hace fácil ver que Construyen Ajustes son heredados y que no son. Usted también notará que cualquiera Construye el Ajuste que ha sido cambiado al nivel actual y no hereda su valor más es imprimido en cartas valientes. You’ll also notice that any Build Setting that has been changed at the current level and doesn’t inherit its value anymore is printed in bold letters.

¡Eso es!

¡Codificación feliz con su proyecto de cocos2d-I-Phone recién actualizado! Este seminario de mejora también será imprimido en la segunda revisión de Aprender el libro de Cocos2D.

Punta: Con Kobold2D será aún más fácil mejorar su proyecto porque una copia simple & la pasta de los archivos en la carpeta kobold2d bastarán. Si hay alguna vez cualquier paso adicional para seguir los describiremos detalladamente por supuesto. If there are ever any additional steps to follow we’ll describe them in detail of course.

Libro de cocos2d, el Capítulo 5: Adquisición más grande y mejor

El 23 de julio de 2010, en Anuncios, libro, por Steffen Itterheim by Steffen Itterheim

El capítulo 5 – Adquisición de más grande y mejor

La idea esencial de este capítulo deberá hablar del proyecto animoso simple del capítulo anterior. Lancé todo en una clase, claramente no lo que usted quiere hacer para juegos más grandes. Pero la adquisición del de la misma clase al verdadero diseño de código es un paso grande que unos dudan en tomar. Haré esto más fácil y hablaré de cuestiones comunes y sus soluciones, tal como que a seperate, que subclasificar de y como usted puede tener todos los objetos de seperated se comunican el uno con el otro e intercambian la información de varios modos. But getting from one-class to real code design is a big step which some hesitate to take. I’ll make that easier and discuss common issues and their solutions, such as what to seperate, what to subclass from and how you can have all the seperated objects communicate with each other and exchange information in various ways.

Un tema grande será por supuesto como aprovechar la jerarquía de escena cocos2d’s y qué escollos esto puede tener moviéndose de un juego de capa sola a uno que tiene capas múltiples y hasta escenas múltiples.

En cuanto al título de capítulo no estoy tan seguro si esto será él. Tal vez a lo largo del camino mientras escribo que lo cambiaré. ¡Bienvenida de suposiciones! Suggestions welcome!

El capítulo será presentado el viernes, 30 de julio.

¿Qué es su tomar en la estructura de código de cocos2d buena?

¿Luchó alguna vez usted con conceptos de diseño cocos2d? ¿O la jerarquía de escena cocos2d? ¿O cómo a la disposición una escena y dividen su juego en partes lógicas? Dígame sobre ello. Or how to layout a scene and divide your game into logical parts? Tell me about it.

Sé que las preguntas de tesis son algo genéricas para preguntar. Es sobre las cosas que no se sienten correctas, pero allí no parecen ser un camino mejor, más obvio. ¡Creo que conocemos algunos de aquellos, si usted hace, estar seguro de decirme! Deje un comentario o escríbame un correo electrónico. I think we all know some of those, if you do, be sure to tell me! Leave a comment or write me an email.

Resumen de trabajo en el Capítulo 4 – juego Primero simple

El juego que decidí hacer es llamado Gota de Garabato y rasgos que dejan caer arañas y un acelerómetro controló al extranjero que trata de evitar las arañas. En conjunto estaba dividido en 8 pasos concretos. Partes y muchos comentarios de código, también. Lots and lots of code comments, too.

Esto comienza recursos bastante simples, agregatorios a Xcode y adición de elfos. Consigue más gameplay-esque cuando los mandos de jugador conducidos por el acelerómetro fueron pellizcados para proporcionar la aceleración y la desaceleración del objeto de jugador. En contraste, los movimientos de arañas sólo son conducidos por acciones. In contrast, the spiders movements are driven only by actions.

Le presento en dos rasgos indocumentados de cocos2d, a saber CCArray que es desde v0.99.4 solía almacenar a todos los niños de un nodo. El otro son la clase de CGPointExtension que tiene todas las funciones normalmente proporcionadas por un motor de física, sin embargo no cada juego debería unir un motor de física sólo porque uno necesita aquellas funciones de matemáticas. Por eso CGPointExtension entra práctico. That’s why CGPointExtension comes in handy.

Con el método ccpDistance los controles de colisión son hechos. Las colisiones radiales simples, y en el modo de depuración los radios de colisión son dibujadas también.

Entre el CCLabel para el resultado fue sustituido por CCBitmapFontAtlas, porque esto mató el framerate. Dentro de poco mencioné a Hiero y como usarlo en principio pero para todos los detalles no había ningún cuarto. Pero mientras yo estaba en ello creé el Seminario Hiero. But while I was at it I created the Hiero Tutorial.

Al final de proyecto añadí que unos pulen que no es descrito en el libro (demasiados detalles), pero realmente añade a mirada del juego y sensación. La gota de arañas, cuelgue en allí, luego culpe antes de caerse, todas las acciones de utilización hechas. También he añadido el hilo que ellos cuelgan de usar ccDrawLine. Y luego hay un juego sobre la etiqueta que muestra hasta más uso de acción. I’ve also added the thread they’re hanging from using ccDrawLine. And then there’s a game over label which shows even more action use.

Uno de los principios que seguí debe alejarse de coordenadas fijas tanto como posible. Entonces el proyecto, una vez terminado, realmente corrió sólo fino en un iPad. Aunque la experiencia sea uno diferente, hay más caída de arañas y ellos se caen más rápido pero también hay el espacio más seguro para maniobrar a. Although the experience is a different one, there’s more spiders dropping and they drop faster but there’s also more safe space to maneuver to.

Ah y, el arte animoso es toda la mina. ¡Sí, sé … pero las arañas del Hombre realmente tienen sólo seis piernas! :)