فهرست منبع

Finish the Godot migration and remove the cocos2d-x version

Moves the Godot project from godot/ to the repository root and deletes
the cocos2d-x sources, platform projects (Android Studio, iOS/macOS,
Linux), prebuilt libraries, CMake setup, build script and the old APK.
The font and sounds were already copied into assets/.

The README now describes the Godot project and the Docker build. The
smoke test ignores Godot's "still in use at exit" report for a sound
playing at quit, which made it fail at random.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Gabriel Capella 5 روز پیش
والد
کامیت
b1babde37e
100فایلهای تغییر یافته به همراه26 افزوده شده و 4377 حذف شده
  1. 0 4
      .cocos-project.json
  2. 1 0
      .dockerignore
  3. 2 26
      .gitignore
  4. 0 0
      .gitmodules
  5. 0 189
      CMakeLists.txt
  6. 0 95
      Classes/AppDelegate.cpp
  7. 0 43
      Classes/AppDelegate.h
  8. 0 125
      Classes/BeginScene.cpp
  9. 0 50
      Classes/BeginScene.h
  10. 0 368
      Classes/GameScene.cpp
  11. 0 197
      Classes/GameScene.h
  12. 0 69
      Classes/GameScene/Ball.cpp
  13. 0 71
      Classes/GameScene/Ball.h
  14. 0 168
      Classes/GameScene/BlocksLayer.cpp
  15. 0 64
      Classes/GameScene/BlocksLayer.h
  16. 0 40
      Classes/GameScene/GameScene.h
  17. 0 150
      Classes/GameScene/Paddle.cpp
  18. 0 94
      Classes/GameScene/Paddle.h
  19. 0 82
      Classes/params.h
  20. 3 1
      Dockerfile
  21. 19 13
      README.md
  22. BIN
      RedCore-API17.apk
  23. BIN
      Resources/fonts/Marker Felt.ttf
  24. BIN
      Resources/fonts/arial.ttf
  25. 0 0
      Resources/res/.gitkeep
  26. BIN
      Resources/res/special.wav
  27. 0 0
      assets/fonts/abel.ttf
  28. 0 0
      assets/fonts/abel.ttf.import
  29. 0 0
      assets/sounds/bomb.wav
  30. 0 0
      assets/sounds/bomb.wav.import
  31. 0 0
      assets/sounds/metal.wav
  32. 0 0
      assets/sounds/metal.wav.import
  33. 0 0
      assets/sounds/pipe.wav
  34. 0 0
      assets/sounds/pipe.wav.import
  35. 0 0
      assets/sounds/win.wav
  36. 0 0
      assets/sounds/win.wav.import
  37. 0 12
      build
  38. 1 1
      export_presets.cfg
  39. 0 2
      godot/.gitignore
  40. BIN
      godot/assets/fonts/abel.ttf
  41. BIN
      godot/assets/sounds/bomb.wav
  42. BIN
      godot/assets/sounds/metal.wav
  43. BIN
      godot/assets/sounds/pipe.wav
  44. BIN
      godot/assets/sounds/win.wav
  45. BIN
      lib/libbullet.a
  46. BIN
      lib/librecast.a
  47. BIN
      lib/libtinyxml2.a
  48. BIN
      lib/libunzip.a
  49. BIN
      lib/libxxhash.a
  50. 0 8
      proj.android-studio/.gitignore
  51. 0 22
      proj.android-studio/.idea/compiler.xml
  52. 0 3
      proj.android-studio/.idea/copyright/profiles_settings.xml
  53. 0 19
      proj.android-studio/.idea/gradle.xml
  54. 0 33
      proj.android-studio/.idea/misc.xml
  55. 0 10
      proj.android-studio/.idea/modules.xml
  56. 0 12
      proj.android-studio/.idea/runConfigurations.xml
  57. 0 2
      proj.android-studio/app/.gitignore
  58. 0 33
      proj.android-studio/app/AndroidManifest.xml
  59. BIN
      proj.android-studio/app/RedCore-release.apk
  60. 0 450
      proj.android-studio/app/RedCore.iml
  61. 0 99
      proj.android-studio/app/build.gradle
  62. 0 4
      proj.android-studio/app/gradle.properties
  63. 0 38
      proj.android-studio/app/jni/Android.mk
  64. 0 16
      proj.android-studio/app/jni/Application.mk
  65. 0 18
      proj.android-studio/app/jni/hellocpp/main.cpp
  66. 0 17
      proj.android-studio/app/proguard-rules.pro
  67. BIN
      proj.android-studio/app/res/drawable-hdpi/ic_launcher.png
  68. BIN
      proj.android-studio/app/res/drawable-ldpi/ic_launcher.png
  69. BIN
      proj.android-studio/app/res/drawable-mdpi/ic_launcher.png
  70. BIN
      proj.android-studio/app/res/drawable-xhdpi/ic_launcher.png
  71. BIN
      proj.android-studio/app/res/drawable-xxhdpi/ic_launcher.png
  72. BIN
      proj.android-studio/app/res/drawable-xxxhdpi/ic_launcher.png
  73. 0 3
      proj.android-studio/app/res/values/strings.xml
  74. 0 29
      proj.android-studio/app/src/org/cocos2dx/cpp/AppActivity.java
  75. BIN
      proj.android-studio/app/web_hi_res_512.png
  76. 0 19
      proj.android-studio/build.gradle
  77. 0 26
      proj.android-studio/gradle.properties
  78. BIN
      proj.android-studio/gradle/wrapper/gradle-wrapper.jar
  79. 0 6
      proj.android-studio/gradle/wrapper/gradle-wrapper.properties
  80. 0 164
      proj.android-studio/gradlew
  81. 0 90
      proj.android-studio/gradlew.bat
  82. 0 19
      proj.android-studio/proj.android-studio.iml
  83. 0 4
      proj.android-studio/settings.gradle
  84. 0 825
      proj.ios_mac/RedCore.xcodeproj/project.pbxproj
  85. 0 7
      proj.ios_mac/RedCore.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  86. 0 37
      proj.ios_mac/RedCore.xcodeproj/project.xcworkspace/xcshareddata/RedCore2.xcscmblueprint
  87. BIN
      proj.ios_mac/RedCore.xcodeproj/project.xcworkspace/xcuserdata/capella.xcuserdatad/UserInterfaceState.xcuserstate
  88. 0 103
      proj.ios_mac/RedCore.xcodeproj/xcuserdata/capella.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  89. 0 91
      proj.ios_mac/RedCore.xcodeproj/xcuserdata/capella.xcuserdatad/xcschemes/RedCore2-desktop.xcscheme
  90. 0 91
      proj.ios_mac/RedCore.xcodeproj/xcuserdata/capella.xcuserdatad/xcschemes/RedCore2-mobile.xcscheme
  91. 0 32
      proj.ios_mac/RedCore.xcodeproj/xcuserdata/capella.xcuserdatad/xcschemes/xcschememanagement.plist
  92. 0 37
      proj.ios_mac/ios/AppController.h
  93. 0 146
      proj.ios_mac/ios/AppController.mm
  94. BIN
      proj.ios_mac/ios/Icon-29.png
  95. BIN
      proj.ios_mac/ios/Icon-29@2x.png
  96. BIN
      proj.ios_mac/ios/Icon-29@3x.png
  97. BIN
      proj.ios_mac/ios/Icon-40.png
  98. BIN
      proj.ios_mac/ios/Icon-40@2x.png
  99. BIN
      proj.ios_mac/ios/Icon-76.png
  100. BIN
      proj.ios_mac/ios/Icon-76@2x.png

+ 0 - 4
.cocos-project.json

@@ -1,4 +0,0 @@
-{
-    "engine_version": "cocos2d-x-3.15.1", 
-    "project_type": "cpp"
-}

+ 1 - 0
godot/.dockerignore → .dockerignore

@@ -1,2 +1,3 @@
+.git/
 .godot/
 build/

+ 2 - 26
.gitignore

@@ -1,26 +1,2 @@
-# Cmake files
-CMakeCache.txt
-CMakeFiles
-Makefile
-cmake_install.cmake
-CMakeLists.txt.user
-
-# Ignore files generated by console
-build/build/
-cocos/scripting/lua-bindings/proj.ios_mac/build/
-tests/*/runtime/
-tests/*/publish/
-tests/*/project/proj.android-studio/app/build.xml
-tests/*/project/proj.android-studio/app/proguard-project.txt
-tests/*/proj.android-studio/app/build.xml
-tests/*/proj.android-studio/app/proguard-project.txt
-
-/templates/*-template-binary/
-/prebuilt/
-/*/build/
-/proj.android-studio/app/build/
-bin/
-/linux-build/
-.DS_Store
-cocos2d/
-.keys/
+.godot/
+build/

+ 0 - 0
.gitmodules


+ 0 - 189
CMakeLists.txt

@@ -1,189 +0,0 @@
-#/****************************************************************************
-# Copyright (c) 2013-2014 cocos2d-x.org
-# Copyright (c) 2015-2017 Chukong Technologies Inc.
-#
-# http://www.cocos2d-x.org
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-# ****************************************************************************/
-cmake_policy(SET CMP0017 NEW)
-
-cmake_minimum_required(VERSION 3.1)
-
-set(APP_NAME MyGame)
-project (${APP_NAME})
-
-set(COCOS2D_ROOT ${CMAKE_SOURCE_DIR}/cocos2d)
-
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${COCOS2D_ROOT}/cmake/Modules/")
-include(CocosBuildHelpers)
-
-
-# Some macro definitions
-if(WINDOWS)
-  if(BUILD_SHARED_LIBS)
-    ADD_DEFINITIONS (-D_USRDLL -D_EXPORT_DLL_ -D_USEGUIDLL -D_USREXDLL -D_USRSTUDIODLL)
-  else()
-    ADD_DEFINITIONS (-DCC_STATIC)
-  endif()
-
-  ADD_DEFINITIONS (-DCOCOS2DXWIN32_EXPORTS -D_WINDOWS -DWIN32 -D_WIN32)
-  set(PLATFORM_FOLDER win32)
-elseif(MACOSX OR APPLE)
-  ADD_DEFINITIONS (-DCC_TARGET_OS_MAC)
-  ADD_DEFINITIONS (-DUSE_FILE32API)
-  set(PLATFORM_FOLDER mac)
-elseif(LINUX)
-  ADD_DEFINITIONS(-DLINUX)
-  set(PLATFORM_FOLDER linux)
-elseif(ANDROID)
-  ADD_DEFINITIONS (-DUSE_FILE32API)
-  set(PLATFORM_FOLDER android)
-else()
-  message( FATAL_ERROR "Unsupported platform, CMake will exit" )
-endif()
-
-
-# Compiler options
-if(MSVC)
-  if(CMAKE_BUILD_TYPE STREQUAL "Debug")
-    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB:msvcrt /NODEFAULTLIB:libcmt")
-  else()
-    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB:libcmt")
-  endif()
-  ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS
-                  -wd4251 -wd4244 -wd4334 -wd4005 -wd4820 -wd4710
-                  -wd4514 -wd4056 -wd4996 -wd4099)
-else()
-  if(CMAKE_BUILD_TYPE MATCHES Debug)
-    ADD_DEFINITIONS(-DCOCOS2D_DEBUG=1)
-  endif()
-  set(CMAKE_C_FLAGS_DEBUG "-g -Wall")
-  set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-deprecated-declarations -Wno-reorder")
-  if(CLANG)
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
-  endif()
-endif(MSVC)
-
-set(PLATFORM_SPECIFIC_SRC)
-set(PLATFORM_SPECIFIC_HEADERS)
-
-if(MACOSX OR APPLE)
-    set(PLATFORM_SPECIFIC_SRC
-      proj.ios_mac/mac/main.cpp
-    )
-elseif(LINUX)
-    set(PLATFORM_SPECIFIC_SRC
-      proj.linux/main.cpp
-    )
-elseif ( WIN32 )
-    set(PLATFORM_SPECIFIC_SRC
-      proj.win32/main.cpp
-    )
-    set(PLATFORM_SPECIFIC_HEADERS
-      proj.win32/main.h
-      proj.win32/resource.h
-    )
-elseif(ANDROID)
-    set(PLATFORM_SPECIFIC_SRC
-      proj.android-studio/app/jni/hellocpp/main.cpp
-    )
-endif()
-
-include_directories(
-  /usr/local/include/GLFW
-  /usr/include/GLFW
-  ${COCOS2D_ROOT}
-  ${COCOS2D_ROOT}/cocos
-  ${COCOS2D_ROOT}/external
-  ${COCOS2D_ROOT}/cocos/platform
-  ${COCOS2D_ROOT}/cocos/audio/include/
-  Classes
-)
-if ( WIN32 )
-  include_directories(
-  ${COCOS2D_ROOT}/external/glfw3/include/win32
-  ${COCOS2D_ROOT}/external/win32-specific/gles/include/OGLES
-)
-endif( WIN32 )
-
-set(GAME_SRC
-  Classes/Ball.cpp
-  Classes/AppDelegate.cpp
-  Classes/BlocksLayer.cpp
-  Classes/GameScene.cpp
-  Classes/HelloWorldScene.cpp
-  ${PLATFORM_SPECIFIC_SRC}
-)
-
-set(GAME_HEADERS
-  Classes/Ball.h
-  Classes/AppDelegate.h
-  Classes/BlocksLayer.h
-  Classes/GameScene.h
-  Classes/HelloWorldScene.h
-  Classes/params.h
-  ${PLATFORM_SPECIFIC_HEADERS}
-)
-
-
-# Configure libcocos2d
-set(BUILD_CPP_EMPTY_TEST OFF CACHE BOOL "turn off build cpp-empty-test")
-set(BUILD_CPP_TESTS OFF CACHE BOOL "turn off build cpp-tests")
-set(BUILD_LUA_LIBS OFF CACHE BOOL "turn off build lua related targets")
-set(BUILD_JS_LIBS OFF CACHE BOOL "turn off build js related targets")
-add_subdirectory(${COCOS2D_ROOT})
-
-
-# MyGame
-if( ANDROID )
-    add_library(${APP_NAME} SHARED ${GAME_SRC} ${GAME_HEADERS})
-    IF(CMAKE_BUILD_TYPE MATCHES RELEASE)
-        ADD_CUSTOM_COMMAND(TARGET ${APP_NAME} POST_BUILD COMMAND ${CMAKE_STRIP} lib${APP_NAME}.so)
-    ENDIF()
-else()
-    add_executable(${APP_NAME} ${GAME_SRC} ${GAME_HEADERS})
-endif()
-
-target_link_libraries(${APP_NAME} cocos2d)
-
-set(APP_BIN_DIR "${CMAKE_BINARY_DIR}/bin")
-
-set_target_properties(${APP_NAME} PROPERTIES
-     RUNTIME_OUTPUT_DIRECTORY  "${APP_BIN_DIR}")
-
-if ( WIN32 )
-  #also copying dlls to binary directory for the executable to run
-  pre_build(${APP_NAME}
-    COMMAND ${CMAKE_COMMAND} -E remove_directory ${APP_BIN_DIR}/Resources
-    COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/Resources ${APP_BIN_DIR}/Resources
-    COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/external/win32-specific/gles/prebuilt/glew32.dll ${APP_BIN_DIR}/${CMAKE_BUILD_TYPE}
-	COMMAND ${CMAKE_COMMAND} -E copy ${COCOS2D_ROOT}/external/win32-specific/zlib/prebuilt/zlib1.dll ${APP_BIN_DIR}/${CMAKE_BUILD_TYPE}
-	)
-elseif( ANDROID )
-
-else()
-  pre_build(${APP_NAME}
-    COMMAND ${CMAKE_COMMAND} -E remove_directory ${APP_BIN_DIR}/Resources
-    COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/Resources ${APP_BIN_DIR}/Resources
-    )
-
-endif()

+ 0 - 95
Classes/AppDelegate.cpp

@@ -1,95 +0,0 @@
-/********************************************************************
- *  Nomes: Gabriel Capella                       Números USP: 8962078 
- *         João Herique Luciano                               8535957
- * 
- *  Tarefa:    RedCore - EP2 MAC0463
- *  Arquivo:   AppDelegate.cpp
- *  Descrição: Classe para inicializar jogo. Padrão da biblioteca.
- ********************************************************************/
-
-#include "AppDelegate.h"
-#include "BeginScene.h"
-#include "audio/include/SimpleAudioEngine.h"
-using namespace CocosDenshion;
-
-USING_NS_CC;
-
-static cocos2d::Size designResolutionSize = cocos2d::Size(1080/2, 1920/2);
-
-AppDelegate::AppDelegate() {
-}
-
-AppDelegate::~AppDelegate()  {
-    SimpleAudioEngine::end();
-}
-
-void AppDelegate::initGLContextAttrs() {
-    // set OpenGL context attributes: red,green,blue,alpha,depth,stencil
-    GLContextAttrs glContextAttrs = {8, 8, 8, 8, 24, 8};
-    GLView::setGLContextAttrs(glContextAttrs);
-}
-
-// if you want to use the package manager to install more packages,  
-// don't modify or remove this function
-static int register_all_packages() {
-    return 0; //flag for packages manager
-}
-
-bool AppDelegate::applicationDidFinishLaunching() {
-    // initialize director
-    auto director = Director::getInstance();
-    auto glview = director->getOpenGLView();
-    if(!glview) {
-
-        // Personaliza para descktop
-        #if (CC_TARGET_PLATFORM == CC_PLATFORM_MAC) || (CC_TARGET_PLATFORM == CC_PLATFORM_LINUX)
-        director->setContentScaleFactor(2);
-        glview = GLViewImpl::createWithRect(
-            "RedCore",
-            cocos2d::Rect(0, 0, designResolutionSize.width, designResolutionSize.height)
-        );
-        #else
-        glview = GLViewImpl::create("RedCore");
-        #endif
-
-        director->setOpenGLView(glview);
-    }
-
-    // turn on display FPS
-    #if DEBUG
-    director->setDisplayStats(true);
-    #endif
-
-    // set FPS. the default value is 1.0/60 if you don't call this
-    director->setAnimationInterval(1.0f / 60);
-
-    // Set the design resolution
-    glview->setDesignResolutionSize(
-        designResolutionSize.width,
-        designResolutionSize.height,
-        ResolutionPolicy::NO_BORDER
-    );
-
-    register_all_packages();
-
-    Scene* scene = BeginScene::createScene();
-    director->runWithScene(scene);
-
-    return true;
-}
-
-/** This function will be called when the app is inactive. Note, when
- * receiving a phone call it is invoked.
- * */
-void AppDelegate::applicationDidEnterBackground() {
-    Director::getInstance()->stopAnimation();
-    SimpleAudioEngine::getInstance()->pauseBackgroundMusic();
-    SimpleAudioEngine::getInstance()->pauseAllEffects();
-}
-
-// this function will be called when the app is active again
-void AppDelegate::applicationWillEnterForeground() {
-    Director::getInstance()->startAnimation();
-    SimpleAudioEngine::getInstance()->resumeBackgroundMusic();
-    SimpleAudioEngine::getInstance()->resumeAllEffects();
-}

+ 0 - 43
Classes/AppDelegate.h

@@ -1,43 +0,0 @@
-/********************************************************************
- *  Nomes: Gabriel Capella                       Números USP: 8962078 
- *         João Herique Luciano                               8535957
- * 
- *  Tarefa:    RedCore - EP2 MAC0463
- *  Arquivo:   AppDelegate.h
- *  Descrição: Classe para inicializar jogo. Padrão da biblioteca.
- ********************************************************************/
-
-#ifndef  _APP_DELEGATE_H_
-#define  _APP_DELEGATE_H_
-
-#include "cocos2d.h"
-
-class  AppDelegate : private cocos2d::Application {
-    public:
-        AppDelegate();
-        virtual ~AppDelegate();
-
-        virtual void initGLContextAttrs();
-
-        /**
-        @brief    Implement Director and Scene init code here.
-        @return true    Initialize success, app continue.
-        @return false   Initialize failed, app terminate.
-        */
-        virtual bool applicationDidFinishLaunching();
-
-        /**
-        @brief  Called when the application moves to the background
-        @param  the pointer of the application
-        */
-        virtual void applicationDidEnterBackground();
-
-        /**
-        @brief  Called when the application reenters the foreground
-        @param  the pointer of the application
-        */
-        virtual void applicationWillEnterForeground();
-};
-
-#endif // _APP_DELEGATE_H_
-

