Red de conocimiento informático - Computadora portátil - Cómo crear Android cocos2d x

Cómo crear Android cocos2d x

Este tutorial requiere que esté instalada la última versión de Cocos2D-X (nota del juego: actualizado a 2.1.4 al momento de escribir este tutorial). Si no tiene la última versión de Cocos2D-X, descárguela primero y luego ejecute el siguiente comando en la terminal para instalar la plantilla:

CD ~/downloads/cocos2d-x-2.1.4 . /install-templates-Xcode .sh-f-u, luego cree un nuevo proyecto en xcode usando la plantilla iOS\cocos2d-x\cocos2dx. Haga clic en Siguiente, asigne al proyecto el nombre TileGame, establezca el proyecto en Universal, haga clic en Siguiente y luego haga clic en Crear.

Usarás ARC en este proyecto, así que si es la primera vez que escuchas sobre ARC, te animo a que lo conozcas primero. La plantilla no utiliza ARC de forma predeterminada, pero afortunadamente podemos modificarlo fácilmente. Vaya a Editar\Refactor\Convertir a Objective-C Arc. Desplácese hacia abajo y seleccione solo los archivos main.m, appdelegate.cpp, helloworldscene.cpp, luego haga clic en Verificar y complete los pasos del asistente.

Elige el objetivo (de raywenderlich)

Créalo y ejecútalo, luego asegúrate de que todo sigue funcionando bien; deberías poder ver la pantalla estándar "Hola mundo".

A continuación, descarga el archivo zip de los recursos del juego. El archivo comprimido contiene lo siguiente:

El asistente que utilizará para el objeto reproductor.

Algunos efectos de sonido creados con la herramienta cfxr (los usarás en el tutorial).

Una música de fondo compuesta por una banda de garage.

Algunas de las configuraciones de los bloques que usarás: vendrán con el editor de mapas que usarás, pero creo que podemos incluirlas más fácilmente en otro contenido.

Algunos ladrillos "especiales" adicionales se explicarán en detalle más adelante.

Cuando se descargue el recurso, ábrelo y arrastra la carpeta TileGameResources al grupo de Recursos de tu proyecto. En el menú Proyecto, haga clic derecho en el grupo Recursos y seleccione Agregar archivos a Tilegame... Seleccione la carpeta Recursos/TileGameResources y verifique que Copiar proyecto en la carpeta del grupo objetivo esté seleccionado (si es necesario) y "Crear grupos para cualquier carpeta agregada". y haz clic en Finalizar

Si todo va bien, todos los documentos aparecerán en tu proyecto

Tile Game (de raywenderlich)

¡Ahora comenzaremos a crear mapas!

Creación de mapas

Cocos2D-X admite la creación de mapas basados ​​en el editor de mapas de mosaicos y guardar en formato TMX.

Descargar el editor de mapas de mosaicos. Al momento de escribir este tutorial, su última versión es 0.9.0.

Luego ejecute Tile y vaya a Archivo \Nuevo, complete el cuadro de diálogo de la siguiente manera:

Nuevo mapa (de. raywenderlich)

En el área de Orientación, puede elegir Ortogonal o Isométrica. Aquí elegirá Ortogonal.

A continuación, establecerá el tamaño del mapa. un mosaico, no un píxel, por lo que debe elegir 50× aquí 50. Representación de mosaicos basada en píxeles

El tamaño de su mapa general, que se encuentra en la parte inferior del cuadro de diálogo del nuevo mapa. multiplicando el tamaño del mosaico (50 mosaicos) según el largo y el ancho (32 píxeles).

Finalmente, especificará el ancho y el alto. Lo que elija aquí dependerá de los mosaicos que vienen con él. Algunos ladrillos de muestra, es decir, de tamaño 32 × 32. Selecciónelo y haga clic en Aceptar.

A continuación, debe agregar la configuración del ladrillo para dibujar el mapa.

Haga clic en Mapa en la barra de menú, luego cierre el nuevo conjunto de mosaicos... y complete el cuadro de diálogo de la siguiente manera:

Nuevo conjunto de mosaicos (de raywenderlich)

Para obtener la imagen, haga clic Busque y navegue hasta su propia carpeta nombre de mosaico/recursos/tilegameresources y seleccione el archivo tmw_desert_spacing.png descargado del archivo zip de recursos y agréguelo a su proyecto. Automáticamente completará el nombre según el nombre del archivo.

Puedes establecer el ancho y el alto en 32×32 ya que ese es también el tamaño de los ladrillos. Para Edge y Space:

Borde se refiere a cuántos píxeles (ancho y alto) debe omitir el ladrillo actual antes de que Tiled comience a buscar píxeles de ladrillo reales.

El espaciado se refiere a cuántos píxeles (ancho y alto) debe avanzar el mosaico después de definir los píxeles reales del mosaico y pasar a los datos del siguiente mosaico.

Si observa tmw_desert_spacing.png, verá que cada mosaico está rodeado por un borde negro de 1 píxel, lo que también explica la configuración de 1 borde y espaciado.

Mosaicos (de raywenderlich)

Cuando hagas clic en Aceptar, verás aparecer los mosaicos en la ventana Conjuntos de mosaicos. Ahora puedes empezar a dibujar. Haga clic en Sello en la barra de herramientas.

El icono del pincel y haz clic en cualquier lugar del mapa para colocar el ladrillo.

conjunto de mosaicos (de raywenderlich)

Así que sigue dibujando mapas, ¡sé lo más creativo posible! Asegúrate de agregar al menos algunos edificios al mapa, ya que necesitarás contenido de colisión más adelante.

conjunto de mosaicos (de raywenderlich)

