Cómo cargar datos generados por CocosStudio2.0 en 2d-x
El siguiente es el código C, las interfaces de lua y js son las mismas. Sólo hay una diferencia:
CSLoader corresponde a cc. CSLoader en lua.
El cargador CCS .cs correspondiente en js (se necesitan algunas modificaciones en 2d-js 3.1rc 0).
#include "ui/CocosGUI.h"//Archivos de encabezado relacionados con la interfaz de usuario.
# include " coco studio/coco studio . h "// el archivo de encabezado coco studio . h ya contiene todos los archivos de encabezado que necesita el estudio (excepto CocosGUI), por lo que cuando usamos el estudio, solo usamos Solo inclúyelo si es necesario.
Utilice el espacio de nombres cocos2d//CSLoader se encuentra en el espacio de nombres cocos2d.
Usa el espacio de nombres coco studio::timeline; //Las clases relacionadas con la animación se encuentran en cocostuio::timeline.
void myScene::initFunc()
{
//El siguiente es el código relacionado con la carga:
nodo * raíz node = cs loader::create node("main scene . csb"); //Pase la ruta del recurso de Studio2.x
Esto - gt; addChild(root node); que se mostrará la escena.
//Cargando animación:
acción línea de tiempo * acción = cs loader::create timeline(" escena principal . csb ");
Nodo raíz - gt ;runAction(acción);
//¡Atención! ! ! Los nodos creados a partir del mismo archivo solo pueden usar animaciones creadas a partir del mismo archivo.
//La animación del nodo anidado cargará automáticamente la animación. Puede utilizar Nested Node->GetActionByTag(Nested Node->GetTag()) para obtener la animación.
//Reproducir animación:
Acción - gt; gotoFrameAndPlay(0, 60, true); //Recorrido del fotograma 0 al fotograma 60. Dependiendo del código fuente, existen otras funciones sobrecargadas.
//Monitoreo de eventos de marco
Action-gt; setFrameEventCallFunc(CC_CALLBACK_1(my scene::onFrameEvent, this));
// Con respecto a CC_CALLBACK_1, usted Necesito saber qué está pasando según el C 11. Sólo escríbelo aquí. Si quieres saberlo, puedes consultar std::Bind
//Frame event puede detectar el evento del último fotograma y ha medido 3,6.
//Monitoreo del final de la animación
Action-gt; setLastFrameCallFunc(CC_CALLBACK_0(my scene::final de la animación, esto));
/ / Puede escuchar fotogramas , probado 3.6 pro.
}
anular mi escena::onframeevent(frame * frame)//Formato fijo
{
event frame * evnt = dinámico _ cast lt; EventFrame * gt (marco);
if (!evnt)
return;
STD:: string str = evnt- gt; get event();
if (str == "xxoo ")
{
CCLOG("Vamos bebé");
}
}
void XXX::AnimationEnd()
{
CCLOG("Fin de la animación"); p >
}
Nota:
1. Un codificador que no puede comprender el código fuente no es un buen programador. La gente suele pedir una interfaz API. Puede hacerse una idea revisando los archivos de encabezado y observando los nombres de las interfaces. ¡El código fuente es el documento API con mayor autoridad! ! !
Recursos CSB exportados por Studio versión 2. 2.x debe corresponder estrictamente a 2d-x (consulte aquí para obtener más detalles) (se estima que en el futuro se proporcionará un método de desacoplamiento de 2d-x). )
3.CocosStudio v2.x asume que el directorio de recursos en el editor es la estructura de directorio final del juego, por lo que si modificas el directorio de recursos exportados, debes modificar el directorio del editor. También puedes usar addSearchPath para agregar tu ruta a FileUtils, pero ten cuidado con los conflictos de nombres de archivos.