+ 0 - 125
Classes/BeginScene.cpp

@@ -1,125 +0,0 @@
-/********************************************************************
- *  Nomes: Gabriel Capella                       Números USP: 8962078 
- *         João Herique Luciano                               8535957
- * 
- *  Tarefa:    RedCore - EP2 MAC0463
- *  Arquivo:   BeginScene.cpp
- *  Descrição: Classe para tela inicial do jogo.
- ********************************************************************/
-
-#include "BeginScene.h"
-#include "GameScene.h"
-#include "SimpleAudioEngine.h"
-#include "GameScene/Ball.h"
-#include "params.h"
-
-USING_NS_CC;
-
-Scene* BeginScene::createScene() {
-    auto scene = Scene::createWithPhysics();
-    Size visibleSize = Director::getInstance()->getVisibleSize();
-    
-#if DEBUG
-    scene->getPhysicsWorld()->setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL);
-#endif
-    
-    auto layer = BeginScene::create();
-    scene->addChild(layer);
-    
-    auto material = PHYSICSBODY_MATERIAL_DEFAULT;
-    material.density = 1.0f;
-    material.restitution = 1.0f;
-    material.friction = 0.0f;
-    
-    // the edge of the screen
-    auto body = PhysicsBody::createEdgeBox(visibleSize, material);
-    auto edgeNode = Node::create();
-    edgeNode->setPosition(Point(visibleSize.width/2,visibleSize.height/2));
-    body->setDynamic(false);
-    edgeNode->setPhysicsBody(body);
-    scene->addChild(edgeNode);
-    
-    return scene;
-}
-
-bool BeginScene::init() {
-
-    if (!Layer::init()) {
-        return false;
-    }
-    
-    auto visibleSize = Director::getInstance()->getVisibleSize();
-    Vec2 origin = Director::getInstance()->getVisibleOrigin();
-    
-    // Adiona o fundo
-    auto bg = cocos2d::LayerColor::create(COLOR_back);
-    this->addChild(bg);
-    
-    auto menu_item_start = MenuItemFont::create(MSG_START, CC_CALLBACK_0(BeginScene::Play, this));
-    menu_item_start->setFontNameObj(FONT);
-    
-    menu_item_start->setPosition(Point(visibleSize.width / 2, (visibleSize.height*0.25)));
-    
-    auto *menu = Menu::create(menu_item_start, NULL);
-    menu->setPosition(Point(0, 0));
-    this->addChild(menu, 10);
-    
-    for (int i = 0; i < 10; i++) {
-        auto ball = Ball::create();
-        ball->setPosition(visibleSize.width / 2, BALL_SIZE*2);
-        ball->throwBall();
-        this->addChild(ball);
-    }
-    
-    auto core = DrawNode::create();
-    core->drawDot(Vec2(0, 0), CORE_RADIUS*4, Color4F(COLOR_red));
-    core->setPosition(Point(visibleSize.width / 2, (visibleSize.height*0.75)));
-    this->addChild(core);
-    
-    auto physicsBody = PhysicsBody::createCircle(CORE_RADIUS*4, PhysicsMaterial(0.1f, 0.9f, 0.0f));
-    physicsBody->setDynamic(false);
-    core->addComponent(physicsBody);
-    
-    
-    auto text = Label::createWithTTF(MSG_TITLE, FONT, 100);
-    text->setPosition(core->getPosition());
-    this->addChild(text);
-    
-    double last, diff;
-    int level;
-    
-    UserDefault *userdata = UserDefault::getInstance();
-    level = userdata->getIntegerForKey("level");
-    last = userdata->getDoubleForKey("time");
-    unsigned long int sec = time(NULL);
-    diff = 3600 * LOSE_IS + last - sec;
-    
-    while (diff < 0 && level > 0) {
-        last += 3600.0* ((double) LOSE_IS);
-        level--;
-        diff = 3600 * LOSE_IS + last - sec;
-    }
-    
-    userdata->setDoubleForKey("time", last);
-    userdata->setIntegerForKey("level", level);
-    
-    this->level_game = level;
-    
-    char level_text[256];
-    if (level != 0) {
-        sprintf(level_text,MSG_LEVEL_BACK, level, diff/3600.0);
-        
-        auto textlevel = Label::createWithTTF(level_text, FONT, 20);
-        textlevel->setPosition(menu_item_start->getPositionX(), menu_item_start->getPositionY()-60);
-        this->addChild(textlevel);
-    }
-    
-    return true;
-}
-
-void BeginScene::Play() {
-    auto scene = GameScene::createScene(this->level_game);
-    Director::getInstance()->replaceScene(scene);
-}
-
-

+ 0 - 50
Classes/BeginScene.h

@@ -1,50 +0,0 @@
-/********************************************************************
- *  Nomes: Gabriel Capella                       Números USP: 8962078 
- *         João Herique Luciano                               8535957
- * 
- *  Tarefa:    RedCore - EP2 MAC0463
- *  Arquivo:   BeginScene.h
- *  Descrição: Classe para tela inicial do jogo.
- ********************************************************************/
-
-#ifndef __BEGIN_SCENE_H__
-#define __BEGIN_SCENE_H__
-
-#include "cocos2d.h"
-
-class BeginScene: public cocos2d::Layer {
-    public:
-    	/**
-    	 * Inicia tela do jogo.
-    	 * @return um Scene. Veja mais na documentação do cocos2d-x.
-    	 */
-        static cocos2d::Scene* createScene();
-
-        /**
-         * Sobreesvreve o método padrão da classe. Serve para
-         * inicializar a cena.
-         * @return se conseguiu ou não iniciar
-         */
-        virtual bool init();
-
-        /**
-         * Inicia o jogo jogável. Vai para GameScene.
-         */
-        void Play();
-
-        /**
-         * É um macro do cocos2d-x que define a função create do
-         * do classe.
-         * 
-         * @param Classe para qual vai criar.
-         */
-        CREATE_FUNC(BeginScene);
-    private:
-    	/**
-    	 * Armazena qual o nível atual do jogador. Variável usada
-    	 * para fazer regressão de nível.
-    	 */
-        int level_game;
-};
-
-#endif // __BEGIN_SCENE_H__

+ 0 - 368
Classes/GameScene.cpp

@@ -1,368 +0,0 @@
-/********************************************************************
- *  Nomes: Gabriel Capella                       Números USP: 8962078 
- *         João Herique Luciano                               8535957
- * 
- *  Tarefa:    RedCore - EP2 MAC0463
- *  Arquivo:   GameScene.cpp
- *  Descrição: Implementação do cenário e do mecanismo de jogo
- ********************************************************************/
-
-#include "GameScene.h"
-#include "SimpleAudioEngine.h"
-#include "GameScene/BlocksLayer.h"
-#include "GameScene/Ball.h"
-#include "GameScene/Paddle.h"
-#include "params.h"
-
-USING_NS_CC;
-
-Scene* GameScene::createScene(int level) {
-    auto scene = Scene::createWithPhysics();
-    Size visibleSize = Director::getInstance()->getVisibleSize();
-    
-#if DEBUG
-    scene->getPhysicsWorld()->setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL);
-#endif
-    
-    GameScene* layer = GameScene::create();
-    scene->addChild(layer);
-    
-    // parede da tela
-    auto body = PhysicsBody::createEdgeBox(visibleSize, PhysicsMaterial(0.0f, 1.0f, 0.0f));
-    auto edgeNode = Node::create();
-    edgeNode->setPosition(Point(visibleSize.width/2,visibleSize.height/2));
-    body->setDynamic(false);
-    edgeNode->setPhysicsBody(body);
-    scene->addChild(edgeNode);
-    
-    // parede de baixo
-    auto bottom_body = PhysicsBody::createEdgeBox(Size(visibleSize.width, 0));
-    auto bottomNode = Node::create();
-    bottomNode->setPosition(Point(visibleSize.width/2, 0));
-    bottom_body->setDynamic(false);
-    bottomNode->setTag(BOTTOM_TAG);
-    bottom_body->setContactTestBitmask(0xFFFFFFFF);
-    bottomNode->setPhysicsBody(bottom_body);
-    layer->addChild(bottomNode);
-    
-    auto blocks = BlocksLayer::create();
-    blocks->setLevel(level);
-    blocks->setPosition(visibleSize.width/2, visibleSize.height);
-    layer->addChild(blocks, 20);
-    
-    layer->setLevel(level);
-    
-    // inicializa os callbacks dos power ups/downs
-    auto delay_save_level = DelayTime::create(10.0);
-    CallFunc *runCallback_save_level = CallFunc::create(CC_CALLBACK_0(GameScene::saveLevel, layer));
-    auto seq_save_level = Sequence::create(delay_save_level, runCallback_save_level, nullptr);
-    
-    CallFunc *runCallback_triple_balls = CallFunc::create(CC_CALLBACK_0(GameScene::tripleBallsAppearance, layer));
-    CallFunc *runCallback_paddle_ball = CallFunc::create(CC_CALLBACK_0(GameScene::paddleBallAppearance, layer));
-    CallFunc *runCallback_superball = CallFunc::create(CC_CALLBACK_0(GameScene::superBallAppearance, layer));
-    
-    layer->runAction(seq_save_level);
-    layer->runAction(runCallback_triple_balls);
-    layer->runAction(runCallback_paddle_ball);
-    layer->runAction(runCallback_superball);
-    
-    layer->addAndThrowBall();
-    
-    return scene;
-}
-
-bool GameScene::init() {
-    
-    // 1. super init first
-    if ( !Layer::init() ) {
-        return false;
-    }
-    
-    over = false;
-    last_touch = time(NULL);
-    
-    FileUtils::getInstance()->addSearchPath("res");
-    auto audio = CocosDenshion::SimpleAudioEngine::getInstance();
-    audio->preloadEffect("pipe.wav");
-    audio->preloadEffect("metal.wav");
-    audio->preloadEffect("bomb.wav");
-    audio->preloadEffect("win.wav");
-    
-    auto visibleSize = Director::getInstance()->getVisibleSize();
-    width = visibleSize.width;
-    height = visibleSize.height;
-    Vec2 origin = Director::getInstance()->getVisibleOrigin();
-    
-    // Adiciona o fundo
-    auto bg = LayerColor::create(COLOR_back);
-    addChild(bg);
-    
-    paddle = Paddle::create();
-    paddle->setPositionX(width/2);
-    paddle->listen(width);
-    addChild(paddle);
-    
-    // Registra evento de contato de objetos
-    auto contactListener = EventListenerPhysicsContact::create();
-    contactListener->onContactBegin = CC_CALLBACK_1(GameScene::onContactBegin, this);
-    _eventDispatcher->addEventListenerWithSceneGraphPriority(contactListener, this);
-    
-    balls = Node::create();
-    addChild(balls, 21);
-    
-    power_ups = Node::create();
-    addChild(power_ups, 20);
-    
-    return true;
-}
-
-void GameScene::addAndThrowBall() {
-    Ball* ball = Ball::create();
-    while (paddle->getPositionX() == 0.0);
-    ball->setPosition(paddle->getPositionX(), PADDLE_ALTURA+BALL_SIZE+0.1);
-    ball->throwBall();
-    balls->addChild(ball, 21);
-}
-
-bool GameScene::onContactBegin(PhysicsContact& contact) {
-    auto nodeA = contact.getShapeA()->getBody()->getNode();
-    auto nodeB = contact.getShapeB()->getBody()->getNode();
-    
-    if (nodeA && nodeB && nodeA->getTag() != nodeB->getTag() && !over) {
-        
-        if (nodeB->getTag() > nodeA->getTag()) {
-            auto tmp = nodeB;
-            nodeB = nodeA;
-            nodeA = tmp;
-        }
-        
-        if (nodeA->getTag() == BALL_TAG) {
-            last_touch = time(NULL);
-        }
-        
-        // sempre B < A
-        if (nodeB->getTag() == BLOCK_TAG) {
-            auto audio = CocosDenshion::SimpleAudioEngine::getInstance();
-            audio->playEffect("pipe.wav");
-            nodeB->removeFromParentAndCleanup(true);
-        } else if (nodeB->getTag() == INDESTRUCTIBLE_BLOCK_TAG) {
-            if (nodeA->getTag() == BALL_TAG) {
-                Ball* ball = (Ball*) nodeA;
-                if (ball->superball) {
-                    nodeB->removeFromParentAndCleanup(true);
-                    ball->resetNormalball();
-                }
-            }
-            auto audio = CocosDenshion::SimpleAudioEngine::getInstance();
-            audio->playEffect("metal.wav");
-        } else if (nodeB->getTag() == BOTTOM_TAG && nodeA->getTag() == BALL_TAG) {
-            caseBallCollision(nodeA);
-        }  else if (nodeB->getTag() == CORE_TAG && nodeA->getTag() == BALL_TAG) {
-            caseBallCore(nodeB, nodeA);
-        }  else if (nodeB->getTag() == BALL_TAG && nodeA->getTag() == CORE_TAG) {
-            caseBallCore(nodeA, nodeB);
-        }  else if (nodeB->getTag() == SAVE_TAG && nodeA->getTag() == PADDLE_TAG) {
-            caseSaveLevel(nodeB);
-        } else if (nodeB->getTag() == THREE_BALLS_TAG && nodeA->getTag() == PADDLE_TAG) {
-            caseTripleBalls(nodeB);
-        } else if (nodeB->getTag() == SUPERBALL_TAG && nodeA->getTag() == PADDLE_TAG) {
-            caseSuperBall(nodeB);
-        } else if (nodeB->getTag() == PADDLE_BALL_TAG && nodeA->getTag() == PADDLE_TAG) {
-            casePaddleBall(nodeB);
-        } else if (nodeB->getTag() == SAVE_TAG && nodeA->getTag() == BOTTOM_TAG) {
-            nodeB->removeFromParentAndCleanup(true);
-        } else if (nodeB->getTag() == THREE_BALLS_TAG && nodeA->getTag() == BOTTOM_TAG) {
-            nodeB->removeFromParentAndCleanup(true);
-        } else if (nodeB->getTag() == PADDLE_BALL_TAG && nodeA->getTag() == BOTTOM_TAG) {
-            nodeB->removeFromParentAndCleanup(true);
-        } else if (nodeB->getTag() == SUPERBALL_TAG && nodeA->getTag() == BOTTOM_TAG) {
-            nodeB->removeFromParentAndCleanup(true);
-        }
-        
-    }
-    return true;
-}
-
-void GameScene::caseBallCollision (Node *ball) {
-    
-    auto audio = CocosDenshion::SimpleAudioEngine::getInstance();
-    audio->playEffect("bomb.wav");
-    ParticleSun* m_emitter = ParticleSun::create();
-    m_emitter->setPosition(ball->getPosition());
-    m_emitter->setDuration(1);
-    addChild(m_emitter);
-    ball->removeFromParentAndCleanup(true);
-    
-    if (balls->getChildrenCount() == 0) {
-        over = true;
-        removeBallsAndPowersUP ();
-        auto text = Label::createWithTTF(MSG_OVER, FONT, 40);
-        text->setPosition(width/2, height/2);
-        addChild(text);
-        auto menu_item_start = MenuItemFont::create(MSG_RESTART, CC_CALLBACK_0(GameScene::nextLevel, this));
-        menu_item_start->setFontNameObj(FONT);
-        menu_item_start->setPosition(text->getPosition());
-        menu_item_start->setPositionY(menu_item_start->getPositionY()-50);
-        auto *menu = Menu::create(menu_item_start, NULL);
-        menu->setPosition(Point(0, 0));
-        addChild(menu, 30);
-    }
-}
-
-void GameScene::caseBallCore (Node *core, Node *ball) {
-    auto scaleBy = ScaleBy::create(1.0f, 20.0f);
-    core->getPhysicsBody()->setEnabled(false);
-    core->runAction(scaleBy);
-    auto audio = CocosDenshion::SimpleAudioEngine::getInstance();
-    audio->playEffect("win.wav");
-    
-    auto callbackRotate = CallFunc::create([=](){
-        level = level + 1;
-        auto menu_item_start = MenuItemFont::create(MSG_NEXT_LEVEL, CC_CALLBACK_0(GameScene::nextLevel, this));
-        menu_item_start->setFontNameObj(FONT);
-        menu_item_start->setPosition(Point(width / 2, (height / 2)));
-        auto *menu = Menu::create(menu_item_start, NULL);
-        menu->setPosition(Point(0, 0));
-        addChild(menu, 30);
-    });
-    
-    // cria uma sequencia com as ações e callbacks
-    auto seq = Sequence::create(scaleBy, callbackRotate, nullptr);
-    core->runAction(seq);
-    removeBallsAndPowersUP();
-}
-
-void GameScene::caseSaveLevel(Node *powerup_ball) {
-    UserDefault *userdata = UserDefault::getInstance();
-    userdata->setIntegerForKey("level", level);
-    userdata->setDoubleForKey("time", (double) time(NULL));
-    userdata->flush();
-    alert(MSG_LEVEL_SAVED);
-    powerup_ball->removeFromParentAndCleanup(true);
-}
-
-void GameScene::nextLevel() {
-    auto scene = GameScene::createScene(level);
-    Director::getInstance()->replaceScene(scene);
-}
-
-void GameScene::setLevel(int level) {
-    this->level = level;
-    char level_text[256];
-    sprintf(level_text,"Level %d", level);
-    auto text = Label::createWithTTF(level_text, FONT, 30);
-    text->setAnchorPoint(Vec2());
-    text->setPosition(10, 10);
-    addChild(text);
-}
-
-void GameScene::saveLevel() {
-    if (over) return;
-    
-    if (rand_0_1() < DROP_LEVEL_SAVE)
-        createPowerUpBody(COLOR_green, SAVE_TAG);
-
-    delayCallback(CC_CALLBACK_0(GameScene::saveLevel, this));
-}
-
-void GameScene::tripleBallsAppearance() {
-    if (over) return;
-    double delta = (time(NULL)-last_touch);
-    
-    if (rand_0_1() < delta*DROP_TRIPLE_BALL ){
-        last_touch = time(NULL);
-        if (balls->getChildrenCount() < 3)
-            createPowerUpBody(COLOR_pink, THREE_BALLS_TAG);
-    }
-    
-    delayCallback(CC_CALLBACK_0(GameScene::tripleBallsAppearance, this));
-}
-
-void GameScene::caseTripleBalls(Node *powerup_ball) {
-    alert(MSG_TRIPE_BALLS);
-    while (!over && balls->getChildrenCount() < 3)
-        addAndThrowBall();
-    powerup_ball->removeFromParentAndCleanup(true);
-}
-
-void GameScene::paddleBallAppearance() {
-    if (over) return;
-    
-    if (rand_0_1() < DROP_PADDLE_BALL && over == false)
-        createPowerUpBody(COLOR_blue, PADDLE_BALL_TAG);
-    
-    delayCallback(CC_CALLBACK_0(GameScene::paddleBallAppearance, this));
-}
-
-void GameScene::casePaddleBall(Node *powerup_ball) {
-    if (!over) {
-        if (rand_0_1() < 0.5) {
-            alert(MSG_DOUBLE_PADDLE);
-            paddle->doubleSize();
-        } else {
-            alert(MSG_HALF_PADDLE);
-            paddle->halfSize();
-        }
-    }
-    powerup_ball->removeFromParentAndCleanup(true);
-}
-
-void GameScene::alert(std::string text) {
-    if (!over) {
-        auto display_label = Label::createWithTTF(text, FONT, 40);
-        display_label->setPosition(width/2, height/2);
-        addChild(display_label);
-        display_label->runAction(FadeOut::create(3));
-    }
-}
-
-void GameScene::superBallAppearance() {
-    if (over) return;
-    
-    if (rand_0_1() < DROP_SUPER_BALL)
-        createPowerUpBody(COLOR_orange, SUPERBALL_TAG);
-    
-    delayCallback(CC_CALLBACK_0(GameScene::superBallAppearance, this));
-}
-
-void GameScene::caseSuperBall(Node *powerup_ball) {
-    if (over) return;
-    alert(MSG_SUPER_BALL);
-    Vector<Node *>  balls_vector = balls->getChildren();
-    Ball* ball = (Ball*) balls_vector.at(0);
-    ball->setSuperball();
-    powerup_ball->removeFromParentAndCleanup(true);
-}
-
-void GameScene::removeBallsAndPowersUP () {
-    balls->removeAllChildrenWithCleanup(true);
-    power_ups->removeAllChildrenWithCleanup(true);
-    paddle->removeFromParentAndCleanup(true);
-}
-
-void GameScene::createPowerUpBody(Color4B color, int tag) {
-    auto ball_draw = DrawNode::create();
-    ball_draw->drawDot(Vec2(0, 0), BALL_SIZE/3.0, Color4F(color));
-    
-    auto material = PhysicsMaterial(0.0f, 1.0f, 0.0f);
-    auto physicsBody = PhysicsBody::createCircle(BALL_SIZE/3.0, material);
-    physicsBody->setGravityEnable(true);
-    physicsBody->setVelocity(Vec2(0,0));
-    physicsBody->setLinearDamping(0.0);
-    physicsBody->setMass(1.0f);
-    physicsBody->setContactTestBitmask(0xFFFFFFFF);
-    physicsBody->setGroup(-1);
-    ball_draw->addComponent(physicsBody);
-    ball_draw->setTag(tag);
-    
-    ball_draw->setPosition(width * rand_0_1(), height);
-    power_ups->addChild(ball_draw, 20);
-}
-
-void GameScene::delayCallback(const std::function<void ()> &func) {
-    auto delta = POWER_UP_INTERVAL/4.0 * rand_minus1_1();
-    auto delay = DelayTime::create(POWER_UP_INTERVAL+delta);
-    CallFunc *runCallback = CallFunc::create(func);
-    auto seq = Sequence::create(delay, runCallback, nullptr);
-    runAction(seq);
-}