Para dibujar contenido más fácilmente, puedes concentrarte en algunos métodos rápidos. Estos son algunos de los métodos más comunes:

Puedes arrastrar un cuadro alrededor de una serie de mosaicos en el selector de Conjunto de mosaicos y soltar varios mosaicos adyacentes al mismo tiempo.

Puedes acercar y alejar mediante Ver\Acercar y Ver\Alejar.

Al editar el mapa basándose en la herramienta Pincel de sello, la tecla z girará.

Es posible que notes algunas características nuevas en el minimapa. ¡Esta es una gran característica que te permite ver un mini mapa! Concéntrate en mi pobre intento en el laberinto en la parte inferior del minimapa. El cuadro rojo representa el área que ve en la ventana de edición principal.

conjunto de mosaicos (de raywenderlich)

Tenga en cuenta esta vista de minimapa cuando se desplace para leer la siguiente área.

Cabe señalar que los recursos para este tutorial aparecen delante del mapa, por lo que puedes usarlos directamente si eres perezoso. Si hace esto, debe abrir el mapa en modo mosaico y descubrir cómo está configurado.

Cuando hayas terminado de dibujar el mapa, haz doble clic en el mosaico en la vista de capas.

Capa, cambia el nombre a Fondo. Luego haga clic en Archivo\Guardar para guardar el archivo en nombre de mosaico en el proyecto de nombre de mosaico.

\resources\tilegamersources, asigne al archivo el nombre TileMap.tmx y sobrescriba el archivo existente.

Harás otras cosas con los mosaicos más adelante, pero por ahora ¡incorporemos este mapa al juego!

Agrega un mapa de mosaicos a una escena Cocos2D-X.

Abre HelloWorldScene.h y agrega el siguiente contenido después de #include "cocos2d.h":

¿Usar? ¿Espacio de nombres? cocos2d

Esto indicará al editor que utilice el espacio de nombres cocos2d, por lo que no es necesario anteponer todo con cocos2d.

Luego agregue lo siguiente a la definición de clase, después de las llaves:

Privado:? ¿Mapa en mosaico CCTMXT? *_tileMap? ¿Capa CCTMXL? * _background;

Esto crea una variable de instancia para rastrear el mapa de ladrillos en sí y otra variable de instancia para rastrear la capa de fondo del mapa.

Aprenderás más sobre los niveles del mapa de ladrillos más adelante.

A continuación, reemplace HelloWorldScene.cpp con lo siguiente:

CCTMXObjectGroup? *¿Grupo de objetos? =?_ mapa de mosaicos-& gt;grupo de objetos nombrado(" Objetos ");if(objectGroup?==?NULL){? CCLog("¿Mosaico? ¿Mapa? ¿Sí? ¿No? ¿Objeto? ¿Objeto? Capa");? ¿devolver? Falso;? }CCDiccionario? *¿Punto de generación? =?Grupo de objetos->objeto nombrado("punto de generación");int? ¿incógnita? =?((cc string)* punto de generación->valueForKey("x ")). valor int();? int? ¿y? =?((cc string)* punto de generación-& gt; valueForKey("y ")). int valor();_jugador? =?¿Nuevo? cc sprite();? _ jugador-> initWithFile(" jugador . png ");? _player->setPosition(ccp(x,y));this->addChild(_player);? This->setViewPointCenter(_ player->getPosition());

La última línea es un presagio, pero no te preocupes, estará allí pronto.

Hagamos una pausa por un momento y expliquemos los niveles y grupos de objetos. Primero, tenga en cuenta que está recuperando el nivel del objeto a través del método objectGroupNamed en el objeto CCTMXTiledMap (no LayerNamed). Devuelve un objeto CCTMXObjectGroup especial.

El grupo de objetos luego llama al método objectNamed para obtener un CCDictionary, que contiene información útil sobre el objeto, como los ejes X e Y, el ancho y el alto. En esta parte del tutorial debes cuidar los ejes X e Y y configurarlos en la posición de la guía del jugador.

Al final del bloque de código, configuras una vista para ilustrar la posición del jugador. Ahora agregue lo siguiente a HelloWorldScene.h:

//?In? ¿eso? ¿público? ¿Festival? ¿Vacío? setViewPointCenter(CCPoint? position);

Y agregue un nuevo método a HelloWorldScene.cpp (preferiblemente al final del archivo):

¿Obsoleto? hola mundo::setViewPointCenter(¿punto cc? posición)? {Tamaño CC? ganarTamaño? =?director cc::director compartido()->getWinSize();int? ¿incógnita? =?MAX(posición.x,?winsize.width/2);? int? ¿y? =?MAX(posición.y,?winsize.height/2);? ¿incógnita? =?MIN(x,?(_tile map->getMapSize().width?*?this->_tile map->getTileSize().width)?–?winSize.width?/? 2);? ¿y? =?MIN(y,?(_mapa de mosaicos->getMapSize().Altura?*?_mapa de mosaicos->getMapSize().

altura)? –?winsize altura/2);? ¿CCPunto? ¿Ubicación real? =?ccp(x,y);CCPunto? ¿Centro de visión? =?ccp(winSize.ancho/2,?winsize.alto/2);? ¿CCPunto? ¿Punto de vista? =?ccpSub(centro de vista, posición real);? ¿Esto ->setPosition(punto de vista);? }

Esta es una explicación sobre los ladrillos. Imagine que esta función establece la posición central de la cámara. Permite al usuario escribir en cualquier lugar de los ejes X e Y del mapa, pero es posible que haya algunos puntos que no desee que se muestren; por ejemplo, es posible que no desee que la pantalla se extienda más allá de los bordes del mapa (entonces solo mostrará bordes negros!).