Configuração do projeto Cocos2d-x
Sistema operacional: este guia foi escrito para o Windows 10, usando o Visual Studio 2015. O Cocos funciona na maioria dos sistemas operacionais e ambientes modernos. As instruções de instalação são semelhantes, mas diferem para cada combinação. Se você estiver compilando para outras plataformas, os arquivos necessários são os mesmos, mas você precisará fazer a configuração do projeto por conta própria. O Visual Studio 2013 tem etapas idênticas, mas as capturas de tela fornecidas aqui serão um pouco diferentes das suas.-
Baixe e instale o Cocos2d-x
- https://www.cocos2d-x.org/download
- Configurar o Cocos2d-x exige alguma familiaridade. Confira o site de documentação deles:
- https://docs.cocos2d-x.org/cocos2d-x/en/en/
- Observe os pré-requisitos do Cocos
- O Visual Studio 2013 ou 2015 também é necessário.
-
Depois de configurar o Cocos2d-x, crie um projeto usando a CLI do Cocos:
- Navegue até o local onde você deseja armazenar seu projeto Cocos
-
Abra uma janela de comando na pasta pai (a CLI do Cocos criará o diretório do projeto propriamente dito)
-
Mantenha a tecla Shift pressionada e clique com o botão direito no espaço em branco da janela do Explorer.

-
Mantenha a tecla Shift pressionada e clique com o botão direito no espaço em branco da janela do Explorer.
-
Na nova janela de console, insira este comando:
cocos new CocosGettingStarted -l cpp- Verifique se o subdiretório de destino (CocosGettingStarted) ainda não existe; este comando falhará se a pasta já existir.
- Se você receber a mensagem “‘cocos’ isn’t recognized as an internal or external command”, a instalação do cocos não foi configurada corretamente (volte ao guia de instalação do Cocos para Windows).
- Em caso de sucesso, haverá uma nova pasta CocosGettingStarted. Este guia se referirá a esse local de diretório como
{CocosGettingStarted}.
- Uma saída bem-sucedida deve ser semelhante ao exemplo abaixo.
-
Baixe o PlayFab Cocos2d-xSdk: SDK de Cocos2D-x (C++). Salve e extraia-o em um local temporário {PlayFabCocos}
- Abra a seguinte pasta no Windows Explorer: {PlayFabCocos}/PlayFabClientSDK
- Abra a seguinte pasta em uma segunda janela do Windows Explorer: {CocosGettingStarted}/Classes
- Copie e cole todos os arquivos de {PlayFabCocos}/PlayFabClientSDK para {CocosGettingStarted}/Classes
-
No Visual Studio, carregue
{CocosGettingStarted}/proj.win32/CocosGettingStarted.sln. - Queremos adicionar os arquivos do PlayFab ao projeto Cocos.
- No Visual Studio, no painel Solution Explorer, expanda até a pasta: Solution/CocosGettingStarted/src
-
Abra uma janela do Windows Explorer em {CocosGettingStarted}/Classes
- Selecione todos os arquivos em {CocosGettingStarted}/Classes, EXCETO AppDelegate.h, AppDelegate.cpp, HelloWorldScene.h e HelloWorldScene.cpp
- Arraste e solte todos esses arquivos do Explorer na pasta Solution/CocosGettingStarted/src do Visual Studio que encontramos acima. Se você tiver problemas, pode arrastar e soltar cada arquivo individualmente, apenas tome cuidado para incluir todos eles.
-
Você verá estes arquivos no seu projeto do VS:

-
Abra a janela Properties do seu projeto CocosGettingStarted (conforme mostrado abaixo).