+ 0 - 197
Classes/GameScene.h

@@ -1,197 +0,0 @@
-/********************************************************************
- *  Nomes: Gabriel Capella                       Números USP: 8962078 
- *         João Herique Luciano                               8535957
- * 
- *  Tarefa:    RedCore - EP2 MAC0463
- *  Arquivo:   GameScene.h
- *  Descrição: Classe do cenário e do mecanismo de jogo
- ********************************************************************/
-
-#ifndef GameScene_h
-#define GameScene_h
-
-#include "cocos2d.h"
-#include "GameScene/Paddle.h"
-
-class GameScene : public cocos2d::Layer {
-    public:
-        /**
-         * @brief Cria a cena do jogo
-         * 
-         * @param level - nível atual do jogo
-         * @return - Ponteiro para objeto da cena do jogo
-         */
-        static cocos2d::Scene* createScene(int level);
-
-        /**
-         * @brief Inicializa essa classe
-         *
-         */
-        virtual bool init();
-
-        /**
-         * @brief Processa o contato entre duas formas no jogo
-         * 
-         * @param contact objeto representando o contato entre duas formas no cocos2d
-         * @return Indicador de que houve colisão
-         */
-        bool onContactBegin(cocos2d::PhysicsContact& contact);
-
-        /**
-         * @brief Macro do cocos2d-x para criar um método create() para certa classe
-         * 
-         * @param  Nome da classe cujo método create() será criado
-         */
-        CREATE_FUNC(GameScene);
-
-        /**
-         * @brief configura o jogo para um certo nível
-         * 
-         * @param level nível do jogo
-         */
-        void setLevel(int level);
-
-        /**
-         * @brief Mostra um(a) alerta/mensagem na tela do jogo
-         * 
-         * @param text string contendo a mensagem a ser mostrada
-         */
-        void alert(std::string text); // Mostra alerta
-    private:
-
-        /**
-         * @brief Caso de colisão entre a bola e a parte inferior da tela
-         * 
-         * @param ball Nó representando a bola que colidiu com a parte inferior da tela
-         */
-        void caseBallCollision (cocos2d::Node *ball);
-
-        /**
-         * @brief Caso de colisão entre a bola e o núcleo
-         * 
-         * @param core Nó da árvore que representa o núcleo
-         * @param ball Nó da árvore que representa a bola
-         */
-        void caseBallCore (cocos2d::Node *core, cocos2d::Node *ball);
-
-        /**
-         * @brief Caso onde o usuário pegou o power-up de salvar o nível
-         * 
-         * @param powerup_ball Nó que representa o power-up
-         */
-        void caseSaveLevel(Node *powerup_ball);
-
-        /**
-         * @brief Substitui a cena atual pela cena do próximo nível
-         * 
-         */
-        void nextLevel();
-
-        /**
-         * @brief Salva o nível atual
-         */
-        void saveLevel();
-
-        /**
-         * @brief Define a probabilidade de aparição e a geração do power
-         *        up das bolas triplas
-         */
-        void tripleBallsAppearance();
-
-        /**
-         * @brief Caso onde o usuário pegou o power-up de bolas triplas
-         * 
-         * @param powerup_ball Nó que representa o power-up
-         */
-        void caseTripleBalls(Node *powerup_ball);
-
-        /**
-         * @brief Define a probabilidade de aparição e a geração
-         *        do power up de aumento/diminução da pá
-         */
-        void paddleBallAppearance();
-
-        /**
-         * @brief Caso onde o usuário pegou o power-up de
-         *        aumento/diminuição da pá
-         * 
-         * @param powerup_ball Nó que representa o power-up
-         */
-        void casePaddleBall(Node *powerup_ball);
-
-        /**
-         * @brief Define a probabilidade de aparição e a geração
-         *        do power up da super-bola
-         */ 
-        void superBallAppearance();
-
-        /**
-         * @brief Caso onde o usuário pegou o power-up da super-bola
-         * 
-         * @param powerup_ball Nó que representa o power-up
-         */
-        void caseSuperBall(Node *powerup_ball);
-
-        /**
-         * @brief Adiciona e joga uma nova bola na cena
-         */
-        void addAndThrowBall();
-
-        /**
-         * @brief Remove as bolas e os power-ups que estão na tela
-         */
-        void removeBallsAndPowersUP();
-
-        /**
-         * @brief Cria a bolinha que representa o power-up
-         * 
-         * @param color Cor da bolinha
-         * @param tag identificação da bolinha (usada no tratamento de colisões)
-         */
-        void createPowerUpBody(cocos2d::Color4B color, int tag);
-
-        /**
-         * @brief Cria um delay com callback que será usado na aparição dos
-         *        power-ups
-         * 
-         * @param func função a ser chamada no callback
-         */
-        void delayCallback(const std::function<void ()> &func);
-
-        /**
-         * Nível atual
-         */
-        int level;
-
-        /**
-         * Indica se o jogo já acabou
-         */
-        bool over;
-
-        /**
-         * Ponteiro para a pá do jogo
-         */
-        Paddle * paddle;
-
-        /**
-         * Lista de bolas na cena
-         */
-        cocos2d::Node* balls;
-
-        /**
-         * Lista de power-ups na cena
-         */
-        cocos2d::Node* power_ups;
-
-        /**
-         * Tamanho da tela
-         */
-        double height, width; // tamanho do quadro
-
-        /**
-         * Última vez que a bola colidiu no jogo
-         */
-        unsigned long int last_touch;
-};
-
-#endif /* GameScene_h */

+ 0 - 69
Classes/GameScene/Ball.cpp

@@ -1,69 +0,0 @@
-/********************************************************************
- *  Nomes: Gabriel Capella                       Números USP: 8962078 
- *         João Herique Luciano                               8535957
- * 
- *  Tarefa:    RedCore - EP2 MAC0463
- *  Arquivo:   Ball.cpp
- *  Descrição: Classe para auxiliar na criação da bola no jogo.
- ********************************************************************/ 
-
-#include "Ball.h"
-#include "params.h"
-#include "SimpleAudioEngine.h"
-
-USING_NS_CC;
-
-bool Ball::init() {
-    ball_draw = DrawNode::create();
-    ball_draw->drawDot(Vec2(0, 0), BALL_SIZE, Color4F(COLOR_grey));
-    addChild(ball_draw);
-    
-    superball_draw = DrawNode::create();
-    superball_draw->drawDot(Vec2(0, 0), BALL_SIZE, Color4F(COLOR_orange));
-    addChild(superball_draw);
-    
-    auto material = PHYSICSBODY_MATERIAL_DEFAULT;
-    material.density = 0.0f;
-    material.restitution = 1.005f;
-    material.friction = 0.0f;
-    
-    auto physicsBody = PhysicsBody::createCircle(BALL_SIZE, material);
-    physicsBody->setGravityEnable(false);
-    physicsBody->setVelocity(Vec2(0,0));
-    physicsBody->setLinearDamping(0.0);
-    physicsBody->setMass(1000.0f);
-    
-    addComponent(physicsBody);
-    setTag(BALL_TAG);
-    
-    resetNormalball();
-    
-    return true;
-}
-
-void Ball::throwBall () {
-    float ang = CC_DEGREES_TO_RADIANS(rand_minus1_1() * THROW_ANG);
-    float x = sinf(ang) * INITIAL_SPEED;
-    float y = cosf(ang) * INITIAL_SPEED;
-    this->getPhysicsBody()->setVelocity(Vec2(x, y));
-}
-
-
-void Ball::setSuperball() {
-    superball = true;
-    ball_draw->setVisible(false);
-    superball_draw->setVisible(true);
-}
-
-void Ball::resetNormalball() {
-    superball = false;
-    ball_draw->setVisible(true);
-    superball_draw->setVisible(false);
-}
-
-void Ball::setPosition(float x, float y) {
-    Node::setPosition(x, y);
-    auto physicsBody = getPhysicsBody();
-    physicsBody->setContactTestBitmask(0xFFFFFFFF);
-    physicsBody->setGroup(-5);
-}

+ 0 - 71
Classes/GameScene/Ball.h

@@ -1,71 +0,0 @@
-/********************************************************************
- *  Nomes: Gabriel Capella                       Números USP: 8962078 
- *         João Herique Luciano                               8535957
- * 
- *  Tarefa:    RedCore - EP2 MAC0463
- *  Arquivo:   Ball.h
- *  Descrição: Classe para auxiliar na criação da bola no jogo.
- ********************************************************************/
-
-#ifndef Ball_h
-#define Ball_h
-
-#include "cocos2d.h"
-
-class Ball : public cocos2d::Node {
-    public:
-        /**
-         * Inicia elementos quando a bola é criada.
-         * @return se foi possível criar a bola ou não.
-         */
-        virtual bool init();
-
-        /**
-         * Reescreve a função de posicionar o node.
-         * A bola somente colide após esse método ser chamado.
-         * 
-         * @param x posição da bola no eixo x
-         * @param y posição da bola no eixo y
-         */
-        virtual void setPosition(float x, float y);
-
-        /**
-         * Lança a bola.
-         */
-        void throwBall();
-
-        /**
-         * É um macro do cocos2d-x que define a função create do
-         * do classe.
-         * 
-         * @param Classe para qual vai criar.
-         */
-        CREATE_FUNC(Ball);
-
-        /**
-         * Marca se é uma superbola ou não.
-         */
-        bool superball;
-
-        /**
-         * Transforma em uma super bola.
-         */
-        void setSuperball();
-
-        /**
-         * Transforma a bola em uma bola normar, sem poderes.
-         */
-        void resetNormalball();
-    private:
-        /**
-         * Desenho (imagem) da bola normal.
-         */
-        cocos2d::DrawNode* ball_draw;
-
-        /**
-         * Desenho (imagem) da superbola.
-         */
-        cocos2d::DrawNode* superball_draw;
-};
-
-#endif /* Ball_h */

+ 0 - 168
Classes/GameScene/BlocksLayer.cpp

@@ -1,168 +0,0 @@
-/********************************************************************
- *  Nomes: Gabriel Capella                       Números USP: 8962078 
- *         João Herique Luciano                               8535957
- * 
- *  Tarefa:    RedCore - EP2 MAC0463
- *  Arquivo:   BlocksLayer.cpp
- *  Descrição: Implementação da classe de construção dos blocos
- ********************************************************************/
-
-#include "BlocksLayer.h"
-#include "../params.h"
-
-USING_NS_CC;
-
-void BlocksLayer::setLevel(int level) {
-    auto visibleSize = Director::getInstance()->getVisibleSize();
-    Vec2 center = Vec2(visibleSize.width/2, visibleSize.height/2);
-    int count = 0, i, j;
-    int circles_n;
-    double p_indus = 0;
-    double size = CORE_RADIUS*0.75;
-    int delta = 15;
-    
-    // Codigo feio para gerar fases aleatorias
-    for (i = 0; count <= level; i++) {
-        for (j = 0; count <= level && j <= i; j++) {
-            if (i + 1 > delta) {
-                delta *= 1.5;
-                size /= 1.5;
-                i = 0;
-            }
-            circles_n = i + 1;
-            p_indus = j * 0.05/delta*8.0;
-            count++;
-        }
-    }
-    CCLOG(">> %f", p_indus);
-    this->setPosition(center);
-    
-    for (int i = circles_n - 1; i >= 0; i--) {
-        auto circle = createCircle(size, i, 10, p_indus);
-        this->addChild(circle, 9);
-    }
-    
-    auto physicsBody = PhysicsBody::createCircle(CORE_RADIUS, PhysicsMaterial(0.1f, 1.0f, 0.0f));
-    physicsBody->setGravityEnable(false);
-    physicsBody->setVelocity(Vec2(0,0));
-    physicsBody->setLinearDamping(0);
-    physicsBody->setDynamic(false);
-    physicsBody->setGroup(-1);
-    physicsBody->setContactTestBitmask(0xFFFFFFFF);
-    
-    auto core = DrawNode::create();
-    core->drawDot(Vec2(), CORE_RADIUS, COLOR_red);
-    core->addComponent(physicsBody);
-    core->setTag(CORE_TAG);
-    this->addChild(core, 40);
-    
-}
-
-// on "init" you need to initialize your instance
-bool BlocksLayer::init() {
-    return true;
-}
-
-Node* BlocksLayer::createCircle (double size, int number, int number_of_segments, double p) {
-    auto node = Node::create();
-    double interna = number * size + CORE_RADIUS;
-    double externa = (1 + number) * size + CORE_RADIUS;
-    
-    double* points = new double[number_of_segments+2];
-    
-    for (int i = 0; i < number_of_segments; i++) {
-        points[i] = 2.0*M_PI/number_of_segments * i;
-        points[i] += rand_minus1_1()*0.9*M_PI/number_of_segments;
-    }
-    points[number_of_segments] = points[0] + 2*M_PI;
-    
-    for (int i = 0; i < number_of_segments; i++) {
-        
-        auto seg = createSegment(interna, externa, points[i], points[i+1], p >= rand_0_1());
-        node->addChild(seg);
-    }
-    auto back = DrawNode::create();
-    back->drawDot(Vec2(), interna+2, Color4F(COLOR_back));
-    node->addChild(back, 1);
-    
-    auto rotate = RotateBy::create(1, rand_minus1_1()*30.0);
-    
-    node->runAction(RepeatForever::create(rotate));
-    
-    delete [] points;
-    return node;
-    
-}
-
-Node* BlocksLayer::createSegment (double r_internal, double r_externa, double begin, double end, bool especial) {
-    int i;
-    double sinV, cosV, step;
-    auto draw = DrawNode::create();
-    
-    // borda
-    begin += 1/r_externa;
-    end -= 1/r_externa;
-    
-    int ns_ex_draw; // numeros de segmentos externos do desenho
-    int ns_in_phy; // numeros de segmentos internos da fisica
-    int ns_ex_phy; // numeros de segmentos externos do da fisica
-    
-    ns_ex_draw = (end - begin)*sqrt(r_externa)/1.5;
-    ns_ex_phy = (end - begin)*sqrt(r_externa)/4.0;
-    ns_in_phy = (end - begin)*sqrt(r_internal)/4.0;
-    
-    // Previne segmentos muito errados!
-    if (ns_ex_draw < 2) ns_ex_draw = 2;
-    if (ns_ex_phy < 2) ns_ex_phy = 2;
-    if (ns_in_phy < 2) ns_in_phy = 2;
-    
-    std::vector<Vec2> p_ex_draw(ns_ex_draw+2); // pontos do arco para desenho
-    p_ex_draw[ns_ex_draw+1] = Vec2();
-    
-    std::vector<Vec2> p_physics(ns_in_phy+ns_ex_phy+2); // pontos da fisica
-    
-    
-    step = (end - begin)/(double)ns_ex_draw;
-    for (i = 0; i <= ns_ex_draw; i++) {
-        sinV = sin(begin + step * (double) i) * r_externa;
-        cosV = cos(begin + step * (double) i) * r_externa;
-        p_ex_draw[i] = Vec2 (sinV, cosV);
-    }
-    
-    step = (end - begin)/(double)ns_ex_phy;
-    for (i = 0; i <= ns_ex_phy; i++) {
-        sinV = sin(begin + step * (double) i) * r_externa;
-        cosV = cos(begin + step * (double) i) * r_externa;
-        p_physics[i] = Vec2 (sinV, cosV);
-    }
-    
-    step = (end - begin)/(double)ns_in_phy;
-    for (i = 0; i <= ns_in_phy; i++) {
-        sinV = sin(begin + step * (double) i) * r_internal;
-        cosV = cos(begin + step * (double) i) * r_internal;
-        p_physics[ns_ex_phy - i + 1 + ns_in_phy] = Vec2 (sinV, cosV);
-    }
-    
-    Color4B color;
-    if (!especial)
-        color = Color4B(102*(rand_0_1()/5+0.5), 217*(rand_0_1()/5+0.5), 239*(rand_0_1()/5+0.5), 255);
-    else
-        color = Color4B(COLOR_orange);
-    draw->drawSolidPoly(p_ex_draw.data(), ns_ex_draw + 2, Color4F(color));
-    
-    auto material = PhysicsMaterial(0.0f, 1.0f, 0.0f);
-    auto physicsBody = PhysicsBody::createEdgePolygon(p_physics.data(), ns_in_phy+ns_ex_phy+2, material);
-    physicsBody->setGravityEnable(false);
-    physicsBody->setDynamic(false);
-    physicsBody->setContactTestBitmask(0xFFFFFFFF);
-    physicsBody->setGroup(-1);
-    
-    draw->addComponent(physicsBody);
-    if (!especial)
-        draw->setTag(BLOCK_TAG);
-    else
-        draw->setTag(INDESTRUCTIBLE_BLOCK_TAG);
-    
-    return draw;
-}
-

+ 0 - 64
Classes/GameScene/BlocksLayer.h

@@ -1,64 +0,0 @@
-/********************************************************************
- *  Nomes: Gabriel Capella                       Números USP: 8962078 
- *         João Herique Luciano                               8535957
- * 
- *  Tarefa:    RedCore - EP2 MAC0463
- *  Arquivo:   BlocksLayer.h
- *  Descrição: Classe de construção dos blocos - header
- ********************************************************************/
-
-#ifndef BlocksLayer_h
-#define BlocksLayer_h
-
-#include "cocos2d.h"
-
-class BlocksLayer : public cocos2d::Node {
-    public:
-
-    	/**
-    	 * @brief Inicializa os blocos da fase
-    	 */
-	    virtual bool init();
-
-	    /**
-	     * @brief Configura os blocos de acordo com nível da fase
-	     * 
-	     * @param level - indica o nível da fase a ser criada
-	     */
-	    void setLevel(int level);
-
-	    /**
-	     * @brief Macro do cocos2d-x para criar o método create(), que
-	     *        cria um objeto dessa classe
-	     * 
-	     * @param  Nome da classe à qual o objeto pertence
-	     */
-	    CREATE_FUNC(BlocksLayer);
-
-    private:
-    	/**
-    	 * @brief Cria uma camada de blocos ao redor do núcleo
-    	 * 
-    	 * @param size - espessura
-    	 * @param number - número da camada
-    	 * @param number_of_segments - número de segmentos (blocos) da camada
-    	 * @param p - probabilidade de cada segmento ser indestrutível 
-    	 * @return - nó da camada de blocos
-    	 */
-		Node* createCircle (double size, int number, int number_of_segments, double p);
-
-		/**
-		 * @brief - cria um bloco (segmento da camada)
-		 * 
-		 * @param r_internal - raio do círculo que delimita a parte mais interna da camada
-		 * @param r_externa - raio do círculo que delimita a parte mais externa da camada
-		 * @param begin - onde começa lateralmente o bloco
-		 * @param end - onde termina lateralmente o bloco
-		 * @param especial - indica se o bloco em questão é indestrutível ou não
-		 * @return [description]
-		 */
-	    Node* createSegment (double r_internal, double r_externa, double begin, double end, bool especial);
-};
-
-
-#endif /* BlocksLayer_h */

+ 0 - 40
Classes/GameScene/GameScene.h

@@ -1,40 +0,0 @@
-//
-//  GameScene.h
-//  RedCore
-//
-
-#ifndef GameScene_h
-#define GameScene_h
-
-#include "cocos2d.h"
-
-class GameScene : public cocos2d::Layer {
-    public:
-        static cocos2d::Scene* createScene(int level);
-        virtual bool init();
-        bool onContactBegin(cocos2d::PhysicsContact& contact);
-        CREATE_FUNC(GameScene);
-        void setLevel(int level);
-        void alert(std::string text); // Mostra alerta
-    private:
-        void caseBallCollision (cocos2d::Node *ball);
-        void caseBallCore (cocos2d::Node *core, cocos2d::Node *ball);
-        void caseSaveLevel(Node *powerup_ball);
-        void NextLevel(cocos2d::Ref *pSender);
-        void saveLevel();
-        void tripleBallsAppearance();
-        void caseTripleBalls(Node *powerup_ball);
-        void paddleBallAppearance();
-        void casePaddleBall(Node *powerup_ball);
-        void addAndThrowBall();
-        int level;
-        bool over; // salva se o jogo acabou!
-        cocos2d::DrawNode * paddle;
-        int paddle_size; // tamanho atual da raquete
-        cocos2d::Node* balls; // Bolas
-        double height, width; // tamanho do quadro
-        int last_touch; // ultima vez que a bola colidiu com algo
-};
-
-
-#endif /* GameScene_h */

+ 0 - 150
Classes/GameScene/Paddle.cpp

@@ -1,150 +0,0 @@
-/********************************************************************
- *  Nomes: Gabriel Capella                       Números USP: 8962078 
- *         João Herique Luciano                               8535957
- * 
- *  Tarefa:    RedCore - EP2 MAC0463
- *  Arquivo:   Paddle.cpp
- *  Descrição: Classe para auxiliar na criação da raquete.
- ********************************************************************/
-
-#include "Paddle.h"
-#include "../params.h"
-
-USING_NS_CC;
-
-bool Paddle::init() {
-    // Double size paddle
-    double_paddle = DrawNode::create();
-    float py = PADDLE_HEIGHT/2.0;
-    float pxl = - PADDLE_WIDTH/2;
-    float pxr =  PADDLE_WIDTH/2;
-    double_paddle->drawSegment(Vec2(pxl*2, py), Vec2(pxr*2, py), py, Color4F(COLOR_grey));
-    double_paddle->setPositionY(PADDLE_ALTURA);
-    
-    auto double_size = Size((PADDLE_WIDTH+PADDLE_HEIGHT)*2, PADDLE_HEIGHT);
-    auto doubleBody = PhysicsBody::createBox(double_size, PhysicsMaterial(0.1f, 1.0f, 0.0f));
-    doubleBody->setPositionOffset(Vec2(0, PADDLE_HEIGHT/2));
-    doubleBody->setGravityEnable(false);
-    doubleBody->setDynamic(false);
-    doubleBody->setContactTestBitmask(0xFFFFFFFF);
-    double_paddle->setTag(PADDLE_TAG);
-    double_paddle->addComponent(doubleBody);
-    addChild(double_paddle);
-    
-    // Normal size paddle
-    normal_paddle = DrawNode::create();
-    normal_paddle->drawSegment(Vec2(pxl, py), Vec2(pxr, py), py, Color4F(COLOR_grey));
-    normal_paddle->setPositionY(PADDLE_ALTURA);
-    
-    auto normal_size = Size(PADDLE_WIDTH+PADDLE_HEIGHT, PADDLE_HEIGHT);
-    auto normalBody = PhysicsBody::createBox(normal_size, PhysicsMaterial(0.1f, 1.0f, 0.0f));
-    normalBody->setPositionOffset(Vec2(0, PADDLE_HEIGHT/2));
-    normalBody->setGravityEnable(false);
-    normalBody->setDynamic(false);
-    normalBody->setContactTestBitmask(0xFFFFFFFF);
-    normal_paddle->setTag(PADDLE_TAG);
-    normal_paddle->addComponent(normalBody);
-    addChild(normal_paddle);
-    
-    // Half size paddle
-    half_paddle = DrawNode::create();
-    half_paddle->drawSegment(Vec2(pxl/2.0, py), Vec2(pxr/2.0, py), py, Color4F(COLOR_grey));
-    half_paddle->setPositionY(PADDLE_ALTURA);
-    
-    auto half__size = Size((PADDLE_WIDTH+PADDLE_HEIGHT)/2.0, PADDLE_HEIGHT);
-    auto half_Body = PhysicsBody::createBox(half__size, PhysicsMaterial(0.1f, 1.0f, 0.0f));
-    half_Body->setPositionOffset(Vec2(0, PADDLE_HEIGHT/2));
-    half_Body->setGravityEnable(false);
-    half_Body->setDynamic(false);
-    half_Body->setContactTestBitmask(0xFFFFFFFF);
-    half_paddle->setTag(PADDLE_TAG);
-    half_paddle->addComponent(half_Body);
-    addChild(half_paddle);
-    
-    normalSize();
-    
-    return true;
-}
-
-void Paddle::listen(double width) {
-    
-    // Registra eventos touch
-    auto listener = EventListenerTouchOneByOne::create();
-    
-    // trigger when you push down
-    listener->onTouchBegan = [=](Touch* touch, Event* event){
-        setPX(touch->getLocation().x, width);
-        return true; // if you are consuming it
-    };
-    
-    // trigger when moving touch
-    listener->onTouchMoved = [=](Touch* touch, Event* event){
-        setPX(touch->getLocation().x, width);
-    };
-    
-    // Add listener
-    _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
-    
-}
-
-void Paddle::setPX(double px, double width) {
-    double paddle_x =  PADDLE_WIDTH/2;
-    switch (stade) {
-        case HALF:
-            paddle_x /=  2.0;
-            break;
-        case DOUBLE:
-            paddle_x *=  2.0;
-            break;
-    }
-    if (px >= paddle_x && px < width - paddle_x)
-        this->setPositionX(px);
-}
-
-void Paddle::doubleSize() {
-    if (stade == HALF) {
-        normalSize();
-        return;
-    }
-    stade = DOUBLE;
-    double_paddle->getPhysicsBody()->setEnabled(true);
-    double_paddle->setVisible(true);
-    normal_paddle->getPhysicsBody()->setEnabled(false);
-    normal_paddle->setVisible(false);
-    half_paddle->getPhysicsBody()->setEnabled(false);
-    half_paddle->setVisible(false);
-    startNormalTimer();
-}
-
-void Paddle::halfSize() {
-    if (stade == DOUBLE) {
-        normalSize();
-        return;
-    }
-    stade = HALF;
-    double_paddle->getPhysicsBody()->setEnabled(false);
-    double_paddle->setVisible(false);
-    normal_paddle->getPhysicsBody()->setEnabled(false);
-    normal_paddle->setVisible(false);
-    half_paddle->getPhysicsBody()->setEnabled(true);
-    half_paddle->setVisible(true);
-    startNormalTimer();
-
-}
-
-void Paddle::normalSize() {
-    stade = NORMAL;
-    double_paddle->getPhysicsBody()->setEnabled(false);
-    double_paddle->setVisible(false);
-    normal_paddle->getPhysicsBody()->setEnabled(true);
-    normal_paddle->setVisible(true);
-    half_paddle->getPhysicsBody()->setEnabled(false);
-    half_paddle->setVisible(false);
-}
-
-void Paddle::startNormalTimer() {
-    auto delay = DelayTime::create(POWER_UP_PADDLE_SECONDS);
-    CallFunc *runCallback = CallFunc::create(CC_CALLBACK_0(Paddle::normalSize, this));
-    auto seq = Sequence::create(delay, runCallback, nullptr);
-    runAction(seq);
-}

+ 0 - 94
Classes/GameScene/Paddle.h

@@ -1,94 +0,0 @@
-/********************************************************************
- *  Nomes: Gabriel Capella                       Números USP: 8962078 
- *         João Herique Luciano                               8535957
- * 
- *  Tarefa:    RedCore - EP2 MAC0463
- *  Arquivo:   Paddle.h
- *  Descrição: Classe para auxiliar na criação da raquete.
- ********************************************************************/
-
-#ifndef Paddle_h
-#define Paddle_h
-
-#include "cocos2d.h"
-
-#define HALF 1
-#define NORMAL 2
-#define DOUBLE 3
-
-class Paddle : public cocos2d::Node {
-    public:
-        /**
-         * Inicia elementos quando a raquete é criada.
-         * @return se foi possível criar a raquete ou não.
-         */
-        virtual bool init();
-
-        /**
-         * Duplica o tamanho da raquete.
-         */
-        void doubleSize();
-
-        /**
-         * Divide por dois o tamanho da raquete.
-         */
-        void halfSize();
-
-        /**
-         * Possibilita que esse nó escute eventos provenientes do
-         * touch. 
-         * 
-         * @param width largura da tela
-         */
-        void listen(double width);
-
-        /**
-         * É um macro do cocos2d-x que define a função create do
-         * do classe.
-         * 
-         * @param Classe para qual vai criar.
-         */
-        CREATE_FUNC(Paddle);
-    private:
-        /**
-         * Desenho da raquete grande.
-         */
-        cocos2d::DrawNode* double_paddle;
-
-        /**
-         * Desenho da raquete normal.
-         */
-        cocos2d::DrawNode* normal_paddle;
-
-        /**
-         * Desenho da raquete pequena.
-         */
-        cocos2d::DrawNode* half_paddle;
-
-        /**
-         * Marca qual o tamanho atual da raquete.
-         */
-        int stade;
-
-        /**
-         * Move a raquete
-         * 
-         * @param px posicao para quall ela vai.
-         * @param width largura em pixels da tela
-         */
-        void setPX (double px, double width);
-
-        /**
-         * Transforma uma raquete para seu tamanho norma.
-         */
-        void normalSize();
-
-        /**
-         * Inicia um timer para voltar a raquete para seu tamnho
-         * norma.
-         */
-        void startNormalTimer();
-
-};
-
-#endif /* Paddle_h */

+ 0 - 82
Classes/params.h

@@ -1,82 +0,0 @@
-/********************************************************************
- *  Nomes: Gabriel Capella                       Números USP: 8962078 
- *         João Herique Luciano                               8535957
- * 
- *  Tarefa:    RedCore - EP2 MAC0463
- *  Arquivo:   params.h
- *  Descrição: Definições de parâmetros usados no jogo
- ********************************************************************/
-
-#ifndef params_h
-#define params_h
-
-// BALL
-#define BALL_SIZE 15
-#define THROW_ANG 20 // in degrees
-#define INITIAL_SPEED 500
-
-// TAMANHO DO NUCLEO
-#define CORE_RADIUS 50
-
-// PADDLE
-#define PADDLE_WIDTH 120
-#define PADDLE_HEIGHT 10
-#define PADDLE_ALTURA 90
-
-// CORES
-#define COLOR_back Color4B(39, 40, 34, 255)
-#define COLOR_pink Color4B(249,38,114, 255)
-#define COLOR_blue Color4B(102,217,239, 255)
-#define COLOR_green Color4B(166,226,46, 255)
-#define COLOR_orange Color4B(253,151,31, 255)
-#define COLOR_grey Color4B(120,120,120, 255)
-#define COLOR_red Color4F(0.988, 0.147, 0.030, 1)
-
-// TAGs
-#define BALL_TAG 15
-#define BLOCK_TAG 10
-#define CORE_TAG 11
-#define BOTTOM_TAG 12
-#define INDESTRUCTIBLE_BLOCK_TAG 13
-#define PADDLE_TAG 14
-
-#define THREE_BALLS_TAG 9
-#define SAVE_TAG 8
-#define PADDLE_BALL_TAG 7
-#define SUPERBALL_TAG 6
-
-// Probabilities
-#define DROP_LEVEL_SAVE 0.03
-#define DROP_TRIPLE_BALL 0.06 // Aumenta com o tempo
-#define DROP_PADDLE_BALL 0.05
-#define DROP_SUPER_BALL 0.03
-
-// Power Ups Seconds Interval
-#define POWER_UP_INTERVAL 2.5
-
-// Time to paddle back to normal size
-#define POWER_UP_PADDLE_SECONDS 10
-
-// Hours to lose level
-#define LOSE_IS 12
-
-// FONT
-#define FONT "fonts/abel.ttf"
-
-// TEXT
-#define MSG_TRIPE_BALLS "Triple Balls!"
-#define MSG_LEVEL_SAVED "Level Saved!"
-#define MSG_TITLE "RedCore"
-#define MSG_OVER "Game Over..."
-#define MSG_DOUBLE_PADDLE "Doubled paddle!"
-#define MSG_HALF_PADDLE "Half paddle :("
-#define MSG_LEVEL_BACK "You are at level %d. In %.1f hour(s) you will regrow a level."
-#define MSG_NEXT_LEVEL "Next Level"
-#define MSG_RESTART "Restart"
-#define MSG_SUPER_BALL "Super Ball!"
-#define MSG_START "Start"
-
-// DEBUG
-#define DEBUG 0
-
-#endif /* params_h */

+ 3 - 1
godot/Dockerfile → Dockerfile

@@ -30,10 +30,12 @@ RUN godot --headless --import \
  && godot --headless --export-release "Linux" build/RedCore.x86_64
 
 FROM build AS test
+# Quitting while a sound plays makes Godot report that sound as "still in use at exit";
+# that one shutdown message is ignored, every other error fails the build.
 RUN for scene in title game; do \
       timeout 60 godot --headless --path . res://scenes/$scene.tscn --quit-after 1200 2>&1 | tee -a /tmp/run.log; \
     done \
- && ! grep -E "SCRIPT ERROR|^ERROR" /tmp/run.log
+ && ! grep -E "SCRIPT ERROR|^ERROR" /tmp/run.log | grep -v "resources still in use at exit"
 
 FROM scratch
 COPY --from=build /project/build/ /

+ 19 - 13
README.md

@@ -43,11 +43,16 @@ Alguns detalhes que devem ser mencionados sobre a implementação:
   um bloco indestrutível.
 
 ### Desenvolvimento
-Para o desenvolvimento do jogo, foi utilizada o framework cocos2d-x,
-em C++, e o DoxyDoc (para Sublime Text) para a documentação do código.
-O jogo foi desenvolvido para Android, e testado em um celular Motorola
-G4 com Android 7.0. O cocos2d foi utilizado devido à sua simplicidade
-de programação e entendimento da ferramenta.
+O jogo foi desenvolvido originalmente com o framework cocos2d-x, em C++,
+para Android, e testado em um celular Motorola G4 com Android 7.0.
+
+Hoje o jogo é um projeto Godot 4.7 em GDScript, portado do código
+cocos2d-x mantendo o mesmo comportamento (geração de fases, power-ups,
+efeitos e sons). Para editar, abra o `project.godot` no editor Godot.
+
+- `scenes/`: cenas (título, jogo, bola, pá, power-up, efeito de explosão)
+- `scripts/`: um script por classe do jogo original (`blocks.gd` é o antigo `BlocksLayer`)
+- `assets/`: fonte e sons
 
 ### Fases Aleatórias
 Para deixar o jogo mais legal criamos fases aletórias. São infinitas fases.
@@ -61,18 +66,19 @@ Fases com o a mesma quantidade de camadas são destintas pois a probabilidade
 de blocos indestrutíveis aumenta conforme o jogador chega mais perto da
 última.
 
-### Observações
-NÃO RODA NO EMULADOR! Isso ocorre pelo fato da maioria do jogo ser feito em c++.
-
-
-## Build .apk
-Antes de montar o arquivo você deve configurar o arquivo `proj.android-studio/local.properties` (colocar o local da SDK).
-Para montar o APK do jogo (irá fazer o dowload de aproximadamente 350mb):
+## Build
+O build roda dentro do Docker, com o Godot em modo headless. Antes de
+exportar, ele roda as duas cenas e falha se houver erros de script:
 
 ```
-./build
+docker build --target test -t redcore-build .
+id=$(docker create redcore-build) && docker cp $id:/project/build/RedCore.x86_64 build/ && docker rm $id
+./build/RedCore.x86_64
 ```
 
+Com BuildKit, `docker build --output build .` faz o mesmo em um passo.
+Por enquanto só o export para Linux está configurado.
+
 ### Link para o repositório
 
 https://git.capella.pro/capella/RedCore/

BIN
RedCore-API17.apk


BIN
Resources/fonts/Marker Felt.ttf


BIN
Resources/fonts/arial.ttf


+ 0 - 0
Resources/res/.gitkeep


BIN
Resources/res/special.wav


+ 0 - 0
Resources/fonts/abel.ttf → assets/fonts/abel.ttf


+ 0 - 0
godot/assets/fonts/abel.ttf.import → assets/fonts/abel.ttf.import


+ 0 - 0
Resources/res/bomb.wav → assets/sounds/bomb.wav


+ 0 - 0
godot/assets/sounds/bomb.wav.import → assets/sounds/bomb.wav.import


+ 0 - 0
Resources/res/metal.wav → assets/sounds/metal.wav


+ 0 - 0
godot/assets/sounds/metal.wav.import → assets/sounds/metal.wav.import


+ 0 - 0
Resources/res/pipe.wav → assets/sounds/pipe.wav


+ 0 - 0
godot/assets/sounds/pipe.wav.import → assets/sounds/pipe.wav.import


+ 0 - 0
Resources/res/win.wav → assets/sounds/win.wav


+ 0 - 0
godot/assets/sounds/win.wav.import → assets/sounds/win.wav.import


+ 0 - 12
build

@@ -1,12 +0,0 @@
-#!/bin/sh
-
-if [ ! -d "cocos2d" ]; then
-    wget http://cdn.cocos2d-x.org/cocos2d-x-3.15.1.zip
-    unzip cocos2d-x-3.15.1.zip
-    mv cocos2d-x-3.15.1 cocos2d
-    rm cocos2d-x-3.15.1.zip
-fi
-
-./cocos2d/tools/cocos2d-console/bin/cocos compile -p android --android-studio
-
-cp ./bin/debug/android/RedCore-debug.apk ./RedCore-API17.apk

+ 1 - 1
godot/export_presets.cfg → export_presets.cfg

@@ -7,7 +7,7 @@ dedicated_server=false
 custom_features=""
 export_filter="all_resources"
 include_filter=""
-exclude_filter="Dockerfile, build/*"
+exclude_filter="Dockerfile, build/*, *.md"
 export_path="build/RedCore.x86_64"
 
 [preset.0.options]

+ 0 - 2
godot/.gitignore

@@ -1,2 +0,0 @@
-.godot/
-build/

BIN
godot/assets/fonts/abel.ttf


BIN
godot/assets/sounds/bomb.wav


BIN
godot/assets/sounds/metal.wav


BIN
godot/assets/sounds/pipe.wav


BIN
godot/assets/sounds/win.wav


BIN
lib/libbullet.a


BIN
lib/librecast.a


BIN
lib/libtinyxml2.a


BIN
lib/libunzip.a


BIN
lib/libxxhash.a


+ 0 - 8
proj.android-studio/.gitignore

@@ -1,8 +0,0 @@
-.gradle
-/local.properties
-/.idea/workspace.xml
-/.idea/libraries
-.DS_Store
-/build
-/captures
-/.externalNativeBuild

+ 0 - 22
proj.android-studio/.idea/compiler.xml