-
Substitua Additional Include Directories por isto:
$(ProjectDir)..\cocos2d\external\zlib\include;$(ProjectDir)..\cocos2d\external\curl\include\win32;$(EngineRoot)cocos\audio\include;$(EngineRoot)external;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;..\Classes;..;%(AdditionalIncludeDirectories);$(_COCOS_HEADER_WIN32_BEGIN);$(_COCOS_HEADER_WIN32_END);..\cocos2d
Estamos adicionando curl e zlib, que são bibliotecas incluídas no Cocos, mas que não são habilitadas por padrão.
Configurar sua primeira chamada à API
Este guia fornece as etapas mínimas para você fazer sua primeira chamada à API do PlayFab. A confirmação é exibida no aplicativo.- No Visual Studio, dentro da pasta Solution/CocosGettingStarted/src, abra HelloWorldScene.h e substitua o conteúdo por isto:
- No Visual Studio, dentro da pasta Solution/CocosGettingStarted/src, abra
HelloWorldScene.he substitua o conteúdo pelo mostrado abaixo.
- No Visual Studio, dentro da pasta Solution/CocosGettingStarted/src, abra
- Logo ao lado, abra
HelloWorldScene.cppe substitua o conteúdo por isto:
Concluir e executar
- Compile e execute seu projeto Cocos: Dropdowns -> Debug -> Start Debugging.
- Será solicitado que você compile. Selecione Yes.
- Você verá uma tela com a mensagem: Congratulations, you made your first successful API call!
-
Agora você pode começar a fazer outras chamadas à API e a criar seu jogo.
Para obter uma lista de todas as chamadas disponíveis da API de cliente, consulte nossa documentação de Referências de API do PlayFab.
Desconstruir o código
Esta última seção opcional descreve em detalhes cada parte do código-fonte acima.-
HelloWorldScene.h- Este arquivo foi modificado apenas de forma trivial em relação ao
HelloWorldScene.hpadrão gerado pelo Cocos. - Especificamente, ele define parte da GUI do Cocos que estamos usando e os protótipos de
OnLoginSuccesseOnLoginFail. - Todo o resto são funções padrão do motor Cocos.
- Este arquivo foi modificado apenas de forma trivial em relação ao
-
HelloWorldScene.cpp-
createScene()é uma função padrão do motor Cocos. -
init()-
Elementos normais de GUI do Cocos:
closeItemetestReportLabel. -
PlayFab::PlayFabSettings::titleId = "xxxx";- Todo desenvolvedor do PlayFab cria um título no Game Manager. Ao publicar seu jogo, você precisa codificar esse titleId no jogo. Isso permite que o cliente saiba como acessar os dados corretos no PlayFab. Para a maioria dos usuários, basta considerar isso uma etapa obrigatória para que o PlayFab funcione.
-
PlayFab::ClientModels::LoginWithCustomIDRequest request;- A maioria dos métodos da API do PlayFab exige parâmetros de entrada, e esses parâmetros são empacotados em um objeto de requisição.
- Cada método da API exige um objeto de requisição exclusivo, com uma combinação de parâmetros opcionais e obrigatórios.
- Para
LoginWithCustomIDRequest, há um parâmetro obrigatórioCustomId, que identifica um jogador de forma exclusiva, eCreateAccount, que permite a criação de uma nova conta com essa chamada.
- Para
- Para o logon, a maioria dos desenvolvedores vai querer usar um método de logon mais adequado.
- Consulte a documentação de logon do PlayFab para obter uma lista de todos os métodos de logon e parâmetros de entrada. As opções comuns são:
LoginWithAndroidDeviceIDLoginWithIOSDeviceIDLoginWithEmailAddress
- Consulte a documentação de logon do PlayFab para obter uma lista de todos os métodos de logon e parâmetros de entrada. As opções comuns são:
-
PlayFab::PlayFabClientAPI::LoginWithCustomID(request, OnLoginSuccess, OnLoginFail, nullptr);- Isso inicia a requisição assíncrona para
LoginWithCustomIDe invocará a funçãoOnLoginSuccessouOnLoginFailquando for concluída.
- Isso inicia a requisição assíncrona para
-
Elementos normais de GUI do Cocos:
-
update(float delta)- Apenas definir a variável
statusMsgnão atualiza o texto na tela. - Esta função define o texto da GUI para corresponder ao conteúdo de
statusMsga cada tick (o que não é muito eficiente).
- Apenas definir a variável
-
OnLoginSuccess(result, customData)- Quando o callback de sucesso é chamado, o objeto de resultado de muitos callbacks de API conterá as informações solicitadas.
LoginResultcontém algumas informações básicas sobre o jogador, mas, para a maioria dos usuários, o logon é simplesmente uma etapa obrigatória antes de chamar outras APIs.
-
OnLoginFail(error, customData)- Se a função de erro for chamada, sua chamada à API falhou.
- As chamadas à API podem falhar por vários motivos, e você deve sempre tentar tratar a falha.
- Por que as chamadas à API falham (em ordem de probabilidade)
PlayFabSettings.TitleIdnão está definido. Se você se esquecer de definir o titleId para o seu título, nada funcionará.- No Cocos, a biblioteca curl provavelmente simplesmente fará seu jogo travar se você não definir o titleId corretamente.
- Parâmetros da requisição. Se você não tiver fornecido as informações corretas ou obrigatórias para uma determinada chamada à API, ela falhará. Consulte
error.errorMessage,error.errorDetailsouerror.GenerateErrorReport()para obter mais informações. - Problema de conectividade do dispositivo. Celulares perdem e recuperam a conectividade constantemente, portanto qualquer chamada à API pode falhar aleatoriamente a qualquer momento e funcionar logo em seguida. Entrar em um túnel pode desconectar você completamente.
- Problema no servidor do PlayFab. Como em qualquer software, podem ocorrer problemas. Consulte nossas notas de versão para obter atualizações.
- A internet não é 100% confiável. Às vezes, a mensagem é corrompida ou não chega ao servidor do PlayFab.
- Se você estiver com dificuldades para depurar um problema e as informações do callback de erro não forem suficientes, visite nossos fóruns.
-
customData é um ponteiro void, que pode ser usado de qualquer forma para estabelecer contexto.
- Em C++, é mais difícil manter o contexto de uma chamada à API, por isso adicionamos o parâmetro
customData, que pode repassar qualquer objeto ao callback e ser usado como você quiser para estabelecer contexto. - Assim, se você fizer chamadas à API para recuperar o inventário, poderá passar um ponteiro de jogador ou de inventário como
customDatae atualizar o inventário desse objeto no callback.
- Em C++, é mais difícil manter o contexto de uma chamada à API, por isso adicionamos o parâmetro
-