@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="CompilerConfiguration">
-    <resourceExtensions />
-    <wildcardResourcePatterns>
-      <entry name="!?*.java" />
-      <entry name="!?*.form" />
-      <entry name="!?*.class" />
-      <entry name="!?*.groovy" />
-      <entry name="!?*.scala" />
-      <entry name="!?*.flex" />
-      <entry name="!?*.kt" />
-      <entry name="!?*.clj" />
-      <entry name="!?*.aj" />
-    </wildcardResourcePatterns>
-    <annotationProcessing>
-      <profile default="true" name="Default" enabled="false">
-        <processorPath useClasspath="true" />
-      </profile>
-    </annotationProcessing>
-  </component>
-</project>

+ 0 - 3
proj.android-studio/.idea/copyright/profiles_settings.xml

@@ -1,3 +0,0 @@
-<component name="CopyrightManager">
-  <settings default="" />
-</component>

+ 0 - 19
proj.android-studio/.idea/gradle.xml

@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="GradleSettings">
-    <option name="linkedExternalProjectsSettings">
-      <GradleProjectSettings>
-        <option name="distributionType" value="DEFAULT_WRAPPED" />
-        <option name="externalProjectPath" value="$PROJECT_DIR$" />
-        <option name="modules">
-          <set>
-            <option value="$PROJECT_DIR$/../cocos2d/cocos/platform/android/libcocos2dx" />
-            <option value="$PROJECT_DIR$" />
-            <option value="$PROJECT_DIR$/app" />
-          </set>
-        </option>
-        <option name="resolveModulePerSourceSet" value="false" />
-      </GradleProjectSettings>
-    </option>
-  </component>
-</project>

+ 0 - 33
proj.android-studio/.idea/misc.xml

@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="NullableNotNullManager">
-    <option name="myDefaultNullable" value="android.support.annotation.Nullable" />
-    <option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
-    <option name="myNullables">
-      <value>
-        <list size="4">
-          <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
-          <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
-          <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
-          <item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
-        </list>
-      </value>
-    </option>
-    <option name="myNotNulls">
-      <value>
-        <list size="4">
-          <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
-          <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
-          <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
-          <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
-        </list>
-      </value>
-    </option>
-  </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
-    <output url="file://$PROJECT_DIR$/build/classes" />
-  </component>
-  <component name="ProjectType">
-    <option name="id" value="Android" />
-  </component>
-</project>

+ 0 - 10
proj.android-studio/.idea/modules.xml

@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ProjectModuleManager">
-    <modules>
-      <module fileurl="file://$PROJECT_DIR$/app/RedCore.iml" filepath="$PROJECT_DIR$/app/RedCore.iml" />
-      <module fileurl="file://$PROJECT_DIR$/../cocos2d/cocos/platform/android/libcocos2dx/libcocos2dx.iml" filepath="$PROJECT_DIR$/../cocos2d/cocos/platform/android/libcocos2dx/libcocos2dx.iml" />
-      <module fileurl="file://$PROJECT_DIR$/proj.android-studio.iml" filepath="$PROJECT_DIR$/proj.android-studio.iml" />
-    </modules>
-  </component>
-</project>

+ 0 - 12
proj.android-studio/.idea/runConfigurations.xml

@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="RunConfigurationProducerService">
-    <option name="ignoredProducers">
-      <set>
-        <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
-        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
-        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
-      </set>
-    </option>
-  </component>
-</project>

+ 0 - 2
proj.android-studio/app/.gitignore

@@ -1,2 +0,0 @@
-/build
-/.externalNativeBuild

+ 0 - 33
proj.android-studio/app/AndroidManifest.xml

@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="ime.capella.jao.redcore"
-    android:installLocation="auto">
-
-    <uses-feature android:glEsVersion="0x00020000" />
-    
-    <application
-        android:label="@string/app_name"
-        android:allowBackup="true"
-        android:icon="@drawable/ic_launcher">
-        
-        <!-- Tell Cocos2dxActivity the name of our .so -->
-        <meta-data android:name="android.app.lib_name"
-                   android:value="MyGame" />
-
-        <activity
-            android:name="org.cocos2dx.cpp.AppActivity"
-            android:screenOrientation="portrait"
-            android:configChanges="orientation|keyboardHidden|screenSize"
-            android:label="@string/app_name"
-            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-    </application>
-
-    <uses-permission android:name="android.permission.INTERNET"/>
-    
-</manifest>

BIN
proj.android-studio/app/RedCore-release.apk


+ 0 - 450
proj.android-studio/app/RedCore.iml

@@ -1,450 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id=":RedCore" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" type="JAVA_MODULE" version="4">
-  <component name="FacetManager">
-    <facet type="android-gradle" name="Android-Gradle">
-      <configuration>
-        <option name="GRADLE_PROJECT_PATH" value=":RedCore" />
-      </configuration>
-    </facet>
-    <facet type="native-android-gradle" name="Native-Android-Gradle">
-      <configuration>
-        <option name="SELECTED_BUILD_VARIANT" value="debug" />
-      </configuration>
-    </facet>
-    <facet type="android" name="Android">
-      <configuration>
-        <option name="SELECTED_BUILD_VARIANT" value="debug" />
-        <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
-        <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
-        <afterSyncTasks>
-          <task>generateDebugSources</task>
-        </afterSyncTasks>
-        <option name="ALLOW_USER_CONFIGURATION" value="false" />
-        <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
-        <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/res" />
-        <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
-      </configuration>
-    </facet>
-  </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
-    <output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" />
-    <exclude-output />
-    <content url="file://$MODULE_DIR$/../../Classes">
-      <sourceFolder url="file://$MODULE_DIR$/../../Classes" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../Classes/GameScene">
-      <sourceFolder url="file://$MODULE_DIR$/../../Classes/GameScene" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../Resources">
-      <sourceFolder url="file://$MODULE_DIR$/../../Resources" type="java-resource" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/2d">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/2d" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/3d">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/3d" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/audio">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/audio" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/audio/android">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/audio/android" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/audio/android/audio_utils">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/audio/android/audio_utils" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/audio/android/jni">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/audio/android/jni" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/audio/android/utils">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/audio/android/utils" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/base">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/base" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/base/allocator">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/base/allocator" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/deprecated">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/deprecated" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocosbuilder">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocosbuilder" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/ActionTimeline">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/ActionTimeline" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/ArmatureNodeReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/ArmatureNodeReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/ButtonReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/ButtonReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/CheckBoxReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/CheckBoxReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/ComAudioReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/ComAudioReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/GameMapReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/GameMapReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/GameNode3DReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/GameNode3DReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/ImageViewReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/ImageViewReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/LayoutReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/LayoutReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/Light3DReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/Light3DReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/ListViewReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/ListViewReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/LoadingBarReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/LoadingBarReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/Node3DReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/Node3DReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/NodeReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/NodeReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/PageViewReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/PageViewReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/Particle3DReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/Particle3DReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/ParticleReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/ParticleReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/ProjectNodeReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/ProjectNodeReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/ScrollViewReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/ScrollViewReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/SingleNodeReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/SingleNodeReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/SkeletonReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/SkeletonReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/SliderReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/SliderReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/Sprite3DReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/Sprite3DReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/SpriteReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/SpriteReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/TabControlReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/TabControlReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/TextAtlasReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/TextAtlasReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/TextBMFontReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/TextBMFontReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/TextFieldReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/TextFieldReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/TextReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/TextReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/UserCameraReader">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/cocostudio/WidgetReader/UserCameraReader" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/spine">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/editor-support/spine" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/math">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/math" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/navmesh">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/navmesh" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/network">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/network" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/physics">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/physics" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/physics3d">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/physics3d" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/platform">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/platform" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/platform/android">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/platform/android" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/platform/android/jni">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/platform/android/jni" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/renderer">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/renderer" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/ui">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/ui" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/ui/UIEditBox">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/ui/UIEditBox" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/cocos/vr">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/cocos/vr" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/extensions/GUI/CCControlExtension">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/extensions/GUI/CCControlExtension" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/extensions/GUI/CCScrollView">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/extensions/GUI/CCScrollView" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/extensions/Particle3D">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/extensions/Particle3D" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/extensions/Particle3D/PU">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/extensions/Particle3D/PU" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/extensions/assets-manager">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/extensions/assets-manager" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/extensions/physics-nodes">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/extensions/physics-nodes" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/Box2D/Collision">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/Box2D/Collision" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/Box2D/Collision/Shapes">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/Box2D/Collision/Shapes" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/Box2D/Common">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/Box2D/Common" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/Box2D/Dynamics">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/Box2D/Dynamics" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/Box2D/Dynamics/Contacts">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/Box2D/Dynamics/Contacts" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/Box2D/Dynamics/Joints">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/Box2D/Dynamics/Joints" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/Box2D/Rope">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/Box2D/Rope" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/ConvertUTF">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/ConvertUTF" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/android-specific/pvmp3dec/src">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/android-specific/pvmp3dec/src" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/android-specific/pvmp3dec/src/asm">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/android-specific/pvmp3dec/src/asm" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/android-specific/tremolo/Tremolo">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/android-specific/tremolo/Tremolo" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletCollision/BroadphaseCollision">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletCollision/BroadphaseCollision" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletCollision/CollisionDispatch">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletCollision/CollisionDispatch" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletCollision/CollisionShapes">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletCollision/CollisionShapes" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletCollision/Gimpact">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletCollision/Gimpact" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletCollision/NarrowPhaseCollision">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletCollision/NarrowPhaseCollision" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletDynamics/Character">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletDynamics/Character" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletDynamics/ConstraintSolver">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletDynamics/ConstraintSolver" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletDynamics/Dynamics">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletDynamics/Dynamics" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletDynamics/Featherstone">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletDynamics/Featherstone" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletDynamics/MLCPSolvers">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletDynamics/MLCPSolvers" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletDynamics/Vehicle">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletDynamics/Vehicle" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletMultiThreaded">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletMultiThreaded" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletMultiThreaded/SpuSampleTask">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/bullet/BulletMultiThreaded/SpuSampleTask" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/bullet/LinearMath">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/bullet/LinearMath" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/bullet/MiniCL">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/bullet/MiniCL" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/bullet/MiniCL/MiniCLTask">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/bullet/MiniCL/MiniCLTask" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/clipper">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/clipper" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/edtaa3func">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/edtaa3func" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/flatbuffers">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/flatbuffers" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/md5">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/md5" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/poly2tri/common">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/poly2tri/common" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/poly2tri/sweep">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/poly2tri/sweep" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/recast/DebugUtils">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/recast/DebugUtils" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/recast/Detour">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/recast/Detour" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/recast/DetourCrowd">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/recast/DetourCrowd" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/recast/DetourTileCache">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/recast/DetourTileCache" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/recast/fastlz">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/recast/fastlz" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/tinyxml2">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/tinyxml2" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/unzip">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/unzip" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$/../../cocos2d/external/xxhash">
-      <sourceFolder url="file://$MODULE_DIR$/../../cocos2d/external/xxhash" isTestSource="false" />
-    </content>
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/jni/hellocpp" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/jni" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/res" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
-      <excludeFolder url="file://$MODULE_DIR$/build/.DS_Store" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/builds" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-classes" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-runtime-classes" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-verifier" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-resources" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-support" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/ndkBuild" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/reload-dex" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/restart-dex" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/split-apk" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
-      <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
-      <excludeFolder url="file://$MODULE_DIR$/build/reports" />
-      <excludeFolder url="file://$MODULE_DIR$/build/tmp" />
-    </content>
-    <content url="file://$USER_HOME$/Library/Android/sdk/ndk-bundle/sources/android/cpufeatures">
-      <sourceFolder url="file://$USER_HOME$/Library/Android/sdk/ndk-bundle/sources/android/cpufeatures" isTestSource="false" />
-    </content>
-    <orderEntry type="jdk" jdkName="Android API 22 Platform" jdkType="Android SDK" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="libcocos2dx" exported="" />
-  </component>
-</module>

+ 0 - 99
proj.android-studio/app/build.gradle

@@ -1,99 +0,0 @@
-import org.apache.tools.ant.taskdefs.condition.Os
-
-apply plugin: 'com.android.application'
-
-android {
-    compileSdkVersion 22
-    buildToolsVersion "25.0.0"
-
-    defaultConfig {
-        applicationId "ime.capella.jao.redcore"
-        minSdkVersion 10
-        targetSdkVersion PROP_TARGET_SDK_VERSION
-        versionCode 1
-        versionName "1.0"
-
-        externalNativeBuild {
-            ndkBuild {
-                if (!project.hasProperty("PROP_NDK_MODE") || PROP_NDK_MODE.compareTo('none') != 0) {
-                    // skip the NDK Build step if PROP_NDK_MODE is none
-                    targets 'MyGame'
-                    arguments 'NDK_TOOLCHAIN_VERSION=4.9'
-                    arguments 'APP_PLATFORM=android-'+PROP_TARGET_SDK_VERSION
-                    
-                    def module_paths = [project.file("../../cocos2d").absolutePath,
-                                        project.file("../../cocos2d/cocos").absolutePath,
-                                        project.file("../../cocos2d/external").absolutePath]
-                    if (Os.isFamily(Os.FAMILY_WINDOWS)) {
-                        // should use '/'
-                        module_paths = module_paths.collect {it.replaceAll('\\\\', '/')}
-                        arguments 'NDK_MODULE_PATH=' + module_paths.join(";")
-                    }
-                    else {
-                        arguments 'NDK_MODULE_PATH=' + module_paths.join(':')
-                    }
-                    
-                    arguments '-j' + Runtime.runtime.availableProcessors()
-                    abiFilters.addAll(PROP_APP_ABI.split(':').collect{it as String})
-                }
-            }
-        }
-    }
-
-    sourceSets.main {
-        java.srcDir "src"
-        res.srcDir "res"
-        manifest.srcFile "AndroidManifest.xml"
-        assets.srcDir "../../Resources"
-    }
-
-    externalNativeBuild {
-        ndkBuild {
-            if (!project.hasProperty("PROP_NDK_MODE") || PROP_NDK_MODE.compareTo('none') != 0) {
-                // skip the NDK Build step if PROP_NDK_MODE is none
-                path "jni/Android.mk"
-            }
-        }
-    }
-
-    signingConfigs {
-
-       release {
-            if (project.hasProperty("RELEASE_STORE_FILE")) {
-                storeFile file(RELEASE_STORE_FILE)
-                storePassword RELEASE_STORE_PASSWORD
-                keyAlias RELEASE_KEY_ALIAS
-                keyPassword RELEASE_KEY_PASSWORD
-            }
-        }
-    }
-
-    buildTypes {
-        release {
-            minifyEnabled false
-            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
-            if (project.hasProperty("RELEASE_STORE_FILE")) {
-                signingConfig signingConfigs.release
-            }
-
-            externalNativeBuild {
-                ndkBuild {
-                    arguments 'NDK_DEBUG=0'
-                }
-            }
-        }
-
-        debug {
-            externalNativeBuild {
-                ndkBuild {
-                    arguments 'NDK_DEBUG=1'
-                }
-            }
-        }
-    }
-}
-
-dependencies {
-    compile fileTree(dir: 'libs', include: ['*.jar'])
-    compile project(':libcocos2dx')
-}

+ 0 - 4
proj.android-studio/app/gradle.properties

@@ -1,4 +0,0 @@
-RELEASE_STORE_FILE=../../.keys/chave-release.jks
-RELEASE_STORE_PASSWORD=gc3cap
-RELEASE_KEY_PASSWORD=gc3cap
-RELEASE_KEY_ALIAS=key0

+ 0 - 38
proj.android-studio/app/jni/Android.mk

@@ -1,38 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d)
-$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/external)
-$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/cocos)
-$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/cocos/audio/include)
-
-LOCAL_MODULE := MyGame_shared
-
-LOCAL_MODULE_FILENAME := libMyGame
-
-LOCAL_SRC_FILES := hellocpp/main.cpp \
-					../../../Classes/AppDelegate.cpp \
-					../../../Classes/BeginScene.cpp \
-					../../../Classes/GameScene/Ball.cpp \
-					../../../Classes/GameScene/BlocksLayer.cpp \
-					../../../Classes/GameScene/Paddle.cpp \
-					../../../Classes/GameScene.cpp
-
-LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../Classes
-
-# _COCOS_HEADER_ANDROID_BEGIN
-# _COCOS_HEADER_ANDROID_END
-
-
-LOCAL_STATIC_LIBRARIES := cocos2dx_static
-
-# _COCOS_LIB_ANDROID_BEGIN
-# _COCOS_LIB_ANDROID_END
-
-include $(BUILD_SHARED_LIBRARY)
-
-$(call import-module,.)
-
-# _COCOS_LIB_IMPORT_ANDROID_BEGIN
-# _COCOS_LIB_IMPORT_ANDROID_END

+ 0 - 16
proj.android-studio/app/jni/Application.mk

@@ -1,16 +0,0 @@
-APP_STL := gnustl_static
-
-APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -std=c++11 -fsigned-char
-APP_LDFLAGS := -latomic
-
-APP_ABI := armeabi
-APP_SHORT_COMMANDS := true
-
-
-ifeq ($(NDK_DEBUG),1)
-  APP_CPPFLAGS += -DCOCOS2D_DEBUG=1
-  APP_OPTIM := debug
-else
-  APP_CPPFLAGS += -DNDEBUG
-  APP_OPTIM := release
-endif

+ 0 - 18
proj.android-studio/app/jni/hellocpp/main.cpp

@@ -1,18 +0,0 @@
-#include <memory>
-
-#include <android/log.h>
-#include <jni.h>
-
-#include "AppDelegate.h"
-
-#define  LOG_TAG    "main"
-#define  LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
-
-namespace {
-std::unique_ptr<AppDelegate> appDelegate;
-}
-
-void cocos_android_app_init(JNIEnv* env) {
-    LOGD("cocos_android_app_init");
-    appDelegate.reset(new AppDelegate());
-}

+ 0 - 17
proj.android-studio/app/proguard-rules.pro

@@ -1,17 +0,0 @@
-# Add project specific ProGuard rules here.
-# By default, the flags in this file are appended to flags specified
-# in E:\developSoftware\Android\SDK/tools/proguard/proguard-android.txt
-# You can edit the include path and order by changing the proguardFiles
-# directive in build.gradle.
-#
-# For more details, see
-#   http://developer.android.com/guide/developing/tools/proguard.html
-
-# Add any project specific keep options here:
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-#   public *;
-#}

BIN
proj.android-studio/app/res/drawable-hdpi/ic_launcher.png


BIN
proj.android-studio/app/res/drawable-ldpi/ic_launcher.png


BIN
proj.android-studio/app/res/drawable-mdpi/ic_launcher.png


BIN
proj.android-studio/app/res/drawable-xhdpi/ic_launcher.png


BIN
proj.android-studio/app/res/drawable-xxhdpi/ic_launcher.png


BIN
proj.android-studio/app/res/drawable-xxxhdpi/ic_launcher.png


+ 0 - 3
proj.android-studio/app/res/values/strings.xml

@@ -1,3 +0,0 @@
-<resources>
-    <string name="app_name">RedCore</string>
-</resources>

+ 0 - 29
proj.android-studio/app/src/org/cocos2dx/cpp/AppActivity.java

@@ -1,29 +0,0 @@
-/****************************************************************************
-Copyright (c) 2015-2017 Chukong Technologies Inc.
- 
-http://www.cocos2d-x.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-****************************************************************************/
-package org.cocos2dx.cpp;
-
-import org.cocos2dx.lib.Cocos2dxActivity;
-
-public class AppActivity extends Cocos2dxActivity {
-}

BIN
proj.android-studio/app/web_hi_res_512.png


+ 0 - 19
proj.android-studio/build.gradle

@@ -1,19 +0,0 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
-
-buildscript {
-    repositories {
-        jcenter()
-    }
-    dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.0'
-
-        // NOTE: Do not place your application dependencies here; they belong
-        // in the individual module build.gradle files
-    }
-}
-
-allprojects {
-    repositories {
-        jcenter()
-    }
-}

+ 0 - 26
proj.android-studio/gradle.properties

@@ -1,26 +0,0 @@
-# Project-wide Gradle settings.
-
-# IDE (e.g. Android Studio) users:
-# Gradle settings configured through the IDE *will override*
-# any settings specified in this file.
-
-# For more details on how to configure your build environment visit
-# http://www.gradle.org/docs/current/userguide/build_environment.html
-
-# Specifies the JVM arguments used for the daemon process.
-# The setting is particularly useful for tweaking memory settings.
-# Default value: -Xmx10248m -XX:MaxPermSize=256m
-# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
-
-# When configured, Gradle will run in incubating parallel mode.
-# This option should only be used with decoupled projects. More details, visit
-# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
-# org.gradle.parallel=true
-PROP_TARGET_SDK_VERSION=17
-PROP_APP_ABI=armeabi
-
-# uncomment it and fill in sign information for release mode
-#RELEASE_STORE_FILE=file path of keystore
-#RELEASE_STORE_PASSWORD=password of keystore
-#RELEASE_KEY_ALIAS=alias of key
-#RELEASE_KEY_PASSWORD=password of key

BIN
proj.android-studio/gradle/wrapper/gradle-wrapper.jar


+ 0 - 6
proj.android-studio/gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +0,0 @@
-#Tue Mar 14 17:40:59 CST 2017
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

+ 0 - 164
proj.android-studio/gradlew

@@ -1,164 +0,0 @@
-#!/usr/bin/env bash
-
-##############################################################################
-##
-##  Gradle start up script for UN*X
-##
-##############################################################################
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
-    echo "$*"
-}
-
-die ( ) {
-    echo
-    echo "$*"
-    echo
-    exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
-  CYGWIN* )
-    cygwin=true
-    ;;
-  Darwin* )
-    darwin=true
-    ;;
-  MINGW* )
-    msys=true
-    ;;
-esac
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched.
-if $cygwin ; then
-    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-fi
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-        PRG="$link"
-    else
-        PRG=`dirname "$PRG"`"/$link"
-    fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >&-
-APP_HOME="`pwd -P`"
-cd "$SAVED" >&-
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-        # IBM's JDK on AIX uses strange locations for the executables
-        JAVACMD="$JAVA_HOME/jre/sh/java"
-    else
-        JAVACMD="$JAVA_HOME/bin/java"
-    fi
-    if [ ! -x "$JAVACMD" ] ; then
-        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-    fi
-else
-    JAVACMD="java"
-    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
-    MAX_FD_LIMIT=`ulimit -H -n`
-    if [ $? -eq 0 ] ; then
-        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
-            MAX_FD="$MAX_FD_LIMIT"
-        fi
-        ulimit -n $MAX_FD
-        if [ $? -ne 0 ] ; then
-            warn "Could not set maximum file descriptor limit: $MAX_FD"
-        fi
-    else
-        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
-    fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
-    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
-    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
-    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
-    # We build the pattern for arguments to be converted via cygpath
-    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
-    SEP=""
-    for dir in $ROOTDIRSRAW ; do
-        ROOTDIRS="$ROOTDIRS$SEP$dir"
-        SEP="|"
-    done
-    OURCYGPATTERN="(^($ROOTDIRS))"
-    # Add a user-defined pattern to the cygpath arguments
-    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
-        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
-    fi
-    # Now convert the arguments - kludge to limit ourselves to /bin/sh
-    i=0
-    for arg in "$@" ; do
-        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
-        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
-
-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
-            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
-        else
-            eval `echo args$i`="\"$arg\""
-        fi
-        i=$((i+1))
-    done
-    case $i in
-        (0) set -- ;;
-        (1) set -- "$args0" ;;
-        (2) set -- "$args0" "$args1" ;;
-        (3) set -- "$args0" "$args1" "$args2" ;;
-        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
-        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
-        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
-        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
-        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
-        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
-    esac
-fi
-
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
-    JVM_OPTS=("$@")
-}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
-
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"

+ 0 - 90
proj.android-studio/gradlew.bat

@@ -1,90 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem  Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windowz variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega

+ 0 - 19
proj.android-studio/proj.android-studio.iml

@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id="proj.android-studio" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" type="JAVA_MODULE" version="4">
-  <component name="FacetManager">
-    <facet type="java-gradle" name="Java-Gradle">
-      <configuration>
-        <option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
-        <option name="BUILDABLE" value="false" />
-      </configuration>
-    </facet>
-  </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="true">
-    <exclude-output />
-    <content url="file://$MODULE_DIR$">
-      <excludeFolder url="file://$MODULE_DIR$/.gradle" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-  </component>
-</module>

+ 0 - 4
proj.android-studio/settings.gradle

@@ -1,4 +0,0 @@
-include ':libcocos2dx'
-project(':libcocos2dx').projectDir = new File(settingsDir, '../cocos2d/cocos/platform/android/libcocos2dx')
-include ':RedCore'
-project(':RedCore').projectDir = new File(settingsDir, 'app')

+ 0 - 825
proj.ios_mac/RedCore.xcodeproj/project.pbxproj

@@ -1,825 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 46;
-	objects = {
-
-/* Begin PBXBuildFile section */
-		1AC6FB21180E996B004C840B /* libcocos2d Mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AC6FAF9180E9839004C840B /* libcocos2d Mac.a */; };
-		1AC6FB30180E99EB004C840B /* libcocos2d iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AC6FB07180E9839004C840B /* libcocos2d iOS.a */; };
-		1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
-		1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
-		288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; };
-		294D0D641D0D56D500F7F5D4 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 294D0D631D0D56D500F7F5D4 /* CoreText.framework */; };
-		3EACC98F19EE6D4300EB3C5E /* res in Resources */ = {isa = PBXBuildFile; fileRef = 3EACC98E19EE6D4300EB3C5E /* res */; };
-		3EACC99019EE6D4300EB3C5E /* res in Resources */ = {isa = PBXBuildFile; fileRef = 3EACC98E19EE6D4300EB3C5E /* res */; };
-		503AE0F817EB97AB00D1A890 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 503AE0F617EB97AB00D1A890 /* Icon.icns */; };
-		503AE10017EB989F00D1A890 /* AppController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FB17EB989F00D1A890 /* AppController.mm */; };
-		503AE10117EB989F00D1A890 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FC17EB989F00D1A890 /* main.m */; };
-		503AE10217EB989F00D1A890 /* RootViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FF17EB989F00D1A890 /* RootViewController.mm */; };
-		503AE10517EB98FF00D1A890 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 503AE10317EB98FF00D1A890 /* main.cpp */; };
-		503AE11B17EB9C5A00D1A890 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 503AE11A17EB9C5A00D1A890 /* IOKit.framework */; };
-		5087E76317EB910900C73F5D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
-		5087E76717EB910900C73F5D /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; };
-		5087E76817EB910900C73F5D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; };
-		5087E76917EB910900C73F5D /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; };
-		5087E76A17EB910900C73F5D /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; };
-		5087E76B17EB910900C73F5D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; };
-		5087E77D17EB970100C73F5D /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77217EB970100C73F5D /* Default-568h@2x.png */; };
-		5087E77E17EB970100C73F5D /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77317EB970100C73F5D /* Default.png */; };
-		5087E77F17EB970100C73F5D /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77417EB970100C73F5D /* Default@2x.png */; };
-		5087E78017EB970100C73F5D /* Icon-114.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77517EB970100C73F5D /* Icon-114.png */; };
-		5087E78117EB970100C73F5D /* Icon-120.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77617EB970100C73F5D /* Icon-120.png */; };
-		5087E78217EB970100C73F5D /* Icon-144.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77717EB970100C73F5D /* Icon-144.png */; };
-		5087E78317EB970100C73F5D /* Icon-152.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77817EB970100C73F5D /* Icon-152.png */; };
-		5087E78417EB970100C73F5D /* Icon-57.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77917EB970100C73F5D /* Icon-57.png */; };
-		5087E78517EB970100C73F5D /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77A17EB970100C73F5D /* Icon-72.png */; };
-		5087E78617EB970100C73F5D /* Icon-76.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77B17EB970100C73F5D /* Icon-76.png */; };
-		5087E78917EB974C00C73F5D /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78817EB974C00C73F5D /* AppKit.framework */; };
-		5087E78B17EB975400C73F5D /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78A17EB975400C73F5D /* OpenGL.framework */; };
-		50EF629617ECD46A001EB2F8 /* Icon-40.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629217ECD46A001EB2F8 /* Icon-40.png */; };
-		50EF629717ECD46A001EB2F8 /* Icon-58.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629317ECD46A001EB2F8 /* Icon-58.png */; };
-		50EF629817ECD46A001EB2F8 /* Icon-80.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629417ECD46A001EB2F8 /* Icon-80.png */; };
-		50EF629917ECD46A001EB2F8 /* Icon-100.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629517ECD46A001EB2F8 /* Icon-100.png */; };
-		50EF62A217ECD613001EB2F8 /* Icon-29.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A017ECD613001EB2F8 /* Icon-29.png */; };
-		50EF62A317ECD613001EB2F8 /* Icon-50.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A117ECD613001EB2F8 /* Icon-50.png */; };
-		521A8E6419F0C34300D177D7 /* Default-667h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 521A8E6219F0C34300D177D7 /* Default-667h@2x.png */; };
-		521A8E6519F0C34300D177D7 /* Default-736h@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 521A8E6319F0C34300D177D7 /* Default-736h@3x.png */; };
-		521A8EA919F11F5000D177D7 /* fonts in Resources */ = {isa = PBXBuildFile; fileRef = 521A8EA819F11F5000D177D7 /* fonts */; };
-		521A8EAA19F11F5000D177D7 /* fonts in Resources */ = {isa = PBXBuildFile; fileRef = 521A8EA819F11F5000D177D7 /* fonts */; };
-		52B47A471A53D09C004E4C60 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52B47A461A53D09B004E4C60 /* Security.framework */; };
-		8262943E1AAF051F00CB7CF7 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8262943D1AAF051F00CB7CF7 /* Security.framework */; };
-		9A0C87E41EEC7F8E00C16D03 /* GameScene in Resources */ = {isa = PBXBuildFile; fileRef = 9A0C87E31EEC7F8E00C16D03 /* GameScene */; };
-		9AD1A7BF1EEC8E6800423D30 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD1A7B71EEC8E6800423D30 /* AppDelegate.cpp */; };
-		9AD1A7C01EEC8E6800423D30 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD1A7B71EEC8E6800423D30 /* AppDelegate.cpp */; };
-		9AD1A7C11EEC8E6800423D30 /* BeginScene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD1A7B91EEC8E6800423D30 /* BeginScene.cpp */; };
-		9AD1A7C21EEC8E6800423D30 /* BeginScene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD1A7B91EEC8E6800423D30 /* BeginScene.cpp */; };
-		9AD1A7C51EEC8E6800423D30 /* GameScene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD1A7BC1EEC8E6800423D30 /* GameScene.cpp */; };
-		9AD1A7C61EEC8E6800423D30 /* GameScene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD1A7BC1EEC8E6800423D30 /* GameScene.cpp */; };
-		9AD1A7DC1EEC912100423D30 /* Ball.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD1A7D51EEC912100423D30 /* Ball.cpp */; };
-		9AD1A7DD1EEC912100423D30 /* Ball.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD1A7D51EEC912100423D30 /* Ball.cpp */; };
-		9AD1A7DE1EEC912100423D30 /* BlocksLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD1A7D71EEC912100423D30 /* BlocksLayer.cpp */; };
-		9AD1A7DF1EEC912100423D30 /* BlocksLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD1A7D71EEC912100423D30 /* BlocksLayer.cpp */; };
-		9AD1A7E01EEC912100423D30 /* Paddle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD1A7DA1EEC912100423D30 /* Paddle.cpp */; };
-		9AD1A7E11EEC912100423D30 /* Paddle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD1A7DA1EEC912100423D30 /* Paddle.cpp */; };
-		BF171245129291EC00B8313A /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB012928DE900B8313A /* OpenGLES.framework */; };
-		BF1712471292920000B8313A /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; };
-		BF1C47F01293687400B63C5D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; };
-		D44C620C132DFF330009C878 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; };
-		D44C620E132DFF430009C878 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; };
-		D44C6210132DFF4E0009C878 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; };
-		D6B0611B1803AB670077942B /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6B0611A1803AB670077942B /* CoreMotion.framework */; };
-		ED545A7C1B68A1F400C3958E /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = ED545A7B1B68A1F400C3958E /* libiconv.dylib */; };
-		ED545A7E1B68A1FA00C3958E /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = ED545A7D1B68A1FA00C3958E /* libiconv.dylib */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
-		1AC6FAF8180E9839004C840B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = 1551A33F158F2AB200E66CFE;
-			remoteInfo = "cocos2dx Mac";
-		};
-		1AC6FB06180E9839004C840B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = A07A4D641783777C0073F6A7;
-			remoteInfo = "cocos2dx iOS";
-		};
-		1AC6FB15180E9959004C840B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */;
-			proxyType = 1;
-			remoteGlobalIDString = 1551A33E158F2AB200E66CFE;
-			remoteInfo = "cocos2dx Mac";
-		};
-		1AC6FB24180E99E1004C840B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */;
-			proxyType = 1;
-			remoteGlobalIDString = A07A4C241783777C0073F6A7;
-			remoteInfo = "cocos2dx iOS";
-		};
-		9A2901171EDF94A00057BEAA /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = 507B40FD1C31BDD30067B53E;
-			remoteInfo = "libcocos2d tvOS";
-		};
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
-		1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = cocos2d_libs.xcodeproj; path = ../cocos2d/build/cocos2d_libs.xcodeproj; sourceTree = "<group>"; };
-		1ACB3243164770DE00914215 /* libcurl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcurl.a; path = ../../cocos2dx/platform/third_party/ios/libraries/libcurl.a; sourceTree = "<group>"; };
-		1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
-		1D6058910D05DD3D006BFB54 /* RedCore-mobile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "RedCore-mobile.app"; sourceTree = BUILT_PRODUCTS_DIR; };
-		1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
-		288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
-		294D0D631D0D56D500F7F5D4 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/CoreText.framework; sourceTree = DEVELOPER_DIR; };
-		3EACC98E19EE6D4300EB3C5E /* res */ = {isa = PBXFileReference; lastKnownFileType = folder; path = res; sourceTree = "<group>"; };
-		503AE0F617EB97AB00D1A890 /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Icon.icns; sourceTree = "<group>"; };
-		503AE0F717EB97AB00D1A890 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		503AE0FA17EB989F00D1A890 /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppController.h; path = ios/AppController.h; sourceTree = SOURCE_ROOT; };
-		503AE0FB17EB989F00D1A890 /* AppController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppController.mm; path = ios/AppController.mm; sourceTree = SOURCE_ROOT; };
-		503AE0FC17EB989F00D1A890 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ios/main.m; sourceTree = SOURCE_ROOT; };
-		503AE0FD17EB989F00D1A890 /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Prefix.pch; path = ios/Prefix.pch; sourceTree = SOURCE_ROOT; };
-		503AE0FE17EB989F00D1A890 /* RootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RootViewController.h; path = ios/RootViewController.h; sourceTree = SOURCE_ROOT; };
-		503AE0FF17EB989F00D1A890 /* RootViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = RootViewController.mm; path = ios/RootViewController.mm; sourceTree = SOURCE_ROOT; };
-		503AE10317EB98FF00D1A890 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = mac/main.cpp; sourceTree = "<group>"; };
-		503AE10417EB98FF00D1A890 /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Prefix.pch; path = mac/Prefix.pch; sourceTree = "<group>"; };
-		503AE11117EB99EE00D1A890 /* libcurl.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcurl.dylib; path = usr/lib/libcurl.dylib; sourceTree = SDKROOT; };
-		503AE11A17EB9C5A00D1A890 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; };
-		5087E76F17EB910900C73F5D /* RedCore-desktop.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "RedCore-desktop.app"; sourceTree = BUILT_PRODUCTS_DIR; };
-		5087E77217EB970100C73F5D /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
-		5087E77317EB970100C73F5D /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
-		5087E77417EB970100C73F5D /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = "<group>"; };
-		5087E77517EB970100C73F5D /* Icon-114.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-114.png"; sourceTree = "<group>"; };
-		5087E77617EB970100C73F5D /* Icon-120.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-120.png"; sourceTree = "<group>"; };
-		5087E77717EB970100C73F5D /* Icon-144.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-144.png"; sourceTree = "<group>"; };
-		5087E77817EB970100C73F5D /* Icon-152.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-152.png"; sourceTree = "<group>"; };
-		5087E77917EB970100C73F5D /* Icon-57.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-57.png"; sourceTree = "<group>"; };
-		5087E77A17EB970100C73F5D /* Icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-72.png"; sourceTree = "<group>"; };
-		5087E77B17EB970100C73F5D /* Icon-76.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-76.png"; sourceTree = "<group>"; };
-		5087E77C17EB970100C73F5D /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		5087E78817EB974C00C73F5D /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
-		5087E78A17EB975400C73F5D /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
-		50EF629217ECD46A001EB2F8 /* Icon-40.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-40.png"; sourceTree = "<group>"; };
-		50EF629317ECD46A001EB2F8 /* Icon-58.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-58.png"; sourceTree = "<group>"; };
-		50EF629417ECD46A001EB2F8 /* Icon-80.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-80.png"; sourceTree = "<group>"; };
-		50EF629517ECD46A001EB2F8 /* Icon-100.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-100.png"; sourceTree = "<group>"; };
-		50EF62A017ECD613001EB2F8 /* Icon-29.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-29.png"; sourceTree = "<group>"; };
-		50EF62A117ECD613001EB2F8 /* Icon-50.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-50.png"; sourceTree = "<group>"; };
-		521A8E6219F0C34300D177D7 /* Default-667h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-667h@2x.png"; sourceTree = "<group>"; };
-		521A8E6319F0C34300D177D7 /* Default-736h@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-736h@3x.png"; sourceTree = "<group>"; };
-		521A8EA819F11F5000D177D7 /* fonts */ = {isa = PBXFileReference; lastKnownFileType = folder; path = fonts; sourceTree = "<group>"; };
-		52B47A461A53D09B004E4C60 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; };
-		8262943D1AAF051F00CB7CF7 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
-		9A0C87E31EEC7F8E00C16D03 /* GameScene */ = {isa = PBXFileReference; lastKnownFileType = folder; name = GameScene; path = "/Users/gabrielcapella/Dropbox/Graduação/USP-BCC/MAC0463/EP2/RedCore/Classes/GameScene"; sourceTree = "<absolute>"; };
-		9AD1A7B71EEC8E6800423D30 /* AppDelegate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AppDelegate.cpp; path = ../Classes/AppDelegate.cpp; sourceTree = "<group>"; };
-		9AD1A7B81EEC8E6800423D30 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = ../Classes/AppDelegate.h; sourceTree = "<group>"; };
-		9AD1A7B91EEC8E6800423D30 /* BeginScene.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BeginScene.cpp; path = ../Classes/BeginScene.cpp; sourceTree = "<group>"; };
-		9AD1A7BA1EEC8E6800423D30 /* BeginScene.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BeginScene.h; path = ../Classes/BeginScene.h; sourceTree = "<group>"; };
-		9AD1A7BC1EEC8E6800423D30 /* GameScene.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GameScene.cpp; path = ../Classes/GameScene.cpp; sourceTree = "<group>"; };
-		9AD1A7BD1EEC8E6800423D30 /* GameScene.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GameScene.h; path = ../Classes/GameScene.h; sourceTree = "<group>"; };
-		9AD1A7BE1EEC8E6800423D30 /* params.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = params.h; path = ../Classes/params.h; sourceTree = "<group>"; };
-		9AD1A7D51EEC912100423D30 /* Ball.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Ball.cpp; path = ../Classes/GameScene/Ball.cpp; sourceTree = "<group>"; };
-		9AD1A7D61EEC912100423D30 /* Ball.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Ball.h; path = ../Classes/GameScene/Ball.h; sourceTree = "<group>"; };
-		9AD1A7D71EEC912100423D30 /* BlocksLayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BlocksLayer.cpp; path = ../Classes/GameScene/BlocksLayer.cpp; sourceTree = "<group>"; };
-		9AD1A7D81EEC912100423D30 /* BlocksLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BlocksLayer.h; path = ../Classes/GameScene/BlocksLayer.h; sourceTree = "<group>"; };
-		9AD1A7DA1EEC912100423D30 /* Paddle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Paddle.cpp; path = ../Classes/GameScene/Paddle.cpp; sourceTree = "<group>"; };
-		9AD1A7DB1EEC912100423D30 /* Paddle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Paddle.h; path = ../Classes/GameScene/Paddle.h; sourceTree = "<group>"; };
-		BF170DB012928DE900B8313A /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
-		BF170DB412928DE900B8313A /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
-		BF1C47EA1293683800B63C5D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
-		D44C620B132DFF330009C878 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
-		D44C620D132DFF430009C878 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
-		D44C620F132DFF4E0009C878 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
-		D6B0611A1803AB670077942B /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/CoreMotion.framework; sourceTree = DEVELOPER_DIR; };
-		ED545A7B1B68A1F400C3958E /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.4.sdk/usr/lib/libiconv.dylib; sourceTree = DEVELOPER_DIR; };
-		ED545A7D1B68A1FA00C3958E /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = usr/lib/libiconv.dylib; sourceTree = SDKROOT; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
-		1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				294D0D641D0D56D500F7F5D4 /* CoreText.framework in Frameworks */,
-				ED545A7C1B68A1F400C3958E /* libiconv.dylib in Frameworks */,
-				52B47A471A53D09C004E4C60 /* Security.framework in Frameworks */,
-				1AC6FB30180E99EB004C840B /* libcocos2d iOS.a in Frameworks */,
-				D6B0611B1803AB670077942B /* CoreMotion.framework in Frameworks */,
-				1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
-				1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
-				288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */,
-				BF171245129291EC00B8313A /* OpenGLES.framework in Frameworks */,
-				BF1712471292920000B8313A /* libz.dylib in Frameworks */,
-				BF1C47F01293687400B63C5D /* QuartzCore.framework in Frameworks */,
-				D44C620C132DFF330009C878 /* OpenAL.framework in Frameworks */,
-				D44C620E132DFF430009C878 /* AVFoundation.framework in Frameworks */,
-				D44C6210132DFF4E0009C878 /* AudioToolbox.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		5087E75C17EB910900C73F5D /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				ED545A7E1B68A1FA00C3958E /* libiconv.dylib in Frameworks */,
-				1AC6FB21180E996B004C840B /* libcocos2d Mac.a in Frameworks */,
-				5087E76717EB910900C73F5D /* libz.dylib in Frameworks */,
-				8262943E1AAF051F00CB7CF7 /* Security.framework in Frameworks */,
-				503AE11B17EB9C5A00D1A890 /* IOKit.framework in Frameworks */,
-				5087E78B17EB975400C73F5D /* OpenGL.framework in Frameworks */,
-				5087E78917EB974C00C73F5D /* AppKit.framework in Frameworks */,
-				5087E76317EB910900C73F5D /* Foundation.framework in Frameworks */,
-				5087E76817EB910900C73F5D /* QuartzCore.framework in Frameworks */,
-				5087E76917EB910900C73F5D /* OpenAL.framework in Frameworks */,
-				5087E76A17EB910900C73F5D /* AVFoundation.framework in Frameworks */,
-				5087E76B17EB910900C73F5D /* AudioToolbox.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
-		080E96DDFE201D6D7F000001 /* ios */ = {
-			isa = PBXGroup;
-			children = (
-				5087E77117EB970100C73F5D /* Icons */,
-				503AE0FA17EB989F00D1A890 /* AppController.h */,
-				503AE0FB17EB989F00D1A890 /* AppController.mm */,
-				503AE0FC17EB989F00D1A890 /* main.m */,
-				503AE0FD17EB989F00D1A890 /* Prefix.pch */,
-				503AE0FE17EB989F00D1A890 /* RootViewController.h */,
-				503AE0FF17EB989F00D1A890 /* RootViewController.mm */,
-			);
-			name = ios;
-			path = Classes;
-			sourceTree = "<group>";
-		};
-		19C28FACFE9D520D11CA2CBB /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				1D6058910D05DD3D006BFB54 /* RedCore-mobile.app */,
-				5087E76F17EB910900C73F5D /* RedCore-desktop.app */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		1AC6FAE6180E9839004C840B /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				1AC6FAF9180E9839004C840B /* libcocos2d Mac.a */,
-				1AC6FB07180E9839004C840B /* libcocos2d iOS.a */,
-				9A2901181EDF94A00057BEAA /* libcocos2d tvOS.a */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
-			isa = PBXGroup;
-			children = (
-				9AD1A7B61EEC8E5800423D30 /* Classes */,
-				46880B7519C43A67006E1F66 /* Resources */,
-				1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */,
-				29B97323FDCFA39411CA2CEA /* Frameworks */,
-				080E96DDFE201D6D7F000001 /* ios */,
-				503AE10617EB990700D1A890 /* mac */,
-				19C28FACFE9D520D11CA2CBB /* Products */,
-			);
-			name = CustomTemplate;
-			sourceTree = "<group>";
-		};
-		29B97323FDCFA39411CA2CEA /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				294D0D631D0D56D500F7F5D4 /* CoreText.framework */,
-				ED545A7D1B68A1FA00C3958E /* libiconv.dylib */,
-				ED545A7B1B68A1F400C3958E /* libiconv.dylib */,
-				8262943D1AAF051F00CB7CF7 /* Security.framework */,
-				52B47A461A53D09B004E4C60 /* Security.framework */,
-				D6B0611A1803AB670077942B /* CoreMotion.framework */,
-				503AE11A17EB9C5A00D1A890 /* IOKit.framework */,
-				503AE11117EB99EE00D1A890 /* libcurl.dylib */,
-				5087E78A17EB975400C73F5D /* OpenGL.framework */,
-				5087E78817EB974C00C73F5D /* AppKit.framework */,
-				1ACB3243164770DE00914215 /* libcurl.a */,
-				BF170DB412928DE900B8313A /* libz.dylib */,
-				D44C620F132DFF4E0009C878 /* AudioToolbox.framework */,
-				D44C620D132DFF430009C878 /* AVFoundation.framework */,
-				288765A40DF7441C002DB57D /* CoreGraphics.framework */,
-				1D30AB110D05D00D00671497 /* Foundation.framework */,
-				D44C620B132DFF330009C878 /* OpenAL.framework */,
-				BF170DB012928DE900B8313A /* OpenGLES.framework */,
-				BF1C47EA1293683800B63C5D /* QuartzCore.framework */,
-				1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
-			);
-			name = Frameworks;
-			sourceTree = "<group>";
-		};
-		46880B7519C43A67006E1F66 /* Resources */ = {
-			isa = PBXGroup;
-			children = (
-				521A8EA819F11F5000D177D7 /* fonts */,
-				3EACC98E19EE6D4300EB3C5E /* res */,
-			);
-			name = Resources;
-			path = ../Resources;
-			sourceTree = "<group>";
-		};
-		503AE0F517EB97AB00D1A890 /* Icons */ = {
-			isa = PBXGroup;
-			children = (
-				503AE0F617EB97AB00D1A890 /* Icon.icns */,
-				503AE0F717EB97AB00D1A890 /* Info.plist */,
-			);
-			name = Icons;
-			path = mac;
-			sourceTree = SOURCE_ROOT;
-		};
-		503AE10617EB990700D1A890 /* mac */ = {
-			isa = PBXGroup;
-			children = (
-				503AE0F517EB97AB00D1A890 /* Icons */,
-				503AE10317EB98FF00D1A890 /* main.cpp */,
-				503AE10417EB98FF00D1A890 /* Prefix.pch */,
-			);
-			name = mac;
-			sourceTree = "<group>";
-		};
-		5087E77117EB970100C73F5D /* Icons */ = {
-			isa = PBXGroup;
-			children = (
-				521A8E6219F0C34300D177D7 /* Default-667h@2x.png */,
-				521A8E6319F0C34300D177D7 /* Default-736h@3x.png */,
-				5087E77217EB970100C73F5D /* Default-568h@2x.png */,
-				5087E77317EB970100C73F5D /* Default.png */,
-				5087E77417EB970100C73F5D /* Default@2x.png */,
-				50EF62A017ECD613001EB2F8 /* Icon-29.png */,
-				50EF62A117ECD613001EB2F8 /* Icon-50.png */,
-				50EF629217ECD46A001EB2F8 /* Icon-40.png */,
-				50EF629317ECD46A001EB2F8 /* Icon-58.png */,
-				50EF629417ECD46A001EB2F8 /* Icon-80.png */,
-				50EF629517ECD46A001EB2F8 /* Icon-100.png */,
-				5087E77517EB970100C73F5D /* Icon-114.png */,
-				5087E77617EB970100C73F5D /* Icon-120.png */,
-				5087E77717EB970100C73F5D /* Icon-144.png */,
-				5087E77817EB970100C73F5D /* Icon-152.png */,
-				5087E77917EB970100C73F5D /* Icon-57.png */,
-				5087E77A17EB970100C73F5D /* Icon-72.png */,
-				5087E77B17EB970100C73F5D /* Icon-76.png */,
-				5087E77C17EB970100C73F5D /* Info.plist */,
-			);
-			name = Icons;
-			path = ios;
-			sourceTree = SOURCE_ROOT;
-		};
-		9AD1A7B61EEC8E5800423D30 /* Classes */ = {
-			isa = PBXGroup;
-			children = (
-				9AD1A7D41EEC911000423D30 /* GameScene */,
-				9AD1A7BE1EEC8E6800423D30 /* params.h */,
-				9AD1A7BA1EEC8E6800423D30 /* BeginScene.h */,
-				9AD1A7B91EEC8E6800423D30 /* BeginScene.cpp */,
-				9AD1A7BD1EEC8E6800423D30 /* GameScene.h */,
-				9AD1A7BC1EEC8E6800423D30 /* GameScene.cpp */,
-				9AD1A7B81EEC8E6800423D30 /* AppDelegate.h */,
-				9AD1A7B71EEC8E6800423D30 /* AppDelegate.cpp */,
-			);
-			name = Classes;
-			sourceTree = "<group>";
-		};
-		9AD1A7D41EEC911000423D30 /* GameScene */ = {
-			isa = PBXGroup;
-			children = (
-				9AD1A7D51EEC912100423D30 /* Ball.cpp */,
-				9AD1A7D61EEC912100423D30 /* Ball.h */,
-				9AD1A7D71EEC912100423D30 /* BlocksLayer.cpp */,
-				9AD1A7D81EEC912100423D30 /* BlocksLayer.h */,
-				9AD1A7DA1EEC912100423D30 /* Paddle.cpp */,
-				9AD1A7DB1EEC912100423D30 /* Paddle.h */,
-			);
-			name = GameScene;
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
-		1D6058900D05DD3D006BFB54 /* RedCore-mobile */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "RedCore-mobile" */;
-			buildPhases = (
-				1D60588D0D05DD3D006BFB54 /* Resources */,
-				1D60588E0D05DD3D006BFB54 /* Sources */,
-				1D60588F0D05DD3D006BFB54 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				1AC6FB25180E99E1004C840B /* PBXTargetDependency */,
-			);
-			name = "RedCore-mobile";
-			productName = iphone;
-			productReference = 1D6058910D05DD3D006BFB54 /* RedCore-mobile.app */;
-			productType = "com.apple.product-type.application";
-		};
-		5087E73D17EB910900C73F5D /* RedCore-desktop */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 5087E76C17EB910900C73F5D /* Build configuration list for PBXNativeTarget "RedCore-desktop" */;
-			buildPhases = (
-				5087E74817EB910900C73F5D /* Resources */,
-				5087E75617EB910900C73F5D /* Sources */,
-				5087E75C17EB910900C73F5D /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				1AC6FB16180E9959004C840B /* PBXTargetDependency */,
-			);
-			name = "RedCore-desktop";
-			productName = iphone;
-			productReference = 5087E76F17EB910900C73F5D /* RedCore-desktop.app */;
-			productType = "com.apple.product-type.application";
-		};
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
-		29B97313FDCFA39411CA2CEA /* Project object */ = {
-			isa = PBXProject;
-			attributes = {
-				LastUpgradeCheck = 0820;
-			};
-			buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "RedCore" */;
-			compatibilityVersion = "Xcode 3.2";
-			developmentRegion = English;
-			hasScannedForEncodings = 1;
-			knownRegions = (
-				English,
-				Japanese,
-				French,
-				German,
-			);
-			mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
-			projectDirPath = "";
-			projectReferences = (
-				{
-					ProductGroup = 1AC6FAE6180E9839004C840B /* Products */;
-					ProjectRef = 1AC6FAE5180E9839004C840B /* cocos2d_libs.xcodeproj */;
-				},
-			);
-			projectRoot = "";
-			targets = (
-				1D6058900D05DD3D006BFB54 /* RedCore-mobile */,
-				5087E73D17EB910900C73F5D /* RedCore-desktop */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXReferenceProxy section */
-		1AC6FAF9180E9839004C840B /* libcocos2d Mac.a */ = {
-			isa = PBXReferenceProxy;
-			fileType = archive.ar;
-			path = "libcocos2d Mac.a";
-			remoteRef = 1AC6FAF8180E9839004C840B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		1AC6FB07180E9839004C840B /* libcocos2d iOS.a */ = {
-			isa = PBXReferenceProxy;
-			fileType = archive.ar;
-			path = "libcocos2d iOS.a";
-			remoteRef = 1AC6FB06180E9839004C840B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		9A2901181EDF94A00057BEAA /* libcocos2d tvOS.a */ = {
-			isa = PBXReferenceProxy;
-			fileType = archive.ar;
-			path = "libcocos2d tvOS.a";
-			remoteRef = 9A2901171EDF94A00057BEAA /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-/* End PBXReferenceProxy section */
-
-/* Begin PBXResourcesBuildPhase section */
-		1D60588D0D05DD3D006BFB54 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				5087E78117EB970100C73F5D /* Icon-120.png in Resources */,
-				5087E78617EB970100C73F5D /* Icon-76.png in Resources */,
-				5087E77F17EB970100C73F5D /* Default@2x.png in Resources */,
-				50EF629917ECD46A001EB2F8 /* Icon-100.png in Resources */,
-				5087E78317EB970100C73F5D /* Icon-152.png in Resources */,
-				5087E77D17EB970100C73F5D /* Default-568h@2x.png in Resources */,
-				5087E78517EB970100C73F5D /* Icon-72.png in Resources */,
-				521A8E6519F0C34300D177D7 /* Default-736h@3x.png in Resources */,
-				521A8EA919F11F5000D177D7 /* fonts in Resources */,
-				50EF62A317ECD613001EB2F8 /* Icon-50.png in Resources */,
-				5087E78017EB970100C73F5D /* Icon-114.png in Resources */,
-				50EF62A217ECD613001EB2F8 /* Icon-29.png in Resources */,
-				50EF629617ECD46A001EB2F8 /* Icon-40.png in Resources */,
-				5087E78217EB970100C73F5D /* Icon-144.png in Resources */,
-				3EACC98F19EE6D4300EB3C5E /* res in Resources */,
-				9A0C87E41EEC7F8E00C16D03 /* GameScene in Resources */,
-				50EF629817ECD46A001EB2F8 /* Icon-80.png in Resources */,
-				5087E78417EB970100C73F5D /* Icon-57.png in Resources */,
-				5087E77E17EB970100C73F5D /* Default.png in Resources */,
-				521A8E6419F0C34300D177D7 /* Default-667h@2x.png in Resources */,
-				50EF629717ECD46A001EB2F8 /* Icon-58.png in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		5087E74817EB910900C73F5D /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				503AE0F817EB97AB00D1A890 /* Icon.icns in Resources */,
-				3EACC99019EE6D4300EB3C5E /* res in Resources */,
-				521A8EAA19F11F5000D177D7 /* fonts in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
-		1D60588E0D05DD3D006BFB54 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				9AD1A7C51EEC8E6800423D30 /* GameScene.cpp in Sources */,
-				9AD1A7BF1EEC8E6800423D30 /* AppDelegate.cpp in Sources */,
-				503AE10017EB989F00D1A890 /* AppController.mm in Sources */,
-				9AD1A7DE1EEC912100423D30 /* BlocksLayer.cpp in Sources */,
-				9AD1A7E01EEC912100423D30 /* Paddle.cpp in Sources */,
-				9AD1A7C11EEC8E6800423D30 /* BeginScene.cpp in Sources */,
-				503AE10217EB989F00D1A890 /* RootViewController.mm in Sources */,
-				503AE10117EB989F00D1A890 /* main.m in Sources */,
-				9AD1A7DC1EEC912100423D30 /* Ball.cpp in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		5087E75617EB910900C73F5D /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				9AD1A7C21EEC8E6800423D30 /* BeginScene.cpp in Sources */,
-				9AD1A7C01EEC8E6800423D30 /* AppDelegate.cpp in Sources */,
-				9AD1A7C61EEC8E6800423D30 /* GameScene.cpp in Sources */,
-				503AE10517EB98FF00D1A890 /* main.cpp in Sources */,
-				9AD1A7DD1EEC912100423D30 /* Ball.cpp in Sources */,
-				9AD1A7DF1EEC912100423D30 /* BlocksLayer.cpp in Sources */,
-				9AD1A7E11EEC912100423D30 /* Paddle.cpp in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
-		1AC6FB16180E9959004C840B /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			name = "cocos2dx Mac";
-			targetProxy = 1AC6FB15180E9959004C840B /* PBXContainerItemProxy */;
-		};
-		1AC6FB25180E99E1004C840B /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			name = "cocos2dx iOS";
-			targetProxy = 1AC6FB24180E99E1004C840B /* PBXContainerItemProxy */;
-		};
-/* End PBXTargetDependency section */
-
-/* Begin XCBuildConfiguration section */
-		1D6058940D05DD3E006BFB54 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = YES;
-				CODE_SIGN_IDENTITY = "iPhone Developer";
-				COMPRESS_PNG_FILES = NO;
-				ENABLE_BITCODE = NO;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = ios/Prefix.pch;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					USE_FILE32API,
-					"COCOS2D_DEBUG=1",
-					"CC_ENABLE_CHIPMUNK_INTEGRATION=1",
-				);
-				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
-				HEADER_SEARCH_PATHS = "$(inherited)";
-				INFOPLIST_FILE = ios/Info.plist;
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				LIBRARY_SEARCH_PATHS = "";
-				OTHER_LDFLAGS = (
-					"$(_COCOS_LIB_IOS_BEGIN)",
-					"$(_COCOS_LIB_IOS_END)",
-				);
-				PRODUCT_BUNDLE_IDENTIFIER = ime.capella.jao.redcore;
-				PRODUCT_NAME = "RedCore-mobile";
-				SDKROOT = iphoneos;
-				STRIP_PNG_TEXT = NO;
-				TARGETED_DEVICE_FAMILY = "1,2";
-				USER_HEADER_SEARCH_PATHS = "$(_COCOS_HEADER_IOS_BEGIN) $(_COCOS_HEADER_IOS_END)";
-				VALID_ARCHS = "arm64 armv7";
-			};
-			name = Debug;
-		};
-		1D6058950D05DD3E006BFB54 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = YES;
-				CODE_SIGN_IDENTITY = "iPhone Developer";
-				COMPRESS_PNG_FILES = NO;
-				ENABLE_BITCODE = NO;
-				GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = ios/Prefix.pch;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					USE_FILE32API,
-					"CC_ENABLE_CHIPMUNK_INTEGRATION=1",
-					NDEBUG,
-				);
-				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
-				HEADER_SEARCH_PATHS = "$(inherited)";
-				INFOPLIST_FILE = ios/Info.plist;
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				LIBRARY_SEARCH_PATHS = "";
-				OTHER_LDFLAGS = (
-					"$(_COCOS_LIB_IOS_BEGIN)",
-					"$(_COCOS_LIB_IOS_END)",
-				);
-				PRODUCT_BUNDLE_IDENTIFIER = ime.capella.jao.redcore;
-				PRODUCT_NAME = "RedCore-mobile";
-				SDKROOT = iphoneos;
-				STRIP_PNG_TEXT = NO;
-				TARGETED_DEVICE_FAMILY = "1,2";
-				USER_HEADER_SEARCH_PATHS = "$(_COCOS_HEADER_IOS_BEGIN) $(_COCOS_HEADER_IOS_END)";
-				VALID_ARCHS = "arm64 armv7";
-			};
-			name = Release;
-		};
-		5087E76D17EB910900C73F5D /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = YES;
-				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
-				CLANG_CXX_LIBRARY = "libc++";
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = mac/Prefix.pch;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					USE_FILE32API,
-					"COCOS2D_DEBUG=1",
-					"CC_ENABLE_CHIPMUNK_INTEGRATION=1",
-				);
-				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
-				HEADER_SEARCH_PATHS = (
-					"$(inherited)",
-					"$(SRCROOT)/../cocos2d/external/glfw3/include/mac",
-				);
-				INFOPLIST_FILE = mac/Info.plist;
-				LIBRARY_SEARCH_PATHS = "";
-				OTHER_LDFLAGS = (
-					"$(_COCOS_LIB_MAC_BEGIN)",
-					"$(_COCOS_LIB_MAC_END)",
-				);
-				PRODUCT_BUNDLE_IDENTIFIER = ime.capella.jao.redcore;
-				PRODUCT_NAME = "RedCore-desktop";
-				USER_HEADER_SEARCH_PATHS = "$(_COCOS_HEADER_MAC_BEGIN) $(_COCOS_HEADER_MAC_END)";
-			};
-			name = Debug;
-		};
-		5087E76E17EB910900C73F5D /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = YES;
-				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
-				CLANG_CXX_LIBRARY = "libc++";
-				GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = mac/Prefix.pch;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					USE_FILE32API,
-					"CC_ENABLE_CHIPMUNK_INTEGRATION=1",
-					NDEBUG,
-				);
-				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
-				HEADER_SEARCH_PATHS = (
-					"$(inherited)",
-					"$(SRCROOT)/../cocos2d/external/glfw3/include/mac",
-				);
-				INFOPLIST_FILE = mac/Info.plist;
-				LIBRARY_SEARCH_PATHS = "";
-				OTHER_LDFLAGS = (
-					"$(_COCOS_LIB_MAC_BEGIN)",
-					"$(_COCOS_LIB_MAC_END)",
-				);
-				PRODUCT_BUNDLE_IDENTIFIER = ime.capella.jao.redcore;
-				PRODUCT_NAME = "RedCore-desktop";
-				USER_HEADER_SEARCH_PATHS = "$(_COCOS_HEADER_MAC_BEGIN) $(_COCOS_HEADER_MAC_END)";
-			};
-			name = Release;
-		};
-		C01FCF4F08A954540054247B /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
-				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
-				CLANG_CXX_LIBRARY = "libc++";
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INFINITE_RECURSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_SUSPICIOUS_MOVE = YES;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				COPY_PHASE_STRIP = NO;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				ENABLE_TESTABILITY = YES;
-				GCC_NO_COMMON_BLOCKS = YES;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				HEADER_SEARCH_PATHS = (
-					"$(SRCROOT)/../cocos2d",
-					"$(SRCROOT)/../cocos2d/cocos/audio/include",
-					"$(SRCROOT)/../cocos2d/cocos",
-					"$(SRCROOT)/../cocos2d/extensions",
-					"$(SRCROOT)/../cocos2d/external",
-					"$(SRCROOT)/../cocos2d/external/chipmunk/include/chipmunk",
-					"$(SRCROOT)/../cocos2d/cocos/editor-support",
-				);
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				MACOSX_DEPLOYMENT_TARGET = 10.7;
-				ONLY_ACTIVE_ARCH = YES;
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SDKROOT = macosx;
-			};
-			name = Debug;
-		};
-		C01FCF5008A954540054247B /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
-				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
-				CLANG_CXX_LIBRARY = "libc++";
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INFINITE_RECURSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_SUSPICIOUS_MOVE = YES;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				GCC_NO_COMMON_BLOCKS = YES;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				HEADER_SEARCH_PATHS = (
-					"$(SRCROOT)/../cocos2d",
-					"$(SRCROOT)/../cocos2d/cocos/audio/include",
-					"$(SRCROOT)/../cocos2d/cocos",
-					"$(SRCROOT)/../cocos2d/extensions",
-					"$(SRCROOT)/../cocos2d/external",
-					"$(SRCROOT)/../cocos2d/external/chipmunk/include/chipmunk",
-					"$(SRCROOT)/../cocos2d/cocos/editor-support",
-				);
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				MACOSX_DEPLOYMENT_TARGET = 10.7;
-				OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SDKROOT = macosx;
-				VALIDATE_PRODUCT = YES;
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "RedCore-mobile" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				1D6058940D05DD3E006BFB54 /* Debug */,
-				1D6058950D05DD3E006BFB54 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Debug;
-		};
-		5087E76C17EB910900C73F5D /* Build configuration list for PBXNativeTarget "RedCore-desktop" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				5087E76D17EB910900C73F5D /* Debug */,
-				5087E76E17EB910900C73F5D /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Debug;
-		};
-		C01FCF4E08A954540054247B /* Build configuration list for PBXProject "RedCore" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				C01FCF4F08A954540054247B /* Debug */,
-				C01FCF5008A954540054247B /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Debug;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
-}

+ 0 - 7
proj.ios_mac/RedCore.xcodeproj/project.xcworkspace/contents.xcworkspacedata

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Workspace
-   version = "1.0">
-   <FileRef
-      location = "self:/Users/gabrielcapella/Dropbox/Graduac&#x327;a&#x303;o/USP-BCC/MAC0463/EP2/RedCore/proj.ios_mac/RedCore.xcodeproj">
-   </FileRef>
-</Workspace>

+ 0 - 37
proj.ios_mac/RedCore.xcodeproj/project.xcworkspace/xcshareddata/RedCore2.xcscmblueprint

@@ -1,37 +0,0 @@
-{
-  "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "E0DDA7F6FDF7FD8F1F6D1DAFFDACFCBFBB076231",
-  "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : {
-
-  },
-  "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : {
-    "852ED3691A47A99B0D19C820A500AE9772B2A44E" : 9223372036854775807,
-    "D67E1CCAB151841D043F8ECEF1A3647715B33599" : 9223372036854775807,
-    "E0DDA7F6FDF7FD8F1F6D1DAFFDACFCBFBB076231" : 9223372036854775807
-  },
-  "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "6DAC8330-E09D-4740-9826-D01F52799A97",
-  "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : {
-    "852ED3691A47A99B0D19C820A500AE9772B2A44E" : "RedCore2\/cocos2d\/",
-    "D67E1CCAB151841D043F8ECEF1A3647715B33599" : "..\/..",
-    "E0DDA7F6FDF7FD8F1F6D1DAFFDACFCBFBB076231" : "RedCore2\/"
-  },
-  "DVTSourceControlWorkspaceBlueprintNameKey" : "RedCore2",
-  "DVTSourceControlWorkspaceBlueprintVersion" : 204,
-  "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "proj.ios_mac\/RedCore2.xcodeproj",
-  "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [
-    {
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/cocos2d\/cocos2d-x",
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "852ED3691A47A99B0D19C820A500AE9772B2A44E"
-    },
-    {
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "ssh:\/\/git.capella.pro:10022\/capella\/USP-BCC.git",
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "D67E1CCAB151841D043F8ECEF1A3647715B33599"
-    },
-    {
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "ssh:\/\/git.capella.pro:10022\/capella\/RedCore.git",
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "E0DDA7F6FDF7FD8F1F6D1DAFFDACFCBFBB076231"
-    }
-  ]
-}

BIN
proj.ios_mac/RedCore.xcodeproj/project.xcworkspace/xcuserdata/capella.xcuserdatad/UserInterfaceState.xcuserstate


+ 0 - 103
proj.ios_mac/RedCore.xcodeproj/xcuserdata/capella.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Bucket
-   type = "1"
-   version = "2.0">
-   <Breakpoints>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "../Classes/Ball.cpp"
-            timestampString = "518216424.556933"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "17"
-            endingLineNumber = "17"
-            landmarkName = "Ball::init()"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "../Classes/BlocksLayer.cpp"
-            timestampString = "518736864.506679"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "155"
-            endingLineNumber = "155"
-            landmarkName = "BlocksLayer::createSegment (double r_internal, double r_externa, double begin, double end, bool especial)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "../Classes/GameScene.cpp"
-            timestampString = "518829544.113316"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "50"
-            endingLineNumber = "50"
-            landmarkName = "GameScene::createScene(int level)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "../Classes/BlocksLayer.cpp"
-            timestampString = "518736490.988377"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "156"
-            endingLineNumber = "156"
-            landmarkName = "BlocksLayer::createSegment (double r_internal, double r_externa, double begin, double end, bool especial)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "../Classes/GameScene.cpp"
-            timestampString = "518890369.141756"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "203"
-            endingLineNumber = "203"
-            landmarkName = "GameScene::caseBallCollision (Node *ball)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "../Classes/GameScene.cpp"
-            timestampString = "518890369.141756"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "340"
-            endingLineNumber = "340"
-            landmarkName = "GameScene::removeBallsAndPowersUP ()"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-   </Breakpoints>
-</Bucket>

+ 0 - 91
proj.ios_mac/RedCore.xcodeproj/xcuserdata/capella.xcuserdatad/xcschemes/RedCore2-desktop.xcscheme

@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Scheme
-   LastUpgradeVersion = "0820"
-   version = "1.3">
-   <BuildAction
-      parallelizeBuildables = "YES"
-      buildImplicitDependencies = "YES">
-      <BuildActionEntries>
-         <BuildActionEntry
-            buildForTesting = "YES"
-            buildForRunning = "YES"
-            buildForProfiling = "YES"
-            buildForArchiving = "YES"
-            buildForAnalyzing = "YES">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "5087E73D17EB910900C73F5D"
-               BuildableName = "RedCore-desktop.app"
-               BlueprintName = "RedCore-desktop"
-               ReferencedContainer = "container:RedCore.xcodeproj">
-            </BuildableReference>
-         </BuildActionEntry>
-      </BuildActionEntries>
-   </BuildAction>
-   <TestAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      shouldUseLaunchSchemeArgsEnv = "YES">
-      <Testables>
-      </Testables>
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "5087E73D17EB910900C73F5D"
-            BuildableName = "RedCore-desktop.app"
-            BlueprintName = "RedCore-desktop"
-            ReferencedContainer = "container:RedCore.xcodeproj">
-         </BuildableReference>
-      </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </TestAction>
-   <LaunchAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      launchStyle = "0"
-      useCustomWorkingDirectory = "NO"
-      ignoresPersistentStateOnLaunch = "NO"
-      debugDocumentVersioning = "YES"
-      debugServiceExtension = "internal"
-      allowLocationSimulation = "YES">
-      <BuildableProductRunnable
-         runnableDebuggingMode = "0">
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "5087E73D17EB910900C73F5D"
-            BuildableName = "RedCore-desktop.app"
-            BlueprintName = "RedCore-desktop"
-            ReferencedContainer = "container:RedCore.xcodeproj">
-         </BuildableReference>
-      </BuildableProductRunnable>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </LaunchAction>
-   <ProfileAction
-      buildConfiguration = "Release"
-      shouldUseLaunchSchemeArgsEnv = "YES"
-      savedToolIdentifier = ""
-      useCustomWorkingDirectory = "NO"
-      debugDocumentVersioning = "YES">
-      <BuildableProductRunnable
-         runnableDebuggingMode = "0">
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "5087E73D17EB910900C73F5D"
-            BuildableName = "RedCore-desktop.app"
-            BlueprintName = "RedCore-desktop"
-            ReferencedContainer = "container:RedCore.xcodeproj">
-         </BuildableReference>
-      </BuildableProductRunnable>
-   </ProfileAction>
-   <AnalyzeAction
-      buildConfiguration = "Debug">
-   </AnalyzeAction>
-   <ArchiveAction
-      buildConfiguration = "Release"
-      revealArchiveInOrganizer = "YES">
-   </ArchiveAction>
-</Scheme>

+ 0 - 91
proj.ios_mac/RedCore.xcodeproj/xcuserdata/capella.xcuserdatad/xcschemes/RedCore2-mobile.xcscheme

@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Scheme
-   LastUpgradeVersion = "0820"
-   version = "1.3">
-   <BuildAction
-      parallelizeBuildables = "YES"
-      buildImplicitDependencies = "YES">
-      <BuildActionEntries>
-         <BuildActionEntry
-            buildForTesting = "YES"
-            buildForRunning = "YES"
-            buildForProfiling = "YES"
-            buildForArchiving = "YES"
-            buildForAnalyzing = "YES">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
-               BuildableName = "RedCore-mobile.app"
-               BlueprintName = "RedCore-mobile"
-               ReferencedContainer = "container:RedCore.xcodeproj">
-            </BuildableReference>
-         </BuildActionEntry>
-      </BuildActionEntries>
-   </BuildAction>
-   <TestAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      shouldUseLaunchSchemeArgsEnv = "YES">
-      <Testables>
-      </Testables>
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
-            BuildableName = "RedCore-mobile.app"
-            BlueprintName = "RedCore-mobile"
-            ReferencedContainer = "container:RedCore.xcodeproj">
-         </BuildableReference>
-      </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </TestAction>
-   <LaunchAction
-      buildConfiguration = "Debug"
-      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
-      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      launchStyle = "0"
-      useCustomWorkingDirectory = "NO"
-      ignoresPersistentStateOnLaunch = "NO"
-      debugDocumentVersioning = "YES"
-      debugServiceExtension = "internal"
-      allowLocationSimulation = "YES">
-      <BuildableProductRunnable
-         runnableDebuggingMode = "0">
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
-            BuildableName = "RedCore-mobile.app"
-            BlueprintName = "RedCore-mobile"
-            ReferencedContainer = "container:RedCore.xcodeproj">
-         </BuildableReference>
-      </BuildableProductRunnable>
-      <AdditionalOptions>
-      </AdditionalOptions>
-   </LaunchAction>
-   <ProfileAction
-      buildConfiguration = "Release"
-      shouldUseLaunchSchemeArgsEnv = "YES"
-      savedToolIdentifier = ""
-      useCustomWorkingDirectory = "NO"
-      debugDocumentVersioning = "YES">
-      <BuildableProductRunnable
-         runnableDebuggingMode = "0">
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
-            BuildableName = "RedCore-mobile.app"
-            BlueprintName = "RedCore-mobile"
-            ReferencedContainer = "container:RedCore.xcodeproj">
-         </BuildableReference>
-      </BuildableProductRunnable>
-   </ProfileAction>
-   <AnalyzeAction
-      buildConfiguration = "Debug">
-   </AnalyzeAction>
-   <ArchiveAction
-      buildConfiguration = "Release"
-      revealArchiveInOrganizer = "YES">
-   </ArchiveAction>
-</Scheme>

+ 0 - 32
proj.ios_mac/RedCore.xcodeproj/xcuserdata/capella.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>SchemeUserState</key>
-	<dict>
-		<key>RedCore2-desktop.xcscheme</key>
-		<dict>
-			<key>orderHint</key>
-			<integer>1</integer>
-		</dict>
-		<key>RedCore2-mobile.xcscheme</key>
-		<dict>
-			<key>orderHint</key>
-			<integer>0</integer>
-		</dict>
-	</dict>
-	<key>SuppressBuildableAutocreation</key>
-	<dict>
-		<key>1D6058900D05DD3D006BFB54</key>
-		<dict>
-			<key>primary</key>
-			<true/>
-		</dict>
-		<key>5087E73D17EB910900C73F5D</key>
-		<dict>
-			<key>primary</key>
-			<true/>
-		</dict>
-	</dict>
-</dict>
-</plist>

+ 0 - 37
proj.ios_mac/ios/AppController.h

@@ -1,37 +0,0 @@
-/****************************************************************************
- Copyright (c) 2010-2013 cocos2d-x.org
- Copyright (c) 2013-2017 Chukong Technologies Inc.
- 
- http://www.cocos2d-x.org
- 
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
- 
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
- 
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
- ****************************************************************************/
-
-#import <UIKit/UIKit.h>
-
-@class RootViewController;
-
-@interface AppController : NSObject <UIApplicationDelegate> {
-
-}
-
-@property(nonatomic, readonly) RootViewController* viewController;
-
-@end
-

+ 0 - 146
proj.ios_mac/ios/AppController.mm

@@ -1,146 +0,0 @@
-/****************************************************************************
- Copyright (c) 2010-2013 cocos2d-x.org
- Copyright (c) 2013-2017 Chukong Technologies Inc.
- 
- http://www.cocos2d-x.org
- 
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
- 
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
- 
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
- ****************************************************************************/
-
-#import "AppController.h"
-#import "cocos2d.h"
-#import "AppDelegate.h"
-#import "RootViewController.h"
-
-@implementation AppController
-
-@synthesize window;
-
-#pragma mark -
-#pragma mark Application lifecycle
-
-// cocos2d application instance
-static AppDelegate s_sharedApplication;
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    
-    cocos2d::Application *app = cocos2d::Application::getInstance();
-    
-    // Initialize the GLView attributes
-    app->initGLContextAttrs();
-    cocos2d::GLViewImpl::convertAttrs();
-    
-    // Override point for customization after application launch.
-
-    // Add the view controller's view to the window and display.
-    window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] bounds]];
-
-    // Use RootViewController to manage CCEAGLView
-    _viewController = [[RootViewController alloc]init];
-    _viewController.wantsFullScreenLayout = YES;
-    
-
-    // Set RootViewController to window
-    if ( [[UIDevice currentDevice].systemVersion floatValue] < 6.0)
-    {
-        // warning: addSubView doesn't work on iOS6
-        [window addSubview: _viewController.view];
-    }
-    else
-    {
-        // use this method on ios6
-        [window setRootViewController:_viewController];
-    }
-
-    [window makeKeyAndVisible];
-
-    [[UIApplication sharedApplication] setStatusBarHidden:true];
-    
-    // IMPORTANT: Setting the GLView should be done after creating the RootViewController
-    cocos2d::GLView *glview = cocos2d::GLViewImpl::createWithEAGLView((__bridge void *)_viewController.view);
-    cocos2d::Director::getInstance()->setOpenGLView(glview);
-    
-    //run the cocos2d-x game scene
-    app->run();
-
-    return YES;
-}
-
-
-- (void)applicationWillResignActive:(UIApplication *)application {
-    /*
-     Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
-     Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
-     */
-    // We don't need to call this method any more. It will interrupt user defined game pause&resume logic
-    /* cocos2d::Director::getInstance()->pause(); */
-}
-
-- (void)applicationDidBecomeActive:(UIApplication *)application {
-    /*
-     Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
-     */
-    // We don't need to call this method any more. It will interrupt user defined game pause&resume logic
-    /* cocos2d::Director::getInstance()->resume(); */
-}
-
-- (void)applicationDidEnterBackground:(UIApplication *)application {
-    /*
-     Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 
-     If your application supports background execution, called instead of applicationWillTerminate: when the user quits.
-     */
-    cocos2d::Application::getInstance()->applicationDidEnterBackground();
-}
-
-- (void)applicationWillEnterForeground:(UIApplication *)application {
-    /*
-     Called as part of  transition from the background to the inactive state: here you can undo many of the changes made on entering the background.
-     */
-    cocos2d::Application::getInstance()->applicationWillEnterForeground();
-}
-
-- (void)applicationWillTerminate:(UIApplication *)application {
-    /*
-     Called when the application is about to terminate.
-     See also applicationDidEnterBackground:.
-     */
-}
-
-
-#pragma mark -
-#pragma mark Memory management
-
-- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
-    /*
-     Free up as much memory as possible by purging cached data objects that can be recreated (or reloaded from disk) later.
-     */
-}
-
-
-#if __has_feature(objc_arc)
-#else
-- (void)dealloc {
-    [window release];
-    [_viewController release];
-    [super dealloc];
-}
-#endif
-
-
-@end

BIN
proj.ios_mac/ios/Icon-29.png


BIN
proj.ios_mac/ios/Icon-29@2x.png


BIN
proj.ios_mac/ios/Icon-29@3x.png


BIN
proj.ios_mac/ios/Icon-40.png


BIN
proj.ios_mac/ios/Icon-40@2x.png


BIN
proj.ios_mac/ios/Icon-76.png


BIN
proj.ios_mac/ios/Icon-76@2x.png


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است