From e0fd8f6284d3e9372f3683886e45ea62414136c4 Mon Sep 17 00:00:00 2001 From: James Chen Date: Thu, 22 Nov 2012 17:40:25 +0800 Subject: [PATCH] issue #1572: Adding WatermelonWithMe project. --- .../WatermelonWithMe/Classes/AppDelegate.cpp | 85 ++ .../WatermelonWithMe/Classes/AppDelegate.h | 45 + .../Resources/Abadi.GlyphProject | Bin 0 -> 3209 bytes .../CCB/Abadi40-hd.png.REMOVED.git-id | 1 + .../CCB/Abadi40-ipad.png.REMOVED.git-id | 1 + .../Resources/CCB/Abadi40.png.REMOVED.git-id | 1 + .../Resources/CCB/Gas40-hd.png.REMOVED.git-id | 1 + .../CCB/Gas40-ipad.png.REMOVED.git-id | 1 + .../CCB/konqa32-hd.png.REMOVED.git-id | 1 + .../CCB/konqa32-ipad.png.REMOVED.git-id | 1 + .../Resources/CCB/konqa32.png.REMOVED.git-id | 1 + .../Resources/Futura.GlyphProject | Bin 0 -> 3215 bytes .../Resources/Gas.GlyphProject | Bin 0 -> 3159 bytes .../Resources/Konqa.GlyphProject | Bin 0 -> 3179 bytes .../Resources/Parallax.pvr.gz.REMOVED.git-id | 1 + .../Resources/game-music.mp3.REMOVED.git-id | 1 + .../Resources/single_files/button.xcf | Bin 0 -> 45160 bytes .../bindings/jsb_constants.js | 9 + .../bindings/jsb_constants_chipmunk.js | 253 ++++ .../bindings/jsb_constants_cocos2d.js | 505 +++++++ .../bindings/jsb_constants_cocosbuilder.js | 118 ++ .../bindings/jsb_constants_gl.js | 23 + .../WatermelonWithMe/proj.android/.classpath | 8 + .../WatermelonWithMe/proj.android/.project | 33 + .../proj.android/AndroidManifest.xml | 28 + .../proj.android/ant.properties | 1 + .../WatermelonWithMe/proj.android/build.xml | 92 ++ .../proj.android/build_native.sh | 87 ++ .../proj.android/jni/Android.mk | 28 + .../proj.android/jni/Application.mk | 3 + .../jni/watermelonwithme/main.cpp | 45 + .../WatermelonWithMe/proj.android/ndkgdb.sh | 47 + .../proj.android/proguard-project.txt | 20 + .../proj.android/project.properties | 13 + .../proj.android/res/values/strings.xml | 4 + .../testjavascript/TestJavascript.java | 39 + .../WatermelonWithMe/proj.ios/AppController.h | 17 + .../proj.ios/AppController.mm | 119 ++ .../Default-568h@2x.png.REMOVED.git-id | 1 + .../proj.ios/Default@2x.png.REMOVED.git-id | 1 + samples/WatermelonWithMe/proj.ios/Prefix.pch | 8 + .../proj.ios/RootViewController.h | 33 + .../proj.ios/RootViewController.mm | 73 + .../project.pbxproj | 1188 +++++++++++++++++ samples/WatermelonWithMe/proj.ios/main.m | 17 + .../proj.win32/WatermelonWithMe.vcxproj | 208 +++ .../WatermelonWithMe.vcxproj.filters | 125 ++ .../proj.win32/WatermelonWithMe.vcxproj.user | 11 + samples/WatermelonWithMe/proj.win32/main.cpp | 37 + samples/WatermelonWithMe/proj.win32/main.h | 13 + .../proj.win32/res/testjs.ico | Bin 0 -> 47629 bytes .../WatermelonWithMe/proj.win32/resource.h | 20 + samples/WatermelonWithMe/proj.win32/testjs.rc | 86 ++ .../WatermelonWithMe/watermelon_with_me.js | 1100 +++++++++++++++ 54 files changed, 4553 insertions(+) create mode 100644 samples/WatermelonWithMe/Classes/AppDelegate.cpp create mode 100644 samples/WatermelonWithMe/Classes/AppDelegate.h create mode 100644 samples/WatermelonWithMe/Resources/Abadi.GlyphProject create mode 100644 samples/WatermelonWithMe/Resources/CCB/Abadi40-hd.png.REMOVED.git-id create mode 100644 samples/WatermelonWithMe/Resources/CCB/Abadi40-ipad.png.REMOVED.git-id create mode 100644 samples/WatermelonWithMe/Resources/CCB/Abadi40.png.REMOVED.git-id create mode 100644 samples/WatermelonWithMe/Resources/CCB/Gas40-hd.png.REMOVED.git-id create mode 100644 samples/WatermelonWithMe/Resources/CCB/Gas40-ipad.png.REMOVED.git-id create mode 100644 samples/WatermelonWithMe/Resources/CCB/konqa32-hd.png.REMOVED.git-id create mode 100644 samples/WatermelonWithMe/Resources/CCB/konqa32-ipad.png.REMOVED.git-id create mode 100644 samples/WatermelonWithMe/Resources/CCB/konqa32.png.REMOVED.git-id create mode 100644 samples/WatermelonWithMe/Resources/Futura.GlyphProject create mode 100644 samples/WatermelonWithMe/Resources/Gas.GlyphProject create mode 100644 samples/WatermelonWithMe/Resources/Konqa.GlyphProject create mode 100644 samples/WatermelonWithMe/Resources/Parallax.pvr.gz.REMOVED.git-id create mode 100644 samples/WatermelonWithMe/Resources/game-music.mp3.REMOVED.git-id create mode 100644 samples/WatermelonWithMe/Resources/single_files/button.xcf create mode 100644 samples/WatermelonWithMe/bindings/jsb_constants.js create mode 100644 samples/WatermelonWithMe/bindings/jsb_constants_chipmunk.js create mode 100644 samples/WatermelonWithMe/bindings/jsb_constants_cocos2d.js create mode 100644 samples/WatermelonWithMe/bindings/jsb_constants_cocosbuilder.js create mode 100644 samples/WatermelonWithMe/bindings/jsb_constants_gl.js create mode 100644 samples/WatermelonWithMe/proj.android/.classpath create mode 100644 samples/WatermelonWithMe/proj.android/.project create mode 100644 samples/WatermelonWithMe/proj.android/AndroidManifest.xml create mode 100644 samples/WatermelonWithMe/proj.android/ant.properties create mode 100644 samples/WatermelonWithMe/proj.android/build.xml create mode 100644 samples/WatermelonWithMe/proj.android/build_native.sh create mode 100644 samples/WatermelonWithMe/proj.android/jni/Android.mk create mode 100644 samples/WatermelonWithMe/proj.android/jni/Application.mk create mode 100644 samples/WatermelonWithMe/proj.android/jni/watermelonwithme/main.cpp create mode 100644 samples/WatermelonWithMe/proj.android/ndkgdb.sh create mode 100644 samples/WatermelonWithMe/proj.android/proguard-project.txt create mode 100644 samples/WatermelonWithMe/proj.android/project.properties create mode 100644 samples/WatermelonWithMe/proj.android/res/values/strings.xml create mode 100644 samples/WatermelonWithMe/proj.android/src/org/cocos2dx/testjavascript/TestJavascript.java create mode 100644 samples/WatermelonWithMe/proj.ios/AppController.h create mode 100644 samples/WatermelonWithMe/proj.ios/AppController.mm create mode 100644 samples/WatermelonWithMe/proj.ios/Default-568h@2x.png.REMOVED.git-id create mode 100644 samples/WatermelonWithMe/proj.ios/Default@2x.png.REMOVED.git-id create mode 100644 samples/WatermelonWithMe/proj.ios/Prefix.pch create mode 100644 samples/WatermelonWithMe/proj.ios/RootViewController.h create mode 100644 samples/WatermelonWithMe/proj.ios/RootViewController.mm create mode 100644 samples/WatermelonWithMe/proj.ios/WatermelonWithMe.xcodeproj/project.pbxproj create mode 100644 samples/WatermelonWithMe/proj.ios/main.m create mode 100644 samples/WatermelonWithMe/proj.win32/WatermelonWithMe.vcxproj create mode 100644 samples/WatermelonWithMe/proj.win32/WatermelonWithMe.vcxproj.filters create mode 100644 samples/WatermelonWithMe/proj.win32/WatermelonWithMe.vcxproj.user create mode 100644 samples/WatermelonWithMe/proj.win32/main.cpp create mode 100644 samples/WatermelonWithMe/proj.win32/main.h create mode 100644 samples/WatermelonWithMe/proj.win32/res/testjs.ico create mode 100644 samples/WatermelonWithMe/proj.win32/resource.h create mode 100644 samples/WatermelonWithMe/proj.win32/testjs.rc create mode 100644 samples/WatermelonWithMe/watermelon_with_me.js diff --git a/samples/WatermelonWithMe/Classes/AppDelegate.cpp b/samples/WatermelonWithMe/Classes/AppDelegate.cpp new file mode 100644 index 0000000000..06835bdea2 --- /dev/null +++ b/samples/WatermelonWithMe/Classes/AppDelegate.cpp @@ -0,0 +1,85 @@ +#include "AppDelegate.h" + +#include "cocos2d.h" +#include "SimpleAudioEngine.h" +#include "ScriptingCore.h" +#include "generated/cocos2dx.hpp" +#include "cocos2d_specifics.hpp" +#include "js_bindings_chipmunk_registration.h" +#include "js_bindings_ccbreader.h" + +USING_NS_CC; +using namespace CocosDenshion; + +AppDelegate::AppDelegate() +{ +} + +AppDelegate::~AppDelegate() +{ + CCScriptEngineManager::sharedManager()->purgeSharedManager(); +} + +bool AppDelegate::applicationDidFinishLaunching() +{ + // initialize director + CCDirector *pDirector = CCDirector::sharedDirector(); + pDirector->setOpenGLView(CCEGLView::sharedOpenGLView()); + + // turn on display FPS + pDirector->setDisplayStats(true); + + // set FPS. the default value is 1.0/60 if you don't call this + pDirector->setAnimationInterval(1.0 / 60); + + ScriptingCore* sc = ScriptingCore::getInstance(); + sc->addRegisterCallback(register_all_cocos2dx); + sc->addRegisterCallback(register_cocos2dx_js_extensions); + sc->addRegisterCallback(jsb_register_chipmunk); + sc->addRegisterCallback(register_CCBuilderReader); + + sc->start(); + + CCScriptEngineProtocol *pEngine = ScriptingCore::getInstance(); + CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine); + //ScriptingCore::getInstance()->runScript("src/tests-boot-jsb.js"); + ScriptingCore::getInstance()->runScript("watermelon_with_me.js"); + + return true; +} + +void handle_signal(int signal) { + static int internal_state = 0; + ScriptingCore* sc = ScriptingCore::getInstance(); + // should start everything back + CCDirector* director = CCDirector::sharedDirector(); + if (director->getRunningScene()) { + director->popToRootScene(); + } else { + CCPoolManager::sharedPoolManager()->finalize(); + if (internal_state == 0) { + //sc->dumpRoot(NULL, 0, NULL); + sc->start(); + internal_state = 1; + } else { + sc->runScript("hello.js"); + internal_state = 0; + } + } +} + +// This function will be called when the app is inactive. When comes a phone call,it's be invoked too +void AppDelegate::applicationDidEnterBackground() +{ + CCDirector::sharedDirector()->stopAnimation(); + SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic(); + SimpleAudioEngine::sharedEngine()->pauseAllEffects(); +} + +// this function will be called when the app is active again +void AppDelegate::applicationWillEnterForeground() +{ + CCDirector::sharedDirector()->startAnimation(); + SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic(); + SimpleAudioEngine::sharedEngine()->resumeAllEffects(); +} diff --git a/samples/WatermelonWithMe/Classes/AppDelegate.h b/samples/WatermelonWithMe/Classes/AppDelegate.h new file mode 100644 index 0000000000..6bd9363493 --- /dev/null +++ b/samples/WatermelonWithMe/Classes/AppDelegate.h @@ -0,0 +1,45 @@ +// +// GCTestAppDelegate.h +// GCTest +// +// Created by Rohan Kuruvilla on 06/08/2012. +// Copyright __MyCompanyName__ 2012. All rights reserved. +// + +#ifndef _APP_DELEGATE_H_ +#define _APP_DELEGATE_H_ + +#include "CCApplication.h" +/** + @brief The cocos2d Application. + + The reason for implement as private inheritance is to hide some interface call by CCDirector. + */ +class AppDelegate : private cocos2d::CCApplication +{ +public: + AppDelegate(); + virtual ~AppDelegate(); + + /** + @brief Implement CCDirector and CCScene init code here. + @return true Initialize success, app continue. + @return false Initialize failed, app terminate. + */ + virtual bool applicationDidFinishLaunching(); + + /** + @brief The function be called when the application enter background + @param the pointer of the application + */ + virtual void applicationDidEnterBackground(); + + /** + @brief The function be called when the application enter foreground + @param the pointer of the application + */ + virtual void applicationWillEnterForeground(); +}; + +#endif // _APP_DELEGATE_H_ + diff --git a/samples/WatermelonWithMe/Resources/Abadi.GlyphProject b/samples/WatermelonWithMe/Resources/Abadi.GlyphProject new file mode 100644 index 0000000000000000000000000000000000000000..389a94a47b18b176709d51e76f7e6ada20dfb87e GIT binary patch literal 3209 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 literal 0 HcmV?d00001 diff --git a/samples/WatermelonWithMe/Resources/Gas.GlyphProject b/samples/WatermelonWithMe/Resources/Gas.GlyphProject new file mode 100644 index 0000000000000000000000000000000000000000..f5c86995050e107222a1def41c1af25c5e2e5289 GIT binary patch literal 3159 zcmb7G33yc175?v?d0P}12#X+M3}F*UW+pR9283*o2qBY@$sWQm%)BHICiB9)HzW~} zYgN=*s{$^FC`PJitr1*m)hfjWx1s`WNZpF4eC=1YU#(TEy>Disp#8pnoqUt~&N=s< z^Pm5mcjm6_iE4)FbRGr)g$;HH5Xo3Ft~qC|8aFgO)|{iST&0Fhqa`O44|i!?U7us> zJ)=N2?ih50AVG$PRalKEx)Fnp9;`te223Qd7QN_0KQ6#JT!{6!2phm~F@A*HeU?fH%6QeN( zV=)eAU_2(^OiaXCn1r*Dg>#UN$;iPJOvN-z#|)f{nV5yy$VDEUaKVjyc;H0=3Q+_f z<}k`^%+3TRGKtAdVHxZ+b~+ozhO-gO!A7!CER&69W7t?Wj-A2AvkB}>Hj$mhCb6?w z7CVP!v&k%nO<_~nG&Y^hVCS-#Y!;i%axK{BVIJnA7$qo08Oph|kbmdle6A@*6@RLR zA2obkiaG>Pj|McNiQ8JZu8mu(u^d6H;8HQdh(JXLI#JB>n3K7fo8>bP^Rfai&Ea1s zo69wBb{>D4$L6zQzLv0ZwuDtPKdWK2+_seK>bP|tYhkUdjZ1E}jJ31nEXYs)WNc7B3{QsB)IRT*RYiOf|qTb?Y z2x79~+R`PkayX@~&B<;__u)|VA9|@Nji=VZCjQztXO@ZF5@bz6O#fTPEB2!sj@=mbJ)sUILJNRiMz0?-XB=BfE79DLEM91 z<6iuxH8sy-yqL|YN7XpR*#Pdt;3=ABf1oBg_)|`HV-F9Qj6Q(f7<5d}ev$zW(z?#= zan8ze6*$)i9l_GF@&yYkD$ifExN1qYzovF+U7)_9v8lPGHMBAuQ9C-jv{kF4-7&pq zP24aOYkT|pFL1f@J>G)CBA+w+oE62>a%at*Gkr!|`?~e#&A%|OWZCkZ*;8iDn;e{a z(YaZNd5XWoqj(IDXYrKrR@J53_P*+*Td^L_~&fKDWSAL<}>-D*^oVnftPodN6 za~9=u!R2;&3yKQdg@xR+RkOEnr2Ukh--)+z6o10tscN2#)wpdujB51g)*KiD`7U?$ zK3mLD6*J&uRL3kl6D<%$?tHJ?=W)9&5T1h6r)UVoaeTz5kv~wKFheV&>H;lnz1E?4 z{~b7vkCXlKgU;gk4+7aGyo5h~J^o=e{X%E1+nYR^`rZB#Ut1;o7rtTvRzHAm@Nd?@n*M7E z3Bf^PV~szp84>@VYNg30GIy83ntw_*8TLQPc4Pz{WqAz-zi;Km*CbRU6ba?^#Pv=i zFRX`k!yTEe^>pbmHILU=PsGEjkypu^KCisIj6WD2C%1(k<#=H?p1OI8DAggzj2K4>)Uufgl6(<$Q%^&D^dm-M<$V}#6|MSwPX|7 zLT(^8k(*P&xgd8RBkoU+3^&OKE^M&?eeK+h{ut(hv<( zm3C5%uBP2or)#J|6SSB1({*$`-9RsGkwRx|MFD+v#oe zcKQH)h90CJ(=Tk9wrtxho6lBdYqqVj_1UhnZL;mM?Y2E_d&Tyy?Q`3=_DuT}yUSi< zUuM_s8||Czx7r`JzhFOV|J44qFkZ+JW(WmBnNTaV3Nc}=&@1!{7YQ2#CR`$1A#4@y z6CM+u5}pzE3(pHL39ku9grmYc!bigA!q=iK4ihJclf_x0NA!tv#S*bhtQH5wz2biH zfcS>^miV@KOgt{05dSWIC4MKJE)AD5r7_YtX`(bq%95r@xzb#zR9Y-8k^E9XS|N2v zUD76Ln{>CdN7^gxmkvqqNgqhZq)((Tq%Y-ha+X{m&yyF+ez{F&n~8d&-B(Kb3DXh}Bg9rKy!nNUcNvGi?6>Fb=?M literal 0 HcmV?d00001 diff --git a/samples/WatermelonWithMe/Resources/Konqa.GlyphProject b/samples/WatermelonWithMe/Resources/Konqa.GlyphProject new file mode 100644 index 0000000000000000000000000000000000000000..51e960b830a64a97cc5db241f94d5da1b7a9d6c1 GIT binary patch literal 3179 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 literal 0 HcmV?d00001 diff --git a/samples/WatermelonWithMe/Resources/Parallax.pvr.gz.REMOVED.git-id b/samples/WatermelonWithMe/Resources/Parallax.pvr.gz.REMOVED.git-id new file mode 100644 index 0000000000..50b460b92c --- /dev/null +++ b/samples/WatermelonWithMe/Resources/Parallax.pvr.gz.REMOVED.git-id @@ -0,0 +1 @@ +2b588761f91aeed6061ac672d00fb67b5b65253d \ No newline at end of file diff --git a/samples/WatermelonWithMe/Resources/game-music.mp3.REMOVED.git-id b/samples/WatermelonWithMe/Resources/game-music.mp3.REMOVED.git-id new file mode 100644 index 0000000000..f68477bdf7 --- /dev/null +++ b/samples/WatermelonWithMe/Resources/game-music.mp3.REMOVED.git-id @@ -0,0 +1 @@ +5783809fbb118e460886314c5da4429ea1f6577d \ No newline at end of file diff --git a/samples/WatermelonWithMe/Resources/single_files/button.xcf b/samples/WatermelonWithMe/Resources/single_files/button.xcf new file mode 100644 index 0000000000000000000000000000000000000000..8ce376d191fbe7423f2f1c425b8a615203e6ff3c GIT binary patch literal 45160 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 F{{en;EB62Z literal 0 HcmV?d00001 diff --git a/samples/WatermelonWithMe/bindings/jsb_constants.js b/samples/WatermelonWithMe/bindings/jsb_constants.js new file mode 100644 index 0000000000..7aa0419617 --- /dev/null +++ b/samples/WatermelonWithMe/bindings/jsb_constants.js @@ -0,0 +1,9 @@ +// +// Javascript Bindigns helper file +// + +// DO NOT ALTER THE ORDER +require('jsb_constants_cocos2d.js'); +require('jsb_constants_chipmunk.js'); +require('jsb_constants_gl.js'); +require('jsb_constants_cocosbuilder.js'); diff --git a/samples/WatermelonWithMe/bindings/jsb_constants_chipmunk.js b/samples/WatermelonWithMe/bindings/jsb_constants_chipmunk.js new file mode 100644 index 0000000000..724c6afa36 --- /dev/null +++ b/samples/WatermelonWithMe/bindings/jsb_constants_chipmunk.js @@ -0,0 +1,253 @@ +// +// Chipmunk defines +// + +cp.v = cc.p; +cp._v = cc._p; +cp.vzero = cp.v(0,0); + +// Vector: Compatibility with Chipmunk-JS +cp.v.add = cp.vadd; +cp.v.clamp = cp.vclamp; +cp.v.cross = cp.vcross; +cp.v.dist = cp.vdist; +cp.v.distsq = cp.vdistsq; +cp.v.dot = cp.vdot; +cp.v.eql = cp.veql; +cp.v.forangle = cp.vforangle; +cp.v.len = cp.vlength; +cp.v.lengthsq = cp.vlengthsq; +cp.v.lerp = cp.vlerp; +cp.v.lerpconst = cp.vlerpconst; +cp.v.mult = cp.vmult; +cp.v.near = cp.vnear; +cp.v.neg = cp.vneg; +cp.v.normalize = cp.vnormalize; +cp.v.normalize_safe = cp.vnormalize_safe; +cp.v.perp = cp.vperp; +cp.v.project = cp.vproject; +cp.v.rotate = cp.vrotate; +cp.v.rperp = cp.vrperp; +cp.v.slerp = cp.vslerp; +cp.v.slerpconst = cp.vslerpconst; +cp.v.sub = cp.vsub; +cp.v.toangle = cp.vtoangle; +cp.v.unrotate = cp.vunrotate; + + + +/// Initialize an offset box shaped polygon shape. +cp.BoxShape2 = function(body, box) +{ + var verts = [ + box.l, box.b, + box.l, box.t, + box.r, box.t, + box.r, box.b + ]; + + return new cp.PolyShape(body, verts, cp.vzero); +}; + +/// Initialize a box shaped polygon shape. +cp.BoxShape = function(body, width, height) +{ + var hw = width/2; + var hh = height/2; + + return cp.BoxShape2(body, new cp.BB(-hw, -hh, hw, hh)); +}; + + +/// Initialize an static body +cp.BodyStatic = function() +{ + return new cp.Body(Infinity, Infinity); +}; + + +// "Bounding Box" compatibility with Chipmunk-JS +cp.BB = function(l, b, r, t) +{ + return {l:l, b:b, r:r, t:t}; +}; + +// helper function to create a BB +cp.bb = function(l, b, r, t) { + return new cp.BB(l, b, r, t); +}; + + +// +// Some properties +// +// "handle" needed in some cases +Object.defineProperties(cp.Base.prototype, + { + "handle" : { + get : function(){ + return this.getHandle(); + }, + enumerable : true, + configurable : true + } + }); + +// Properties, for Chipmunk-JS compatibility +// Space properties +Object.defineProperties(cp.Space.prototype, + { + "gravity" : { + get : function(){ + return this.getGravity(); + }, + set : function(newValue){ + this.setGravity(newValue); + }, + enumerable : true, + configurable : true + }, + "iterations" : { + get : function(){ + return this.getIterations(); + }, + set : function(newValue){ + this.setIterations(newValue); + }, + enumerable : true, + configurable : true + }, + "damping" : { + get : function(){ + return this.getDamping(); + }, + set : function(newValue){ + this.setDamping(newValue); + }, + enumerable : true, + configurable : true + }, + "staticBody" : { + get : function(){ + return this.getStaticBody(); + }, + enumerable : true, + configurable : true + }, + "idleSpeedThreshold" : { + get : function(){ + return this.getIdleSpeedThreshold(); + }, + set : function(newValue){ + this.setIdleSpeedThreshold(newValue); + }, + enumerable : true, + configurable : true + }, + "sleepTimeThreshold": { + get : function(){ + return this.getSleepTimeThreshold(); + }, + set : function(newValue){ + this.setSleepTimeThreshold(newValue); + }, + enumerable : true, + configurable : true + }, + "collisionSlop": { + get : function(){ + return this.getCollisionSlop(); + }, + set : function(newValue){ + this.setCollisionSlop(newValue); + }, + enumerable : true, + configurable : true + }, + "collisionBias": { + get : function(){ + return this.getCollisionBias(); + }, + set : function(newValue){ + this.setCollisionBias(newValue); + }, + enumerable : true, + configurable : true + }, + "collisionPersistence": { + get : function(){ + return this.getCollisionPersistence(); + }, + set : function(newValue){ + this.setCollisionPersistence(newValue); + }, + enumerable : true, + configurable : true + }, + "enableContactGraph": { + get : function(){ + return this.getEnableContactGraph(); + }, + set : function(newValue){ + this.setEnableContactGraph(newValue); + }, + enumerable : true, + configurable : true + } + }); + +// Body properties +Object.defineProperties(cp.Body.prototype, + { + "a" : { + get : function(){ + return this.getAngle(); + }, + set : function(newValue){ + this.setAngle(newValue); + }, + enumerable : true, + configurable : true + }, + "w" : { + get : function(){ + return this.getAngVel(); + }, + set : function(newValue){ + this.setAngVel(newValue); + }, + enumerable : true, + configurable : true + }, + "p" : { + get : function(){ + return this.getPos(); + }, + set : function(newValue){ + this.setPos(newValue); + }, + enumerable : true, + configurable : true + }, + "v" : { + get : function(){ + return this.getVel(); + }, + set : function(newValue){ + this.setVel(newValue); + }, + enumerable : true, + configurable : true + }, + "i" : { + get : function(){ + return this.getMoment(); + }, + set : function(newValue){ + this.setMoment(newValue); + }, + enumerable : true, + configurable : true + } + + }); diff --git a/samples/WatermelonWithMe/bindings/jsb_constants_cocos2d.js b/samples/WatermelonWithMe/bindings/jsb_constants_cocos2d.js new file mode 100644 index 0000000000..089aaa767e --- /dev/null +++ b/samples/WatermelonWithMe/bindings/jsb_constants_cocos2d.js @@ -0,0 +1,505 @@ +// +// cocos2d constants +// +cc.DIRECTOR_PROJECTION_2D = 0; +cc.DIRECTOR_PROJECTION_3D = 1; + +cc.TEXTURE_PIXELFORMAT_RGBA8888 = 0; +cc.TEXTURE_PIXELFORMAT_RGB888 = 1; +cc.TEXTURE_PIXELFORMAT_RGB565 = 2; +cc.TEXTURE_PIXELFORMAT_A8 = 3; +cc.TEXTURE_PIXELFORMAT_I8 = 4; +cc.TEXTURE_PIXELFORMAT_AI88 = 5; +cc.TEXTURE_PIXELFORMAT_RGBA4444 = 6; +cc.TEXTURE_PIXELFORMAT_RGB5A1 = 7; +cc.TEXTURE_PIXELFORMAT_PVRTC4 = 8; +cc.TEXTURE_PIXELFORMAT_PVRTC4 = 9; +cc.TEXTURE_PIXELFORMAT_DEFAULT = cc.TEXTURE_PIXELFORMAT_RGBA8888; + +cc.TEXT_ALIGNMENT_LEFT = 0; +cc.TEXT_ALIGNMENT_CENTER = 1; +cc.TEXT_ALIGNMENT_RIGHT = 2; + +cc.VERTICAL_TEXT_ALIGNMENT_TOP = 0; +cc.VERTICAL_TEXT_ALIGNMENT_CENTER = 1; +cc.VERTICAL_TEXT_ALIGNMENT_BOTTOM = 2; + +cc.IMAGE_FORMAT_JPEG = 0; +cc.IMAGE_FORMAT_PNG = 0; + +cc.PROGRESS_TIMER_TYPE_RADIAL = 0; +cc.PROGRESS_TIMER_TYPE_BAR = 1; + +cc.PARTICLE_TYPE_FREE = 0; +cc.PARTICLE_TYPE_RELATIVE = 1; +cc.PARTICLE_TYPE_GROUPED = 2; +cc.PARTICLE_DURATION_INFINITY = -1; +cc.PARTICLE_MODE_GRAVITY = 0; +cc.PARTICLE_MODE_RADIUS = 1; +cc.PARTICLE_START_SIZE_EQUAL_TO_END_SIZE = -1; +cc.PARTICLE_START_RADIUS_EQUAL_TO_END_RADIUS = -1; + +cc.TOUCH_ALL_AT_ONCE = 0; +cc.TOUCH_ONE_BY_ONE = 1; + +cc.TMX_TILE_HORIZONTAL_FLAG = 0x80000000; +cc.TMX_TILE_VERTICAL_FLAG = 0x40000000; +cc.TMX_TILE_DIAGONAL_FLAG = 0x20000000; + +cc.TRANSITION_ORIENTATION_LEFT_OVER = 0; +cc.TRANSITION_ORIENTATION_RIGHT_OVER = 1; +cc.TRANSITION_ORIENTATION_UP_OVER = 0; +cc.TRANSITION_ORIENTATION_DOWN_OVER = 1; + +cc.RED = {r:255, g:0, b:0}; +cc.GREEN = {r:0, g:255, b:0}; +cc.BLUE = {r:0, g:0, b:255}; +cc.BLACK = {r:0, g:0, b:0}; +cc.WHITE = {r:255, g:255, b:255}; + +cc.POINT_ZERO = {x:0, y:0}; + +// XXX: This definition is different than cocos2d-html5 +cc.REPEAT_FOREVER = -1; +// reusable objects +cc._reuse_p = [ + {x:0, y:0}, + {x:0, y:0}, + {x:0, y:0}, + {x:0, y:0} +]; + +cc._reuse_p_index = 0; +cc._reuse_size = {width:0, height:0}; +cc._reuse_rect = {x:0, y:0, width:0, height:0}; +cc._reuse_color3b = {r:255, g:255, b:255 }; +cc._reuse_color4b = {r:255, g:255, b:255, a:255 }; + +// +// Point +// +cc.p = function( x, y ) +{ + return {x:x, y:y}; +}; + +cc.g = cc.g || cc.p; +cc._reuse_grid = cc.g(0,0); + +cc.log = cc.log || log; + +// +// Color 3B +// +cc.c3b = function (r, g, b) { + return {r:r, g:g, b:b }; +}; +cc._c3b = function (r, g, b) { + cc._reuse_color3b.r = r; + cc._reuse_color3b.g = g; + cc._reuse_color3b.b = b; + return cc._reuse_color3b; +}; + +// +// Color 4B +// +cc.c4b = function (r, g, b, a) { + return {r:r, g:g, b:b, a:a }; +}; +cc._c4b = function (r, g, b, a) { + cc._reuse_color4b.r = r; + cc._reuse_color4b.g = g; + cc._reuse_color4b.b = b; + cc._reuse_color4b.a = a; + return cc._reuse_color4b; +}; +// compatibility +cc.c4 = cc.c4b; +cc._c4 = cc._c4b; + +// +// Color 4F +// +cc.c4f = function (r, g, b, a) { + return {r:r, g:g, b:b, a:a }; +}; + +// +// Point +// +cc.p = function (x, y) { + return {x:x, y:y}; +}; +cc._p = function (x, y) { + if (cc._reuse_p_index == cc._reuse_p.length) + cc._reuse_p_index = 0; + + var p = cc._reuse_p[ cc._reuse_p_index]; + cc._reuse_p_index++; + p.x = x; + p.y = y; + return p; +}; + +cc.pointEqualToPoint = function (point1, point2) { + return ((point1.x == point2.x) && (point1.y == point2.y)); +}; + +// +// Grid +// +cc.g = function (x, y) { + return {x:x, y:y}; +}; +cc._g = function (x, y) { + cc._reuse_grid.x = x; + cc._reuse_grid.y = y; + return cc._reuse_grid; +}; + +// +// Size +// +cc.size = function (w, h) { + return {width:w, height:h}; +}; +cc._size = function (w, h) { + cc._reuse_size.width = w; + cc._reuse_size.height = h; + return cc._reuse_size; +}; +cc.sizeEqualToSize = function (size1, size2) { + return ((size1.width == size2.width) && (size1.height == size2.height)); +}; + +// +// Rect +// +cc.rect = function (x, y, w, h) { + return {x:x, y:y, width:w, height:h}; +}; +cc._rect = function(x,y,w,h) +{ + cc._reuse_rect.x = x; + cc._reuse_rect.y = y; + cc._reuse_rect.width = w; + cc._reuse_rect.height = h; + return cc._reuse_rect; +}; +cc.rectEqualToRect = function (rect1, rect2) { + return ( rect1.x==rect2.x && rect1.y==rect2.y && rect1.width==rect2.width && rect1.height==rect2.height); +}; + +cc._rect = function (x, y, w, h) { + cc._reuse_rect.x = x; + cc._reuse_rect.y = y; + cc._reuse_rect.width = w; + cc._reuse_rect.height = h; + return cc._reuse_rect; +}; +cc.rectEqualToRect = function (rect1, rect2) { + return ( rect1.x == rect2.x && rect1.y == rect2.y && rect1.width == rect2.width && rect1.height == rect2.height); +}; + +cc.rectContainsRect = function (rect1, rect2) { + if ((rect1.x >= rect2.x) || (rect1.y >= rect2.y) || + ( rect1.x + rect1.width <= rect2.x + rect2.width) || + ( rect1.y + rect1.height <= rect2.y + rect2.height)) + return false; + return true; +}; + +cc.rectGetMaxX = function (rect) { + return (rect.x + rect.width); +}; + +cc.rectGetMidX = function (rect) { + return (rect.x + rect.width / 2.0); +}; + +cc.rectGetMinX = function (rect) { + return rect.x; +}; + +cc.rectGetMaxY = function (rect) { + return(rect.y + rect.height); +}; + +cc.rectGetMidY = function (rect) { + return rect.y + rect.height / 2.0; +}; + +cc.rectGetMinY = function (rect) { + return rect.y; +}; + +cc.rectContainsPoint = function (rect, point) { + var ret = false; + if (point.x >= rect.x && point.x <= rect.x + rect.width && + point.y >= rect.y && point.y <= rect.y + rect.height) { + ret = true; + } + return ret; +}; + + +// XXX Should be done in native +cc.rectIntersectsRect = function (rectA, rectB) { + var bool = !( rectA.x > rectB.x + rectB.width || + rectA.x + rectA.width < rectB.x || + rectA.y > rectB.y + rectB.height || + rectA.y + rectA.height < rectB.y ); + + return bool; +}; + +cc.rectUnion = function (rectA, rectB) { + var rect = cc.rect(0, 0, 0, 0); + rect.x = Math.min(rectA.x, rectB.x); + rect.y = Math.min(rectA.y, rectB.y); + rect.width = Math.max(rectA.x + rectA.width, rectB.x + rectB.width) - rect.x; + rect.height = Math.max(rectA.y + rectA.height, rectB.y + rectB.height) - rect.y; + return rect; +}; + +cc.rectIntersection = function (rectA, rectB) { + var intersection = cc.rect( + Math.max(rectA.x, rectB.x), + Math.max(rectA.y, rectB.y), + 0, 0); + + intersection.width = Math.min(rectA.x + rectA.width, rectB.x + rectB.width) - intersection.x; + intersection.height = Math.min(rectA.y + rectA.height, rectB.y + rectB.height) - intersection.y; + return intersection; +}; + +// +// Array: for cocos2d-html5 compatibility +// +cc.ArrayRemoveObject = function (arr, delObj) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] == delObj) { + arr.splice(i, 1); + } + } +}; + +// +// Helpers +// +cc.dump = function (obj) { + for (var i in obj) + cc.log(i + " = " + obj[i]); +}; + +// dump config info, but only in debug mode +cc.dumpConfig = function () { + if (cc.config.debug) + cc.dump(cc.config); +}; + +// +// Bindings Overrides +// +// MenuItemToggle +cc.MenuItemToggle.create = function( /* var args */) { + + var n = arguments.length; + + if (typeof arguments[n-2] === 'function' || typeof arguments[n-1] === 'function') { + var args = Array.prototype.slice.call(arguments); + var obj = null; + if( typeof arguments[n-2] === 'function' ) + obj = args.pop(); + + var func = args.pop(); + + // create it with arguments, + var item = cc.MenuItemToggle._create.apply(this, args); + + // then set the callback + if( obj !== null ) + item.setCallback(func, obj); + else + item.setCallback(func); + return item; + } else { + return cc.MenuItemToggle._create.apply(this, arguments); + } +}; + +// LabelAtlas +cc.LabelAtlas.create = function( a,b,c,d,e ) { + + var n = arguments.length; + + if ( n == 5) { + return cc.LabelAtlas._create(a,b,c,d,e.charCodeAt(0)); + } else { + return cc.LabelAtlas._create.apply(this, arguments); + } +}; + +// PhysicsDebugNode +cc.PhysicsDebugNode.create = function( space ) { + var s = space; + if( space.handle !== undefined ) + s = space.handle; + return cc.PhysicsDebugNode._create( s ); +}; +cc.PhysicsDebugNode.prototype.setSpace = function( space ) { + var s = space; + if( space.handle !== undefined ) + s = space.handle; + return this._setSpace( s ); +}; + +// PhysicsSprite +cc.PhysicsSprite.prototype.setBody = function( body ) { + var b = body; + if( body.handle !== undefined ) + b = body.handle; + return this._setBody( b ); +}; + + +/** + * Associates a base class with a native superclass + * @function + * @param {object} jsobj subclass + * @param {object} klass superclass + */ +cc.associateWithNative = function (jsobj, superclass_or_instance) { + + try { + // Used when subclassing using the "extend" method + var native = new superclass_or_instance(); + __associateObjWithNative(jsobj, native); + } catch (err) { + // Used when subclassing using the goog.inherits method + __associateObjWithNative(jsobj, superclass_or_instance); + } +}; + +// +// JSB supports 2 official ways to create subclasses +// +// 1) Google "subclasses" borrowed from closure library +// This is the recommended way to do it +// + +cc.inherits = function (childCtor, parentCtor) { + /** @constructor */ + function tempCtor() {}; + tempCtor.prototype = parentCtor.prototype; + childCtor.superClass_ = parentCtor.prototype; + childCtor.prototype = new tempCtor(); + childCtor.prototype.constructor = childCtor; + + // Copy "static" method, but doesn't generate subclasses. +// for( var i in parentCtor ) { +// childCtor[ i ] = parentCtor[ i ]; +// } +}; + +cc.base = function (me, opt_methodName, var_args) { + var caller = arguments.callee.caller; + if (caller.superClass_) { + // This is a constructor. Call the superclass constructor. + ret = caller.superClass_.constructor.apply(me, Array.prototype.slice.call(arguments, 1)); + return ret; + } + + var args = Array.prototype.slice.call(arguments, 2); + var foundCaller = false; + for (var ctor = me.constructor; + ctor; ctor = ctor.superClass_ && ctor.superClass_.constructor) { + if (ctor.prototype[opt_methodName] === caller) { + foundCaller = true; + } else if (foundCaller) { + return ctor.prototype[opt_methodName].apply(me, args); + } + } + + // If we did not find the caller in the prototype chain, + // then one of two things happened: + // 1) The caller is an instance method. + // 2) This method was not called by the right caller. + if (me[opt_methodName] === caller) { + return me.constructor.prototype[opt_methodName].apply(me, args); + } else { + throw Error( + 'cc.base called from a method of one name ' + + 'to a method of a different name'); + } + +}; + + +// +// 2) Using "extend" subclassing +// Simple JavaScript Inheritance By John Resig http://ejohn.org/ +// +cc.Class = function () {}; +cc.Class.extend = function (prop) { + var _super = this.prototype; + + // Instantiate a base class (but only create the instance, + // don't run the init constructor) + initializing = true; + var prototype = new this(); + initializing = false; + fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/; + + // Copy the properties over onto the new prototype + for (var name in prop) { + // Check if we're overwriting an existing function + prototype[name] = typeof prop[name] == "function" && + typeof _super[name] == "function" && fnTest.test(prop[name]) ? + (function (name, fn) { + return function () { + var tmp = this._super; + + // Add a new ._super() method that is the same method + // but on the super-class + this._super = _super[name]; + + // The method only need to be bound temporarily, so we + // remove it when we're done executing + var ret = fn.apply(this, arguments); + this._super = tmp; + + return ret; + }; + })(name, prop[name]) : + prop[name]; + } + + // The dummy class constructor + function Class() { + // All construction is actually done in the init method + if (!initializing && this.ctor) + this.ctor.apply(this, arguments); + } + + // Populate our constructed prototype object + Class.prototype = prototype; + + // Enforce the constructor to be what we expect + Class.prototype.constructor = Class; + + // And make this class extendable + Class.extend = arguments.callee; + + return Class; +}; + +cc.Node.prototype.ctor = function () {}; +cc.Node.extend = cc.Class.extend; +cc.Layer.extend = cc.Class.extend; +cc.LayerGradient.extend = cc.Class.extend; +cc.LayerColor.extend = cc.Class.extend; +cc.Sprite.extend = cc.Class.extend; +cc.MenuItemFont.extend = cc.Class.extend; +cc.Scene.extend = cc.Class.extend; diff --git a/samples/WatermelonWithMe/bindings/jsb_constants_cocosbuilder.js b/samples/WatermelonWithMe/bindings/jsb_constants_cocosbuilder.js new file mode 100644 index 0000000000..306c5e7934 --- /dev/null +++ b/samples/WatermelonWithMe/bindings/jsb_constants_cocosbuilder.js @@ -0,0 +1,118 @@ +// +// CocosBuilder definitions +// + +cc.Reader = {}; + +var _ccbGlobalContext = this; + +cc.Reader.load = function(file, owner, parentSize) +{ + // Load the node graph using the correct function + var reader = cc._Reader.create(); + var node; + + if (owner && parentSize) + { + node = reader.load(file, owner, parentSize); + } + else if (owner) + { + node = reader.load(file,owner); + } + else + { + node = reader.load(file); + } + + // Assign owner callbacks & member variables + if (owner) + { + // Callbacks + var ownerCallbackNames = reader.getOwnerCallbackNames(); + var ownerCallbackNodes = reader.getOwnerCallbackNodes(); + + for (var i = 0; i < ownerCallbackNames.length; i++) + { + var callbackName = ownerCallbackNames[i]; + var callbackNode = ownerCallbackNodes[i]; + + callbackNode.setCallback(owner[callbackName], owner); + } + + // Variables + var ownerOutletNames = reader.getOwnerOutletNames(); + var ownerOutletNodes = reader.getOwnerOutletNodes(); + + for (var i = 0; i < ownerOutletNames.length; i++) + { + var outletName = ownerOutletNames[i]; + var outletNode = ownerOutletNodes[i]; + + owner[outletName] = outletNode; + } + } + + var nodesWithAnimationManagers = reader.getNodesWithAnimationManagers(); + var animationManagersForNodes = reader.getAnimationManagersForNodes(); + + // Attach animation managers to nodes and assign root node callbacks and member variables + for (var i = 0; i < nodesWithAnimationManagers.length; i++) + { + var innerNode = nodesWithAnimationManagers[i]; + var animationManager = animationManagersForNodes[i]; + + innerNode.animationManager = animationManager; + + var documentControllerName = animationManager.getDocumentControllerName(); + if (!documentControllerName) continue; + + // Create a document controller + var controller = new _ccbGlobalContext[documentControllerName](); + controller.controllerName = documentControllerName; + + innerNode.controller = controller; + controller.rootNode = innerNode; + + // Callbacks + var documentCallbackNames = animationManager.getDocumentCallbackNames(); + var documentCallbackNodes = animationManager.getDocumentCallbackNodes(); + + for (var j = 0; j < documentCallbackNames.length; j++) + { + var callbackName = documentCallbackNames[j]; + var callbackNode = documentCallbackNodes[j]; + + callbackNode.setCallback(controller[callbackName], controller); + } + + + // Variables + var documentOutletNames = animationManager.getDocumentOutletNames(); + var documentOutletNodes = animationManager.getDocumentOutletNodes(); + + for (var j = 0; j < documentOutletNames.length; j++) + { + var outletName = documentOutletNames[j]; + var outletNode = documentOutletNodes[j]; + + controller[outletName] = outletNode; + } + + if (typeof(controller.onDidLoadFromCCB) == "function") + { + controller.onDidLoadFromCCB(); + } + } + + return node; +} + +cc.Reader.loadAsScene = function(file, owner, parentSize) +{ + var node = cc.Reader.load(file, owner, parentSize); + var scene = cc.Scene.create(); + scene.addChild( node ); + + return scene; +} diff --git a/samples/WatermelonWithMe/bindings/jsb_constants_gl.js b/samples/WatermelonWithMe/bindings/jsb_constants_gl.js new file mode 100644 index 0000000000..8b9d2f701d --- /dev/null +++ b/samples/WatermelonWithMe/bindings/jsb_constants_gl.js @@ -0,0 +1,23 @@ +// +// OpenGL defines +// + +var gl = gl || {}; +gl.NEAREST = 0x2600; +gl.LINEAR = 0x2601; +gl.REPEAT = 0x2901; +gl.CLAMP_TO_EDGE = 0x812F; +gl.CLAMP_TO_BORDER = 0x812D; +gl.LINEAR_MIPMAP_NEAREST = 0x2701; +gl.NEAREST_MIPMAP_NEAREST = 0x2700; +gl.ZERO = 0; +gl.ONE = 1; +gl.SRC_COLOR = 0x0300; +gl.ONE_MINUS_SRC_COLOR = 0x0301; +gl.SRC_ALPHA = 0x0302; +gl.ONE_MINUS_SRC_ALPHA = 0x0303; +gl.DST_ALPHA = 0x0304; +gl.ONE_MINUS_DST_ALPHA = 0x0305; +gl.DST_COLOR = 0x0306; +gl.ONE_MINUS_DST_COLOR = 0x0307; +gl.SRC_ALPHA_SATURATE = 0x0308; diff --git a/samples/WatermelonWithMe/proj.android/.classpath b/samples/WatermelonWithMe/proj.android/.classpath new file mode 100644 index 0000000000..a4763d1eec --- /dev/null +++ b/samples/WatermelonWithMe/proj.android/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/samples/WatermelonWithMe/proj.android/.project b/samples/WatermelonWithMe/proj.android/.project new file mode 100644 index 0000000000..e27974fd84 --- /dev/null +++ b/samples/WatermelonWithMe/proj.android/.project @@ -0,0 +1,33 @@ + + + TestJavascript + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + diff --git a/samples/WatermelonWithMe/proj.android/AndroidManifest.xml b/samples/WatermelonWithMe/proj.android/AndroidManifest.xml new file mode 100644 index 0000000000..156094ab60 --- /dev/null +++ b/samples/WatermelonWithMe/proj.android/AndroidManifest.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + diff --git a/samples/WatermelonWithMe/proj.android/ant.properties b/samples/WatermelonWithMe/proj.android/ant.properties new file mode 100644 index 0000000000..f8af38bfb4 --- /dev/null +++ b/samples/WatermelonWithMe/proj.android/ant.properties @@ -0,0 +1 @@ +aapt.ignore.assets="!*.pvr.gz:!*.gz:!.svn:!.git:.*:_*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~" diff --git a/samples/WatermelonWithMe/proj.android/build.xml b/samples/WatermelonWithMe/proj.android/build.xml new file mode 100644 index 0000000000..f3fd9b9293 --- /dev/null +++ b/samples/WatermelonWithMe/proj.android/build.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/WatermelonWithMe/proj.android/build_native.sh b/samples/WatermelonWithMe/proj.android/build_native.sh new file mode 100644 index 0000000000..ae23cf7826 --- /dev/null +++ b/samples/WatermelonWithMe/proj.android/build_native.sh @@ -0,0 +1,87 @@ +APPNAME="TestJavascript" + +# options + +buildexternalsfromsource= +PARALLEL_BUILD_FLAG= + +usage(){ +cat << EOF +usage: $0 [options] + +Build C/C++ code for $APPNAME using Android NDK + +OPTIONS: +-s Build externals from source +-p Run make with -j8 option to take advantage of multiple processors +-h this help +EOF +} + +while getopts "sph" OPTION; do +case "$OPTION" in +s) +buildexternalsfromsource=1 +;; +p) +PARALLEL_BUILD_FLAG=\-j8 +;; +h) +usage +exit 0 +;; +esac +done + +# exit this script if any commmand fails +set -e + +# paths + +if [ -z "${NDK_ROOT+aaa}" ];then +echo "please define NDK_ROOT" +exit 1 +fi + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +# ... use paths relative to current directory +COCOS2DX_ROOT="$DIR/../../.." +APP_ROOT="$DIR/.." +APP_ANDROID_ROOT="$DIR" + +echo +echo "Paths" +echo " NDK_ROOT = $NDK_ROOT" +echo " COCOS2DX_ROOT = $COCOS2DX_ROOT" +echo " APP_ROOT = $APP_ROOT" +echo " APP_ANDROID_ROOT = $APP_ANDROID_ROOT" +echo + +# Debug +set -x + +# make sure assets is exist +if [ -d "$APP_ANDROID_ROOT"/assets ]; then + rm -rf "$APP_ANDROID_ROOT"/assets +fi + +mkdir "$APP_ANDROID_ROOT"/assets +mkdir "$APP_ANDROID_ROOT"/assets/res + +# copy "cocos2d-js-tests/res" into "assets/res" +cp -rf "$APP_ROOT"/cocos2d-js-tests/res "$APP_ANDROID_ROOT"/assets + +# copy src/**/*.js from cocos2d-js-tests into assets' root +cp -rf "$APP_ROOT"/cocos2d-js-tests/src "$APP_ANDROID_ROOT"/assets + +# copy bindings/*.js into assets' root +cp -f "$APP_ROOT"/bindings/*.js "$APP_ANDROID_ROOT"/assets + +echo "Using prebuilt externals" +echo + +set -x + +"$NDK_ROOT"/ndk-build $PARALLEL_BUILD_FLAG -C "$APP_ANDROID_ROOT" $* \ + "NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt" \ + NDK_LOG=0 V=0 diff --git a/samples/WatermelonWithMe/proj.android/jni/Android.mk b/samples/WatermelonWithMe/proj.android/jni/Android.mk new file mode 100644 index 0000000000..46c62e42d6 --- /dev/null +++ b/samples/WatermelonWithMe/proj.android/jni/Android.mk @@ -0,0 +1,28 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := watermelonwithme_shared + +LOCAL_MODULE_FILENAME := libwatermelonwithme + +LOCAL_SRC_FILES := watermelonwithme/main.cpp \ + ../../Classes/AppDelegate.cpp + +LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes + +LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static +LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static +LOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_static +LOCAL_WHOLE_STATIC_LIBRARIES += spidermonkey_static +LOCAL_WHOLE_STATIC_LIBRARIES += scriptingcore-spidermonkey + +LOCAL_EXPORT_CFLAGS := -DCOCOS2D_DEBUG=2 -DCOCOS2D_JAVASCRIPT + +include $(BUILD_SHARED_LIBRARY) + +$(call import-module,cocos2dx) +$(call import-module,CocosDenshion/android) +$(call import-module,external/chipmunk) +$(call import-module,scripting/javascript/spidermonkey-android) +$(call import-module,scripting/javascript/bindings) diff --git a/samples/WatermelonWithMe/proj.android/jni/Application.mk b/samples/WatermelonWithMe/proj.android/jni/Application.mk new file mode 100644 index 0000000000..1444a4d607 --- /dev/null +++ b/samples/WatermelonWithMe/proj.android/jni/Application.mk @@ -0,0 +1,3 @@ +APP_STL := gnustl_static +APP_CPPFLAGS := -frtti -DCOCOS2D_JAVASCRIPT=1 +APP_CPPFLAGS += -DCOCOS2D_DEBUG=1 -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 diff --git a/samples/WatermelonWithMe/proj.android/jni/watermelonwithme/main.cpp b/samples/WatermelonWithMe/proj.android/jni/watermelonwithme/main.cpp new file mode 100644 index 0000000000..2f2d1e0c10 --- /dev/null +++ b/samples/WatermelonWithMe/proj.android/jni/watermelonwithme/main.cpp @@ -0,0 +1,45 @@ +#include "AppDelegate.h" +#include "cocos2d.h" +#include "platform/android/jni/JniHelper.h" +#include "CCEventType.h" +#include +#include + +#define LOG_TAG "main" +#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__) + +using namespace cocos2d; + +extern "C" +{ + +jint JNI_OnLoad(JavaVM *vm, void *reserved) +{ + JniHelper::setJavaVM(vm); + + return JNI_VERSION_1_4; +} + +void Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeInit(JNIEnv* env, jobject thiz, jint w, jint h) +{ + if (!CCDirector::sharedDirector()->getOpenGLView()) + { + CCEGLView *view = CCEGLView::sharedOpenGLView(); + view->setFrameSize(w, h); + + AppDelegate *pAppDelegate = new AppDelegate(); + CCApplication::sharedApplication()->run(); + } + else + { + ccDrawInit(); + ccGLInvalidateStateCache(); + + CCShaderCache::sharedShaderCache()->reloadDefaultShaders(); + CCTextureCache::reloadAllTextures(); + CCNotificationCenter::sharedNotificationCenter()->postNotification(EVNET_COME_TO_FOREGROUND, NULL); + CCDirector::sharedDirector()->setGLDefaultValues(); + } +} + +} diff --git a/samples/WatermelonWithMe/proj.android/ndkgdb.sh b/samples/WatermelonWithMe/proj.android/ndkgdb.sh new file mode 100644 index 0000000000..5df7332ceb --- /dev/null +++ b/samples/WatermelonWithMe/proj.android/ndkgdb.sh @@ -0,0 +1,47 @@ +APPNAME="TestJavascript" +APP_ANDROID_NAME="org.cocos2dx.testjavascript" + +if [ -z "${SDK_ROOT+aaa}" ]; then +# ... if SDK_ROOT is not set, use "$HOME/bin/android-sdk" + SDK_ROOT="$HOME/bin/android-sdk" +fi + +if [ -z "${NDK_ROOT+aaa}" ]; then +# ... if NDK_ROOT is not set, use "$HOME/bin/android-ndk" + NDK_ROOT="$HOME/bin/android-ndk" +fi + +if [ -z "${COCOS2DX_ROOT+aaa}" ]; then +# ... if COCOS2DX_ROOT is not set +# ... find current working directory + DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +# ... use paths relative to current directory + COCOS2DX_ROOT="$DIR/../../.." + APP_ROOT="$DIR/.." + APP_ANDROID_ROOT="$DIR" +else + APP_ROOT="$COCOS2DX_ROOT/samples/$APPNAME" + APP_ANDROID_ROOT="$COCOS2DX_ROOT/samples/$APPNAME/proj.android" +fi + +echo "NDK_ROOT = $NDK_ROOT" +echo "SDK_ROOT = $SDK_ROOT" +echo "COCOS2DX_ROOT = $COCOS2DX_ROOT" +echo "APP_ROOT = $APP_ROOT" +echo "APP_ANDROID_ROOT = $APP_ANDROID_ROOT" +echo "APP_ANDROID_NAME = $APP_ANDROID_NAME" + +echo +echo "Killing and restarting ${APP_ANDROID_NAME}" +echo + +set -x + +"${SDK_ROOT}"/platform-tools/adb shell am force-stop "${APP_ANDROID_NAME}" + +NDK_MODULE_PATH="${COCOS2DX_ROOT}":"${COCOS2DX_ROOT}"/cocos2dx/platform/third_party/android/prebuilt \ + "${NDK_ROOT}"/ndk-gdb \ + --adb="${SDK_ROOT}"/platform-tools/adb \ + --verbose \ + --start \ + --force diff --git a/samples/WatermelonWithMe/proj.android/proguard-project.txt b/samples/WatermelonWithMe/proj.android/proguard-project.txt new file mode 100644 index 0000000000..f2fe1559a2 --- /dev/null +++ b/samples/WatermelonWithMe/proj.android/proguard-project.txt @@ -0,0 +1,20 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# 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 *; +#} diff --git a/samples/WatermelonWithMe/proj.android/project.properties b/samples/WatermelonWithMe/proj.android/project.properties new file mode 100644 index 0000000000..d5f90ebab1 --- /dev/null +++ b/samples/WatermelonWithMe/proj.android/project.properties @@ -0,0 +1,13 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "ant.properties", and override values to adapt the script to your +# project structure. + +# Project target. +target=android-8 + +android.library.reference.1=../../../cocos2dx/platform/android/java diff --git a/samples/WatermelonWithMe/proj.android/res/values/strings.xml b/samples/WatermelonWithMe/proj.android/res/values/strings.xml new file mode 100644 index 0000000000..fbcddf55ac --- /dev/null +++ b/samples/WatermelonWithMe/proj.android/res/values/strings.xml @@ -0,0 +1,4 @@ + + + TestJavascript + diff --git a/samples/WatermelonWithMe/proj.android/src/org/cocos2dx/testjavascript/TestJavascript.java b/samples/WatermelonWithMe/proj.android/src/org/cocos2dx/testjavascript/TestJavascript.java new file mode 100644 index 0000000000..69117f4a73 --- /dev/null +++ b/samples/WatermelonWithMe/proj.android/src/org/cocos2dx/testjavascript/TestJavascript.java @@ -0,0 +1,39 @@ +/**************************************************************************** +Copyright (c) 2010-2012 cocos2d-x.org + +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.testjavascript; + +import org.cocos2dx.lib.Cocos2dxActivity; + +import android.os.Bundle; + +public class TestJavascript extends Cocos2dxActivity{ + + protected void onCreate(Bundle savedInstanceState){ + super.onCreate(savedInstanceState); + } + + static { + System.loadLibrary("testjavascript"); + } +} diff --git a/samples/WatermelonWithMe/proj.ios/AppController.h b/samples/WatermelonWithMe/proj.ios/AppController.h new file mode 100644 index 0000000000..10287bd13f --- /dev/null +++ b/samples/WatermelonWithMe/proj.ios/AppController.h @@ -0,0 +1,17 @@ +// +// testjsAppController.h +// testjs +// +// Created by Rolando Abarca on 3/19/12. +// Copyright __MyCompanyName__ 2012. All rights reserved. +// + +@class RootViewController; + +@interface AppController : NSObject { + UIWindow *window; + RootViewController *viewController; +} + +@end + diff --git a/samples/WatermelonWithMe/proj.ios/AppController.mm b/samples/WatermelonWithMe/proj.ios/AppController.mm new file mode 100644 index 0000000000..3e3e5c9474 --- /dev/null +++ b/samples/WatermelonWithMe/proj.ios/AppController.mm @@ -0,0 +1,119 @@ +// +// testjsAppController.mm +// testjs +// +// Created by Rolando Abarca on 3/19/12. +// Copyright __MyCompanyName__ 2012. All rights reserved. +// +#import +#import "AppController.h" +#import "cocos2d.h" +#import "EAGLView.h" +#import "AppDelegate.h" + +#import "RootViewController.h" + +@implementation AppController + +#pragma mark - +#pragma mark Application lifecycle + +// cocos2d application instance +static AppDelegate s_sharedApplication; + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + + // 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]]; + EAGLView *__glView = [EAGLView viewWithFrame: [window bounds] + pixelFormat: kEAGLColorFormatRGBA8 + depthFormat: GL_DEPTH_COMPONENT16 //_OES + preserveBackbuffer: NO + sharegroup: nil + multiSampling: NO + numberOfSamples: 0 ]; + + // Use RootViewController manage EAGLView + viewController = [[RootViewController alloc] initWithNibName:nil bundle:nil]; + viewController.wantsFullScreenLayout = YES; + viewController.view = __glView; + + // 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: YES]; + + cocos2d::CCApplication::sharedApplication()->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. + */ + cocos2d::CCDirector::sharedDirector()->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. + */ + cocos2d::CCDirector::sharedDirector()->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::CCApplication::sharedApplication()->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::CCApplication::sharedApplication()->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. + */ + cocos2d::CCDirector::sharedDirector()->purgeCachedData(); +} + + +- (void)dealloc { + [super dealloc]; +} + + +@end + diff --git a/samples/WatermelonWithMe/proj.ios/Default-568h@2x.png.REMOVED.git-id b/samples/WatermelonWithMe/proj.ios/Default-568h@2x.png.REMOVED.git-id new file mode 100644 index 0000000000..8f5838f3a8 --- /dev/null +++ b/samples/WatermelonWithMe/proj.ios/Default-568h@2x.png.REMOVED.git-id @@ -0,0 +1 @@ +66c6d1cead373b45218424f6a82f370897e443e4 \ No newline at end of file diff --git a/samples/WatermelonWithMe/proj.ios/Default@2x.png.REMOVED.git-id b/samples/WatermelonWithMe/proj.ios/Default@2x.png.REMOVED.git-id new file mode 100644 index 0000000000..8843505b20 --- /dev/null +++ b/samples/WatermelonWithMe/proj.ios/Default@2x.png.REMOVED.git-id @@ -0,0 +1 @@ +84689888a14a2123d2b39f7f2f61be8c15207479 \ No newline at end of file diff --git a/samples/WatermelonWithMe/proj.ios/Prefix.pch b/samples/WatermelonWithMe/proj.ios/Prefix.pch new file mode 100644 index 0000000000..b056d8694a --- /dev/null +++ b/samples/WatermelonWithMe/proj.ios/Prefix.pch @@ -0,0 +1,8 @@ +// +// Prefix header for all source files of the 'testjs' target in the 'testjs' project +// + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/samples/WatermelonWithMe/proj.ios/RootViewController.h b/samples/WatermelonWithMe/proj.ios/RootViewController.h new file mode 100644 index 0000000000..a40c2edd28 --- /dev/null +++ b/samples/WatermelonWithMe/proj.ios/RootViewController.h @@ -0,0 +1,33 @@ +/**************************************************************************** + Copyright (c) 2010-2011 cocos2d-x.org + Copyright (c) 2010 Ricardo Quesada + + 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 + + +@interface RootViewController : UIViewController { + +} + +@end diff --git a/samples/WatermelonWithMe/proj.ios/RootViewController.mm b/samples/WatermelonWithMe/proj.ios/RootViewController.mm new file mode 100644 index 0000000000..7a0d59ccc9 --- /dev/null +++ b/samples/WatermelonWithMe/proj.ios/RootViewController.mm @@ -0,0 +1,73 @@ +// +// testjsAppController.h +// testjs +// +// Created by Rolando Abarca on 3/19/12. +// Copyright __MyCompanyName__ 2012. All rights reserved. +// + +#import "RootViewController.h" + + +@implementation RootViewController + +/* + // The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad. +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { + if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) { + // Custom initialization + } + return self; +} +*/ + +/* +// Implement loadView to create a view hierarchy programmatically, without using a nib. +- (void)loadView { +} +*/ + +/* +// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. +- (void)viewDidLoad { + [super viewDidLoad]; +} + +*/ +// Override to allow orientations other than the default portrait orientation. +// This method is deprecated on ios6 +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + return UIInterfaceOrientationIsLandscape( interfaceOrientation ); +} + +// For ios6, use supportedInterfaceOrientations & shouldAutorotate instead +- (NSUInteger) supportedInterfaceOrientations{ +#ifdef __IPHONE_6_0 + return UIInterfaceOrientationMaskAllButUpsideDown; +#endif +} + +- (BOOL) shouldAutorotate { + return YES; +} + +- (void)didReceiveMemoryWarning { + // Releases the view if it doesn't have a superview. + [super didReceiveMemoryWarning]; + + // Release any cached data, images, etc that aren't in use. +} + +- (void)viewDidUnload { + [super viewDidUnload]; + // Release any retained subviews of the main view. + // e.g. self.myOutlet = nil; +} + + +- (void)dealloc { + [super dealloc]; +} + + +@end diff --git a/samples/WatermelonWithMe/proj.ios/WatermelonWithMe.xcodeproj/project.pbxproj b/samples/WatermelonWithMe/proj.ios/WatermelonWithMe.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..03f7e357e8 --- /dev/null +++ b/samples/WatermelonWithMe/proj.ios/WatermelonWithMe.xcodeproj/project.pbxproj @@ -0,0 +1,1188 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 15384E5816119CC30021DC07 /* cocos2d_specifics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E4016119CC30021DC07 /* cocos2d_specifics.cpp */; }; + 15384E5916119CC30021DC07 /* cocosjs_manual_conversions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E4216119CC30021DC07 /* cocosjs_manual_conversions.cpp */; }; + 15384E5A16119CC30021DC07 /* cocos2dx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E4516119CC30021DC07 /* cocos2dx.cpp */; }; + 15384E5D16119CC30021DC07 /* js_bindings_ccbreader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E4916119CC30021DC07 /* js_bindings_ccbreader.cpp */; }; + 15384E6016119CC30021DC07 /* js_manual_conversions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E5016119CC30021DC07 /* js_manual_conversions.cpp */; }; + 15384E6116119CC30021DC07 /* ScriptingCore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E5216119CC30021DC07 /* ScriptingCore.cpp */; }; + 15384ED716119D5E0021DC07 /* CCBAnimationManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E6516119D5E0021DC07 /* CCBAnimationManager.cpp */; }; + 15384ED816119D5E0021DC07 /* CCBFileLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E6716119D5E0021DC07 /* CCBFileLoader.cpp */; }; + 15384ED916119D5E0021DC07 /* CCBKeyframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E6916119D5E0021DC07 /* CCBKeyframe.cpp */; }; + 15384EDA16119D5E0021DC07 /* CCBReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E6C16119D5E0021DC07 /* CCBReader.cpp */; }; + 15384EDB16119D5E0021DC07 /* CCBSequence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E6F16119D5E0021DC07 /* CCBSequence.cpp */; }; + 15384EDC16119D5E0021DC07 /* CCBSequenceProperty.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E7116119D5E0021DC07 /* CCBSequenceProperty.cpp */; }; + 15384EDD16119D5E0021DC07 /* CCBValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E7316119D5E0021DC07 /* CCBValue.cpp */; }; + 15384EDE16119D5E0021DC07 /* CCControlButtonLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E7516119D5E0021DC07 /* CCControlButtonLoader.cpp */; }; + 15384EDF16119D5E0021DC07 /* CCControlLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E7716119D5E0021DC07 /* CCControlLoader.cpp */; }; + 15384EE016119D5E0021DC07 /* CCData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E7916119D5E0021DC07 /* CCData.cpp */; }; + 15384EE116119D5E0021DC07 /* CCLabelBMFontLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E7B16119D5E0021DC07 /* CCLabelBMFontLoader.cpp */; }; + 15384EE216119D5E0021DC07 /* CCLabelTTFLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E7D16119D5E0021DC07 /* CCLabelTTFLoader.cpp */; }; + 15384EE316119D5E0021DC07 /* CCLayerColorLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E7F16119D5E0021DC07 /* CCLayerColorLoader.cpp */; }; + 15384EE416119D5E0021DC07 /* CCLayerGradientLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E8116119D5E0021DC07 /* CCLayerGradientLoader.cpp */; }; + 15384EE516119D5E0021DC07 /* CCLayerLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E8316119D5E0021DC07 /* CCLayerLoader.cpp */; }; + 15384EE616119D5E0021DC07 /* CCMenuItemImageLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E8516119D5E0021DC07 /* CCMenuItemImageLoader.cpp */; }; + 15384EE716119D5E0021DC07 /* CCMenuItemLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E8716119D5E0021DC07 /* CCMenuItemLoader.cpp */; }; + 15384EE816119D5E0021DC07 /* CCNode+CCBRelativePositioning.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E8A16119D5E0021DC07 /* CCNode+CCBRelativePositioning.cpp */; }; + 15384EE916119D5E0021DC07 /* CCNodeLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E8C16119D5E0021DC07 /* CCNodeLoader.cpp */; }; + 15384EEA16119D5E0021DC07 /* CCNodeLoaderLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E8E16119D5E0021DC07 /* CCNodeLoaderLibrary.cpp */; }; + 15384EEB16119D5E0021DC07 /* CCParticleSystemQuadLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E9116119D5E0021DC07 /* CCParticleSystemQuadLoader.cpp */; }; + 15384EEC16119D5E0021DC07 /* CCScale9SpriteLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E9316119D5E0021DC07 /* CCScale9SpriteLoader.cpp */; }; + 15384EED16119D5E0021DC07 /* CCScrollViewLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E9516119D5E0021DC07 /* CCScrollViewLoader.cpp */; }; + 15384EEE16119D5E0021DC07 /* CCSpriteLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384E9716119D5E0021DC07 /* CCSpriteLoader.cpp */; }; + 15384EFB16119D5E0021DC07 /* CCEditBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384EB716119D5E0021DC07 /* CCEditBox.cpp */; }; + 15384EFD16119D5E0021DC07 /* CCEditBoxImplIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 15384EBD16119D5E0021DC07 /* CCEditBoxImplIOS.mm */; }; + 15384EFE16119D5E0021DC07 /* EditBoxImplIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 15384EBF16119D5E0021DC07 /* EditBoxImplIOS.mm */; }; + 15384EFF16119D5E0021DC07 /* CCScrollView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384EC116119D5E0021DC07 /* CCScrollView.cpp */; }; + 15384F0016119D5E0021DC07 /* CCSorting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384EC316119D5E0021DC07 /* CCSorting.cpp */; }; + 15384F0116119D5E0021DC07 /* CCTableView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384EC516119D5E0021DC07 /* CCTableView.cpp */; }; + 15384F0216119D5E0021DC07 /* CCTableViewCell.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15384EC716119D5E0021DC07 /* CCTableViewCell.cpp */; }; + 15426FC315B5742200712A7F /* libcocos2dx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 15426AF115B5733200712A7F /* libcocos2dx.a */; }; + 15426FE615B5743C00712A7F /* CDAudioManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 15426FD015B5743C00712A7F /* CDAudioManager.m */; }; + 15426FE715B5743C00712A7F /* CDOpenALSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 15426FD315B5743C00712A7F /* CDOpenALSupport.m */; }; + 15426FE815B5743C00712A7F /* CocosDenshion.m in Sources */ = {isa = PBXBuildFile; fileRef = 15426FD515B5743C00712A7F /* CocosDenshion.m */; }; + 15426FE915B5743C00712A7F /* SimpleAudioEngine.mm in Sources */ = {isa = PBXBuildFile; fileRef = 15426FD615B5743C00712A7F /* SimpleAudioEngine.mm */; }; + 15426FEA15B5743C00712A7F /* SimpleAudioEngine_objc.m in Sources */ = {isa = PBXBuildFile; fileRef = 15426FD815B5743C00712A7F /* SimpleAudioEngine_objc.m */; }; + 15CFE1A61612FD0E00BF2188 /* CCControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15CFE18D1612FD0E00BF2188 /* CCControl.cpp */; }; + 15CFE1A71612FD0E00BF2188 /* CCControlButton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15CFE18F1612FD0E00BF2188 /* CCControlButton.cpp */; }; + 15CFE1A81612FD0E00BF2188 /* CCControlColourPicker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15CFE1911612FD0E00BF2188 /* CCControlColourPicker.cpp */; }; + 15CFE1A91612FD0E00BF2188 /* CCControlHuePicker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15CFE1941612FD0E00BF2188 /* CCControlHuePicker.cpp */; }; + 15CFE1AA1612FD0E00BF2188 /* CCControlPotentiometer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15CFE1961612FD0E00BF2188 /* CCControlPotentiometer.cpp */; }; + 15CFE1AB1612FD0E00BF2188 /* CCControlSaturationBrightnessPicker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15CFE1981612FD0E00BF2188 /* CCControlSaturationBrightnessPicker.cpp */; }; + 15CFE1AC1612FD0E00BF2188 /* CCControlSlider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15CFE19A1612FD0E00BF2188 /* CCControlSlider.cpp */; }; + 15CFE1AD1612FD0E00BF2188 /* CCControlStepper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15CFE19C1612FD0E00BF2188 /* CCControlStepper.cpp */; }; + 15CFE1AE1612FD0E00BF2188 /* CCControlSwitch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15CFE19E1612FD0E00BF2188 /* CCControlSwitch.cpp */; }; + 15CFE1AF1612FD0E00BF2188 /* CCControlUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15CFE1A01612FD0E00BF2188 /* CCControlUtils.cpp */; }; + 15CFE1B01612FD0E00BF2188 /* CCInvocation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15CFE1A21612FD0E00BF2188 /* CCInvocation.cpp */; }; + 15CFE1B11612FD0E00BF2188 /* CCScale9Sprite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15CFE1A41612FD0E00BF2188 /* CCScale9Sprite.cpp */; }; + 15DA882A1627C44800155276 /* jsb_constants.js in Resources */ = {isa = PBXBuildFile; fileRef = 15DA88251627C44800155276 /* jsb_constants.js */; }; + 15DA882B1627C44800155276 /* jsb_constants_chipmunk.js in Resources */ = {isa = PBXBuildFile; fileRef = 15DA88261627C44800155276 /* jsb_constants_chipmunk.js */; }; + 15DA882C1627C44800155276 /* jsb_constants_cocos2d.js in Resources */ = {isa = PBXBuildFile; fileRef = 15DA88271627C44800155276 /* jsb_constants_cocos2d.js */; }; + 15DA882D1627C44800155276 /* jsb_constants_cocosbuilder.js in Resources */ = {isa = PBXBuildFile; fileRef = 15DA88281627C44800155276 /* jsb_constants_cocosbuilder.js */; }; + 15DA882E1627C44800155276 /* jsb_constants_gl.js in Resources */ = {isa = PBXBuildFile; fileRef = 15DA88291627C44800155276 /* jsb_constants_gl.js */; }; + 15DA88B71627C62000155276 /* cocos2dxapi.js in Resources */ = {isa = PBXBuildFile; fileRef = 15DA88B61627C62000155276 /* cocos2dxapi.js */; }; + 15E2AE9E165DC52C00F7743F /* CCPhysicsDebugNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15E2AE9A165DC52C00F7743F /* CCPhysicsDebugNode.cpp */; }; + 15E2AE9F165DC52C00F7743F /* CCPhysicsSprite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15E2AE9C165DC52C00F7743F /* CCPhysicsSprite.cpp */; }; + 15E2AEA3165DC6DD00F7743F /* res in Resources */ = {isa = PBXBuildFile; fileRef = 15E2AEA2165DC6DD00F7743F /* res */; }; + 15E2AEA5165DC73200F7743F /* src in Resources */ = {isa = PBXBuildFile; fileRef = 15E2AEA4165DC73200F7743F /* src */; }; + 262829DB15EC7196002C4240 /* chipmunk.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829AC15EC7196002C4240 /* chipmunk.c */; }; + 262829DD15EC7196002C4240 /* cpConstraint.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829AF15EC7196002C4240 /* cpConstraint.c */; }; + 262829DE15EC7196002C4240 /* cpDampedRotarySpring.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829B015EC7196002C4240 /* cpDampedRotarySpring.c */; }; + 262829DF15EC7196002C4240 /* cpDampedSpring.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829B115EC7196002C4240 /* cpDampedSpring.c */; }; + 262829E015EC7196002C4240 /* cpGearJoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829B215EC7196002C4240 /* cpGearJoint.c */; }; + 262829E115EC7196002C4240 /* cpGrooveJoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829B315EC7196002C4240 /* cpGrooveJoint.c */; }; + 262829E215EC7196002C4240 /* cpPinJoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829B415EC7196002C4240 /* cpPinJoint.c */; }; + 262829E315EC7196002C4240 /* cpPivotJoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829B515EC7196002C4240 /* cpPivotJoint.c */; }; + 262829E415EC7196002C4240 /* cpRatchetJoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829B615EC7196002C4240 /* cpRatchetJoint.c */; }; + 262829E515EC7196002C4240 /* cpRotaryLimitJoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829B715EC7196002C4240 /* cpRotaryLimitJoint.c */; }; + 262829E615EC7196002C4240 /* cpSimpleMotor.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829B815EC7196002C4240 /* cpSimpleMotor.c */; }; + 262829E715EC7196002C4240 /* cpSlideJoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829B915EC7196002C4240 /* cpSlideJoint.c */; }; + 262829E815EC7196002C4240 /* cpArbiter.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829BA15EC7196002C4240 /* cpArbiter.c */; }; + 262829E915EC7196002C4240 /* cpArray.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829BB15EC7196002C4240 /* cpArray.c */; }; + 262829EA15EC7196002C4240 /* cpBB.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829BC15EC7196002C4240 /* cpBB.c */; }; + 262829EB15EC7196002C4240 /* cpBBTree.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829BD15EC7196002C4240 /* cpBBTree.c */; }; + 262829EC15EC7196002C4240 /* cpBody.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829BE15EC7196002C4240 /* cpBody.c */; }; + 262829ED15EC7196002C4240 /* cpCollision.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829BF15EC7196002C4240 /* cpCollision.c */; }; + 262829EE15EC7196002C4240 /* cpHashSet.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829C015EC7196002C4240 /* cpHashSet.c */; }; + 262829EF15EC7196002C4240 /* cpPolyShape.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829C115EC7196002C4240 /* cpPolyShape.c */; }; + 262829F015EC7196002C4240 /* cpShape.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829C215EC7196002C4240 /* cpShape.c */; }; + 262829F115EC7196002C4240 /* cpSpace.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829C315EC7196002C4240 /* cpSpace.c */; }; + 262829F215EC7196002C4240 /* cpSpaceComponent.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829C415EC7196002C4240 /* cpSpaceComponent.c */; }; + 262829F315EC7196002C4240 /* cpSpaceHash.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829C515EC7196002C4240 /* cpSpaceHash.c */; }; + 262829F415EC7196002C4240 /* cpSpaceQuery.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829C615EC7196002C4240 /* cpSpaceQuery.c */; }; + 262829F515EC7196002C4240 /* cpSpaceStep.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829C715EC7196002C4240 /* cpSpaceStep.c */; }; + 262829F615EC7196002C4240 /* cpSpatialIndex.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829C815EC7196002C4240 /* cpSpatialIndex.c */; }; + 262829F715EC7196002C4240 /* cpSweep1D.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829C915EC7196002C4240 /* cpSweep1D.c */; }; + 262829F815EC7196002C4240 /* cpVect.c in Sources */ = {isa = PBXBuildFile; fileRef = 262829CA15EC7196002C4240 /* cpVect.c */; }; + 263B98D016548E4D00228D8A /* js_bindings_chipmunk_auto_classes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 263B98C716548E4D00228D8A /* js_bindings_chipmunk_auto_classes.cpp */; }; + 263B98D116548E4D00228D8A /* js_bindings_chipmunk_registration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 263B98CC16548E4D00228D8A /* js_bindings_chipmunk_registration.cpp */; }; + 263B98D216548E4D00228D8A /* js_bindings_core.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 263B98CE16548E4D00228D8A /* js_bindings_core.cpp */; }; + 263B98D616548EB700228D8A /* js_bindings_chipmunk_functions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 263B98D316548EB700228D8A /* js_bindings_chipmunk_functions.cpp */; }; + 263B98D716548EB700228D8A /* js_bindings_chipmunk_manual.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 263B98D516548EB700228D8A /* js_bindings_chipmunk_manual.cpp */; }; + A92275421517C094001B78AA /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275411517C094001B78AA /* QuartzCore.framework */; }; + A92275441517C094001B78AA /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275431517C094001B78AA /* OpenGLES.framework */; }; + A92275461517C094001B78AA /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275451517C094001B78AA /* OpenAL.framework */; }; + A92275481517C094001B78AA /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275471517C094001B78AA /* AudioToolbox.framework */; }; + A922754A1517C094001B78AA /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275491517C094001B78AA /* AVFoundation.framework */; }; + A922754C1517C094001B78AA /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A922754B1517C094001B78AA /* UIKit.framework */; }; + A922754E1517C094001B78AA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A922754D1517C094001B78AA /* Foundation.framework */; }; + A92275501517C094001B78AA /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A922754F1517C094001B78AA /* CoreGraphics.framework */; }; + D446FDA316102D7D000ADA7B /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = D446FDA216102D7D000ADA7B /* Default.png */; }; + D446FDA516102D82000ADA7B /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D446FDA416102D82000ADA7B /* Default@2x.png */; }; + D446FDA716102D86000ADA7B /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D446FDA616102D86000ADA7B /* Default-568h@2x.png */; }; + D45446D3156DE74F00887EB5 /* AppController.mm in Sources */ = {isa = PBXBuildFile; fileRef = D45446CE156DE74F00887EB5 /* AppController.mm */; }; + D45446D4156DE74F00887EB5 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D45446CF156DE74F00887EB5 /* main.m */; }; + D45446D5156DE74F00887EB5 /* RootViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = D45446D2156DE74F00887EB5 /* RootViewController.mm */; }; + D454520A156E22B400887EB5 /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D4545209156E22B400887EB5 /* libxml2.dylib */; }; + D454520C156E22BD00887EB5 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D454520B156E22BD00887EB5 /* libz.dylib */; }; + D4545227156E28EF00887EB5 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D4545215156E28EF00887EB5 /* AppDelegate.cpp */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 15426AF015B5733200712A7F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15426AE915B5733200712A7F /* cocos2dx.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 1551A33F158F2AB200E66CFE; + remoteInfo = cocos2dx; + }; + 15426FC115B5741900712A7F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 15426AE915B5733200712A7F /* cocos2dx.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1551A33E158F2AB200E66CFE; + remoteInfo = cocos2dx; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 15384E4016119CC30021DC07 /* cocos2d_specifics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cocos2d_specifics.cpp; sourceTree = ""; }; + 15384E4116119CC30021DC07 /* cocos2d_specifics.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = cocos2d_specifics.hpp; sourceTree = ""; }; + 15384E4216119CC30021DC07 /* cocosjs_manual_conversions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cocosjs_manual_conversions.cpp; sourceTree = ""; }; + 15384E4316119CC30021DC07 /* cocosjs_manual_conversions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocosjs_manual_conversions.h; sourceTree = ""; }; + 15384E4516119CC30021DC07 /* cocos2dx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cocos2dx.cpp; sourceTree = ""; }; + 15384E4616119CC30021DC07 /* cocos2dx.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = cocos2dx.hpp; sourceTree = ""; }; + 15384E4916119CC30021DC07 /* js_bindings_ccbreader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = js_bindings_ccbreader.cpp; sourceTree = ""; }; + 15384E4A16119CC30021DC07 /* js_bindings_ccbreader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = js_bindings_ccbreader.h; sourceTree = ""; }; + 15384E4F16119CC30021DC07 /* js_bindings_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = js_bindings_config.h; sourceTree = ""; }; + 15384E5016119CC30021DC07 /* js_manual_conversions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = js_manual_conversions.cpp; sourceTree = ""; }; + 15384E5116119CC30021DC07 /* js_manual_conversions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = js_manual_conversions.h; sourceTree = ""; }; + 15384E5216119CC30021DC07 /* ScriptingCore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptingCore.cpp; sourceTree = ""; }; + 15384E5316119CC30021DC07 /* ScriptingCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptingCore.h; sourceTree = ""; }; + 15384E5416119CC30021DC07 /* spidermonkey_specifics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spidermonkey_specifics.h; sourceTree = ""; }; + 15384E5516119CC30021DC07 /* uthash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = uthash.h; sourceTree = ""; }; + 15384E6516119D5E0021DC07 /* CCBAnimationManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCBAnimationManager.cpp; sourceTree = ""; }; + 15384E6616119D5E0021DC07 /* CCBAnimationManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCBAnimationManager.h; sourceTree = ""; }; + 15384E6716119D5E0021DC07 /* CCBFileLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCBFileLoader.cpp; sourceTree = ""; }; + 15384E6816119D5E0021DC07 /* CCBFileLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCBFileLoader.h; sourceTree = ""; }; + 15384E6916119D5E0021DC07 /* CCBKeyframe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCBKeyframe.cpp; sourceTree = ""; }; + 15384E6A16119D5E0021DC07 /* CCBKeyframe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCBKeyframe.h; sourceTree = ""; }; + 15384E6B16119D5E0021DC07 /* CCBMemberVariableAssigner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCBMemberVariableAssigner.h; sourceTree = ""; }; + 15384E6C16119D5E0021DC07 /* CCBReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCBReader.cpp; sourceTree = ""; }; + 15384E6D16119D5E0021DC07 /* CCBReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCBReader.h; sourceTree = ""; }; + 15384E6E16119D5E0021DC07 /* CCBSelectorResolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCBSelectorResolver.h; sourceTree = ""; }; + 15384E6F16119D5E0021DC07 /* CCBSequence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCBSequence.cpp; sourceTree = ""; }; + 15384E7016119D5E0021DC07 /* CCBSequence.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCBSequence.h; sourceTree = ""; }; + 15384E7116119D5E0021DC07 /* CCBSequenceProperty.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCBSequenceProperty.cpp; sourceTree = ""; }; + 15384E7216119D5E0021DC07 /* CCBSequenceProperty.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCBSequenceProperty.h; sourceTree = ""; }; + 15384E7316119D5E0021DC07 /* CCBValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCBValue.cpp; sourceTree = ""; }; + 15384E7416119D5E0021DC07 /* CCBValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCBValue.h; sourceTree = ""; }; + 15384E7516119D5E0021DC07 /* CCControlButtonLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCControlButtonLoader.cpp; sourceTree = ""; }; + 15384E7616119D5E0021DC07 /* CCControlButtonLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCControlButtonLoader.h; sourceTree = ""; }; + 15384E7716119D5E0021DC07 /* CCControlLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCControlLoader.cpp; sourceTree = ""; }; + 15384E7816119D5E0021DC07 /* CCControlLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCControlLoader.h; sourceTree = ""; }; + 15384E7916119D5E0021DC07 /* CCData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCData.cpp; sourceTree = ""; }; + 15384E7A16119D5E0021DC07 /* CCData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCData.h; sourceTree = ""; }; + 15384E7B16119D5E0021DC07 /* CCLabelBMFontLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCLabelBMFontLoader.cpp; sourceTree = ""; }; + 15384E7C16119D5E0021DC07 /* CCLabelBMFontLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCLabelBMFontLoader.h; sourceTree = ""; }; + 15384E7D16119D5E0021DC07 /* CCLabelTTFLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCLabelTTFLoader.cpp; sourceTree = ""; }; + 15384E7E16119D5E0021DC07 /* CCLabelTTFLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCLabelTTFLoader.h; sourceTree = ""; }; + 15384E7F16119D5E0021DC07 /* CCLayerColorLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCLayerColorLoader.cpp; sourceTree = ""; }; + 15384E8016119D5E0021DC07 /* CCLayerColorLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCLayerColorLoader.h; sourceTree = ""; }; + 15384E8116119D5E0021DC07 /* CCLayerGradientLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCLayerGradientLoader.cpp; sourceTree = ""; }; + 15384E8216119D5E0021DC07 /* CCLayerGradientLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCLayerGradientLoader.h; sourceTree = ""; }; + 15384E8316119D5E0021DC07 /* CCLayerLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCLayerLoader.cpp; sourceTree = ""; }; + 15384E8416119D5E0021DC07 /* CCLayerLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCLayerLoader.h; sourceTree = ""; }; + 15384E8516119D5E0021DC07 /* CCMenuItemImageLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCMenuItemImageLoader.cpp; sourceTree = ""; }; + 15384E8616119D5E0021DC07 /* CCMenuItemImageLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCMenuItemImageLoader.h; sourceTree = ""; }; + 15384E8716119D5E0021DC07 /* CCMenuItemLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCMenuItemLoader.cpp; sourceTree = ""; }; + 15384E8816119D5E0021DC07 /* CCMenuItemLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCMenuItemLoader.h; sourceTree = ""; }; + 15384E8916119D5E0021DC07 /* CCMenuLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCMenuLoader.h; sourceTree = ""; }; + 15384E8A16119D5E0021DC07 /* CCNode+CCBRelativePositioning.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "CCNode+CCBRelativePositioning.cpp"; sourceTree = ""; }; + 15384E8B16119D5E0021DC07 /* CCNode+CCBRelativePositioning.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CCNode+CCBRelativePositioning.h"; sourceTree = ""; }; + 15384E8C16119D5E0021DC07 /* CCNodeLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCNodeLoader.cpp; sourceTree = ""; }; + 15384E8D16119D5E0021DC07 /* CCNodeLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCNodeLoader.h; sourceTree = ""; }; + 15384E8E16119D5E0021DC07 /* CCNodeLoaderLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCNodeLoaderLibrary.cpp; sourceTree = ""; }; + 15384E8F16119D5E0021DC07 /* CCNodeLoaderLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCNodeLoaderLibrary.h; sourceTree = ""; }; + 15384E9016119D5E0021DC07 /* CCNodeLoaderListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCNodeLoaderListener.h; sourceTree = ""; }; + 15384E9116119D5E0021DC07 /* CCParticleSystemQuadLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCParticleSystemQuadLoader.cpp; sourceTree = ""; }; + 15384E9216119D5E0021DC07 /* CCParticleSystemQuadLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCParticleSystemQuadLoader.h; sourceTree = ""; }; + 15384E9316119D5E0021DC07 /* CCScale9SpriteLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCScale9SpriteLoader.cpp; sourceTree = ""; }; + 15384E9416119D5E0021DC07 /* CCScale9SpriteLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCScale9SpriteLoader.h; sourceTree = ""; }; + 15384E9516119D5E0021DC07 /* CCScrollViewLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCScrollViewLoader.cpp; sourceTree = ""; }; + 15384E9616119D5E0021DC07 /* CCScrollViewLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCScrollViewLoader.h; sourceTree = ""; }; + 15384E9716119D5E0021DC07 /* CCSpriteLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCSpriteLoader.cpp; sourceTree = ""; }; + 15384E9816119D5E0021DC07 /* CCSpriteLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCSpriteLoader.h; sourceTree = ""; }; + 15384E9916119D5E0021DC07 /* cocos-ext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "cocos-ext.h"; sourceTree = ""; }; + 15384E9A16119D5E0021DC07 /* ExtensionMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExtensionMacros.h; sourceTree = ""; }; + 15384EB716119D5E0021DC07 /* CCEditBox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCEditBox.cpp; sourceTree = ""; }; + 15384EB816119D5E0021DC07 /* CCEditBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCEditBox.h; sourceTree = ""; }; + 15384EB916119D5E0021DC07 /* CCEditBoxImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCEditBoxImpl.h; sourceTree = ""; }; + 15384EBC16119D5E0021DC07 /* CCEditBoxImplIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCEditBoxImplIOS.h; sourceTree = ""; }; + 15384EBD16119D5E0021DC07 /* CCEditBoxImplIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CCEditBoxImplIOS.mm; sourceTree = ""; }; + 15384EBE16119D5E0021DC07 /* EditBoxImplIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditBoxImplIOS.h; sourceTree = ""; }; + 15384EBF16119D5E0021DC07 /* EditBoxImplIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = EditBoxImplIOS.mm; sourceTree = ""; }; + 15384EC116119D5E0021DC07 /* CCScrollView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCScrollView.cpp; sourceTree = ""; }; + 15384EC216119D5E0021DC07 /* CCScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCScrollView.h; sourceTree = ""; }; + 15384EC316119D5E0021DC07 /* CCSorting.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCSorting.cpp; sourceTree = ""; }; + 15384EC416119D5E0021DC07 /* CCSorting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCSorting.h; sourceTree = ""; }; + 15384EC516119D5E0021DC07 /* CCTableView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCTableView.cpp; sourceTree = ""; }; + 15384EC616119D5E0021DC07 /* CCTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCTableView.h; sourceTree = ""; }; + 15384EC716119D5E0021DC07 /* CCTableViewCell.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCTableViewCell.cpp; sourceTree = ""; }; + 15384EC816119D5E0021DC07 /* CCTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCTableViewCell.h; sourceTree = ""; }; + 15426AE915B5733200712A7F /* cocos2dx.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = cocos2dx.xcodeproj; path = ../../../cocos2dx/proj.ios/cocos2dx.xcodeproj; sourceTree = ""; }; + 15426FCC15B5743C00712A7F /* Export.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Export.h; sourceTree = ""; }; + 15426FCD15B5743C00712A7F /* SimpleAudioEngine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SimpleAudioEngine.h; sourceTree = ""; }; + 15426FCF15B5743C00712A7F /* CDAudioManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDAudioManager.h; sourceTree = ""; }; + 15426FD015B5743C00712A7F /* CDAudioManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CDAudioManager.m; sourceTree = ""; }; + 15426FD115B5743C00712A7F /* CDConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDConfig.h; sourceTree = ""; }; + 15426FD215B5743C00712A7F /* CDOpenALSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDOpenALSupport.h; sourceTree = ""; }; + 15426FD315B5743C00712A7F /* CDOpenALSupport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CDOpenALSupport.m; sourceTree = ""; }; + 15426FD415B5743C00712A7F /* CocosDenshion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CocosDenshion.h; sourceTree = ""; }; + 15426FD515B5743C00712A7F /* CocosDenshion.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CocosDenshion.m; sourceTree = ""; }; + 15426FD615B5743C00712A7F /* SimpleAudioEngine.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SimpleAudioEngine.mm; sourceTree = ""; }; + 15426FD715B5743C00712A7F /* SimpleAudioEngine_objc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SimpleAudioEngine_objc.h; sourceTree = ""; }; + 15426FD815B5743C00712A7F /* SimpleAudioEngine_objc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SimpleAudioEngine_objc.m; sourceTree = ""; }; + 15CFE18D1612FD0E00BF2188 /* CCControl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCControl.cpp; sourceTree = ""; }; + 15CFE18E1612FD0E00BF2188 /* CCControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCControl.h; sourceTree = ""; }; + 15CFE18F1612FD0E00BF2188 /* CCControlButton.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCControlButton.cpp; sourceTree = ""; }; + 15CFE1901612FD0E00BF2188 /* CCControlButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCControlButton.h; sourceTree = ""; }; + 15CFE1911612FD0E00BF2188 /* CCControlColourPicker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCControlColourPicker.cpp; sourceTree = ""; }; + 15CFE1921612FD0E00BF2188 /* CCControlColourPicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCControlColourPicker.h; sourceTree = ""; }; + 15CFE1931612FD0E00BF2188 /* CCControlExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCControlExtensions.h; sourceTree = ""; }; + 15CFE1941612FD0E00BF2188 /* CCControlHuePicker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCControlHuePicker.cpp; sourceTree = ""; }; + 15CFE1951612FD0E00BF2188 /* CCControlHuePicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCControlHuePicker.h; sourceTree = ""; }; + 15CFE1961612FD0E00BF2188 /* CCControlPotentiometer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCControlPotentiometer.cpp; sourceTree = ""; }; + 15CFE1971612FD0E00BF2188 /* CCControlPotentiometer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCControlPotentiometer.h; sourceTree = ""; }; + 15CFE1981612FD0E00BF2188 /* CCControlSaturationBrightnessPicker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCControlSaturationBrightnessPicker.cpp; sourceTree = ""; }; + 15CFE1991612FD0E00BF2188 /* CCControlSaturationBrightnessPicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCControlSaturationBrightnessPicker.h; sourceTree = ""; }; + 15CFE19A1612FD0E00BF2188 /* CCControlSlider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCControlSlider.cpp; sourceTree = ""; }; + 15CFE19B1612FD0E00BF2188 /* CCControlSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCControlSlider.h; sourceTree = ""; }; + 15CFE19C1612FD0E00BF2188 /* CCControlStepper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCControlStepper.cpp; sourceTree = ""; }; + 15CFE19D1612FD0E00BF2188 /* CCControlStepper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCControlStepper.h; sourceTree = ""; }; + 15CFE19E1612FD0E00BF2188 /* CCControlSwitch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCControlSwitch.cpp; sourceTree = ""; }; + 15CFE19F1612FD0E00BF2188 /* CCControlSwitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCControlSwitch.h; sourceTree = ""; }; + 15CFE1A01612FD0E00BF2188 /* CCControlUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCControlUtils.cpp; sourceTree = ""; }; + 15CFE1A11612FD0E00BF2188 /* CCControlUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCControlUtils.h; sourceTree = ""; }; + 15CFE1A21612FD0E00BF2188 /* CCInvocation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCInvocation.cpp; sourceTree = ""; }; + 15CFE1A31612FD0E00BF2188 /* CCInvocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCInvocation.h; sourceTree = ""; }; + 15CFE1A41612FD0E00BF2188 /* CCScale9Sprite.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCScale9Sprite.cpp; sourceTree = ""; }; + 15CFE1A51612FD0E00BF2188 /* CCScale9Sprite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCScale9Sprite.h; sourceTree = ""; }; + 15DA88251627C44800155276 /* jsb_constants.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = jsb_constants.js; sourceTree = ""; }; + 15DA88261627C44800155276 /* jsb_constants_chipmunk.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = jsb_constants_chipmunk.js; sourceTree = ""; }; + 15DA88271627C44800155276 /* jsb_constants_cocos2d.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = jsb_constants_cocos2d.js; sourceTree = ""; }; + 15DA88281627C44800155276 /* jsb_constants_cocosbuilder.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = jsb_constants_cocosbuilder.js; sourceTree = ""; }; + 15DA88291627C44800155276 /* jsb_constants_gl.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = jsb_constants_gl.js; sourceTree = ""; }; + 15DA88B61627C62000155276 /* cocos2dxapi.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; name = cocos2dxapi.js; path = ../../../scripting/javascript/bindings/generated/cocos2dxapi.js; sourceTree = ""; }; + 15E2AE9A165DC52C00F7743F /* CCPhysicsDebugNode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCPhysicsDebugNode.cpp; sourceTree = ""; }; + 15E2AE9B165DC52C00F7743F /* CCPhysicsDebugNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCPhysicsDebugNode.h; sourceTree = ""; }; + 15E2AE9C165DC52C00F7743F /* CCPhysicsSprite.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCPhysicsSprite.cpp; sourceTree = ""; }; + 15E2AE9D165DC52C00F7743F /* CCPhysicsSprite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCPhysicsSprite.h; sourceTree = ""; }; + 15E2AEA2165DC6DD00F7743F /* res */ = {isa = PBXFileReference; lastKnownFileType = folder; name = res; path = "../cocos2d-js-tests/res"; sourceTree = ""; }; + 15E2AEA4165DC73200F7743F /* src */ = {isa = PBXFileReference; lastKnownFileType = folder; name = src; path = "../cocos2d-js-tests/src"; sourceTree = ""; }; + 2628298215EC7196002C4240 /* chipmunk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = chipmunk.h; sourceTree = ""; }; + 2628298315EC7196002C4240 /* chipmunk_ffi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = chipmunk_ffi.h; sourceTree = ""; }; + 2628298415EC7196002C4240 /* chipmunk_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = chipmunk_private.h; sourceTree = ""; }; + 2628298515EC7196002C4240 /* chipmunk_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = chipmunk_types.h; sourceTree = ""; }; + 2628298615EC7196002C4240 /* chipmunk_unsafe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = chipmunk_unsafe.h; sourceTree = ""; }; + 2628298815EC7196002C4240 /* cpConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpConstraint.h; sourceTree = ""; }; + 2628298915EC7196002C4240 /* cpDampedRotarySpring.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpDampedRotarySpring.h; sourceTree = ""; }; + 2628298A15EC7196002C4240 /* cpDampedSpring.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpDampedSpring.h; sourceTree = ""; }; + 2628298B15EC7196002C4240 /* cpGearJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpGearJoint.h; sourceTree = ""; }; + 2628298C15EC7196002C4240 /* cpGrooveJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpGrooveJoint.h; sourceTree = ""; }; + 2628298D15EC7196002C4240 /* cpPinJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpPinJoint.h; sourceTree = ""; }; + 2628298E15EC7196002C4240 /* cpPivotJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpPivotJoint.h; sourceTree = ""; }; + 2628298F15EC7196002C4240 /* cpRatchetJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpRatchetJoint.h; sourceTree = ""; }; + 2628299015EC7196002C4240 /* cpRotaryLimitJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpRotaryLimitJoint.h; sourceTree = ""; }; + 2628299115EC7196002C4240 /* cpSimpleMotor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpSimpleMotor.h; sourceTree = ""; }; + 2628299215EC7196002C4240 /* cpSlideJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpSlideJoint.h; sourceTree = ""; }; + 2628299315EC7196002C4240 /* util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = util.h; sourceTree = ""; }; + 2628299415EC7196002C4240 /* cpArbiter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpArbiter.h; sourceTree = ""; }; + 2628299515EC7196002C4240 /* cpBB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpBB.h; sourceTree = ""; }; + 2628299615EC7196002C4240 /* cpBody.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpBody.h; sourceTree = ""; }; + 2628299715EC7196002C4240 /* cpPolyShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpPolyShape.h; sourceTree = ""; }; + 2628299815EC7196002C4240 /* cpShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpShape.h; sourceTree = ""; }; + 2628299915EC7196002C4240 /* cpSpace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpSpace.h; sourceTree = ""; }; + 2628299A15EC7196002C4240 /* cpSpatialIndex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpSpatialIndex.h; sourceTree = ""; }; + 2628299B15EC7196002C4240 /* cpVect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpVect.h; sourceTree = ""; }; + 262829AC15EC7196002C4240 /* chipmunk.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = chipmunk.c; sourceTree = ""; }; + 262829AD15EC7196002C4240 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; + 262829AF15EC7196002C4240 /* cpConstraint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpConstraint.c; sourceTree = ""; }; + 262829B015EC7196002C4240 /* cpDampedRotarySpring.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpDampedRotarySpring.c; sourceTree = ""; }; + 262829B115EC7196002C4240 /* cpDampedSpring.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpDampedSpring.c; sourceTree = ""; }; + 262829B215EC7196002C4240 /* cpGearJoint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpGearJoint.c; sourceTree = ""; }; + 262829B315EC7196002C4240 /* cpGrooveJoint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpGrooveJoint.c; sourceTree = ""; }; + 262829B415EC7196002C4240 /* cpPinJoint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpPinJoint.c; sourceTree = ""; }; + 262829B515EC7196002C4240 /* cpPivotJoint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpPivotJoint.c; sourceTree = ""; }; + 262829B615EC7196002C4240 /* cpRatchetJoint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpRatchetJoint.c; sourceTree = ""; }; + 262829B715EC7196002C4240 /* cpRotaryLimitJoint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpRotaryLimitJoint.c; sourceTree = ""; }; + 262829B815EC7196002C4240 /* cpSimpleMotor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpSimpleMotor.c; sourceTree = ""; }; + 262829B915EC7196002C4240 /* cpSlideJoint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpSlideJoint.c; sourceTree = ""; }; + 262829BA15EC7196002C4240 /* cpArbiter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpArbiter.c; sourceTree = ""; }; + 262829BB15EC7196002C4240 /* cpArray.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpArray.c; sourceTree = ""; }; + 262829BC15EC7196002C4240 /* cpBB.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpBB.c; sourceTree = ""; }; + 262829BD15EC7196002C4240 /* cpBBTree.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpBBTree.c; sourceTree = ""; }; + 262829BE15EC7196002C4240 /* cpBody.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpBody.c; sourceTree = ""; }; + 262829BF15EC7196002C4240 /* cpCollision.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpCollision.c; sourceTree = ""; }; + 262829C015EC7196002C4240 /* cpHashSet.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpHashSet.c; sourceTree = ""; }; + 262829C115EC7196002C4240 /* cpPolyShape.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpPolyShape.c; sourceTree = ""; }; + 262829C215EC7196002C4240 /* cpShape.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpShape.c; sourceTree = ""; }; + 262829C315EC7196002C4240 /* cpSpace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpSpace.c; sourceTree = ""; }; + 262829C415EC7196002C4240 /* cpSpaceComponent.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpSpaceComponent.c; sourceTree = ""; }; + 262829C515EC7196002C4240 /* cpSpaceHash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpSpaceHash.c; sourceTree = ""; }; + 262829C615EC7196002C4240 /* cpSpaceQuery.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpSpaceQuery.c; sourceTree = ""; }; + 262829C715EC7196002C4240 /* cpSpaceStep.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpSpaceStep.c; sourceTree = ""; }; + 262829C815EC7196002C4240 /* cpSpatialIndex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpSpatialIndex.c; sourceTree = ""; }; + 262829C915EC7196002C4240 /* cpSweep1D.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpSweep1D.c; sourceTree = ""; }; + 262829CA15EC7196002C4240 /* cpVect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpVect.c; sourceTree = ""; }; + 262829CB15EC7196002C4240 /* prime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = prime.h; sourceTree = ""; }; + 263B98C616548E4D00228D8A /* js_bindings_chipmunk_auto_classes_registration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = js_bindings_chipmunk_auto_classes_registration.h; sourceTree = ""; }; + 263B98C716548E4D00228D8A /* js_bindings_chipmunk_auto_classes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = js_bindings_chipmunk_auto_classes.cpp; sourceTree = ""; }; + 263B98C816548E4D00228D8A /* js_bindings_chipmunk_auto_classes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = js_bindings_chipmunk_auto_classes.h; sourceTree = ""; }; + 263B98CA16548E4D00228D8A /* js_bindings_chipmunk_functions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = js_bindings_chipmunk_functions.h; sourceTree = ""; }; + 263B98CB16548E4D00228D8A /* js_bindings_chipmunk_manual.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = js_bindings_chipmunk_manual.h; sourceTree = ""; }; + 263B98CC16548E4D00228D8A /* js_bindings_chipmunk_registration.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = js_bindings_chipmunk_registration.cpp; sourceTree = ""; }; + 263B98CD16548E4D00228D8A /* js_bindings_chipmunk_registration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = js_bindings_chipmunk_registration.h; sourceTree = ""; }; + 263B98CE16548E4D00228D8A /* js_bindings_core.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = js_bindings_core.cpp; sourceTree = ""; }; + 263B98CF16548E4D00228D8A /* js_bindings_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = js_bindings_core.h; sourceTree = ""; }; + 263B98D316548EB700228D8A /* js_bindings_chipmunk_functions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = js_bindings_chipmunk_functions.cpp; sourceTree = ""; }; + 263B98D416548EB700228D8A /* js_bindings_chipmunk_functions.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = js_bindings_chipmunk_functions.hpp; sourceTree = ""; }; + 263B98D516548EB700228D8A /* js_bindings_chipmunk_manual.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = js_bindings_chipmunk_manual.cpp; sourceTree = ""; }; + A922753D1517C094001B78AA /* WatermelonWithMe.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WatermelonWithMe.app; sourceTree = BUILT_PRODUCTS_DIR; }; + A92275411517C094001B78AA /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + A92275431517C094001B78AA /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + A92275451517C094001B78AA /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; + A92275471517C094001B78AA /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + A92275491517C094001B78AA /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + A922754B1517C094001B78AA /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + A922754D1517C094001B78AA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + A922754F1517C094001B78AA /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + D446FDA216102D7D000ADA7B /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; }; + D446FDA416102D82000ADA7B /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; }; + D446FDA616102D86000ADA7B /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; + D45446CD156DE74F00887EB5 /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppController.h; sourceTree = ""; }; + D45446CE156DE74F00887EB5 /* AppController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AppController.mm; sourceTree = ""; }; + D45446CF156DE74F00887EB5 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + D45446D0156DE74F00887EB5 /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Prefix.pch; sourceTree = ""; }; + D45446D1156DE74F00887EB5 /* RootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RootViewController.h; sourceTree = ""; }; + D45446D2156DE74F00887EB5 /* RootViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RootViewController.mm; sourceTree = ""; }; + D45446D6156DE79D00887EB5 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D4545209156E22B400887EB5 /* libxml2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libxml2.dylib; path = usr/lib/libxml2.dylib; sourceTree = SDKROOT; }; + D454520B156E22BD00887EB5 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; + D4545215156E28EF00887EB5 /* AppDelegate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AppDelegate.cpp; sourceTree = ""; }; + D4545216156E28EF00887EB5 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A922753A1517C094001B78AA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 15426FC315B5742200712A7F /* libcocos2dx.a in Frameworks */, + D454520C156E22BD00887EB5 /* libz.dylib in Frameworks */, + D454520A156E22B400887EB5 /* libxml2.dylib in Frameworks */, + A92275421517C094001B78AA /* QuartzCore.framework in Frameworks */, + A92275441517C094001B78AA /* OpenGLES.framework in Frameworks */, + A92275461517C094001B78AA /* OpenAL.framework in Frameworks */, + A92275481517C094001B78AA /* AudioToolbox.framework in Frameworks */, + A922754A1517C094001B78AA /* AVFoundation.framework in Frameworks */, + A922754C1517C094001B78AA /* UIKit.framework in Frameworks */, + A922754E1517C094001B78AA /* Foundation.framework in Frameworks */, + A92275501517C094001B78AA /* CoreGraphics.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 15384E3C16119CC30021DC07 /* bindings */ = { + isa = PBXGroup; + children = ( + 263B98D316548EB700228D8A /* js_bindings_chipmunk_functions.cpp */, + 263B98D416548EB700228D8A /* js_bindings_chipmunk_functions.hpp */, + 263B98D516548EB700228D8A /* js_bindings_chipmunk_manual.cpp */, + 263B98C616548E4D00228D8A /* js_bindings_chipmunk_auto_classes_registration.h */, + 263B98C716548E4D00228D8A /* js_bindings_chipmunk_auto_classes.cpp */, + 263B98C816548E4D00228D8A /* js_bindings_chipmunk_auto_classes.h */, + 263B98CA16548E4D00228D8A /* js_bindings_chipmunk_functions.h */, + 263B98CB16548E4D00228D8A /* js_bindings_chipmunk_manual.h */, + 263B98CC16548E4D00228D8A /* js_bindings_chipmunk_registration.cpp */, + 263B98CD16548E4D00228D8A /* js_bindings_chipmunk_registration.h */, + 263B98CE16548E4D00228D8A /* js_bindings_core.cpp */, + 263B98CF16548E4D00228D8A /* js_bindings_core.h */, + 15384E4016119CC30021DC07 /* cocos2d_specifics.cpp */, + 15384E4116119CC30021DC07 /* cocos2d_specifics.hpp */, + 15384E4216119CC30021DC07 /* cocosjs_manual_conversions.cpp */, + 15384E4316119CC30021DC07 /* cocosjs_manual_conversions.h */, + 15384E4416119CC30021DC07 /* generated */, + 15384E4916119CC30021DC07 /* js_bindings_ccbreader.cpp */, + 15384E4A16119CC30021DC07 /* js_bindings_ccbreader.h */, + 15384E4F16119CC30021DC07 /* js_bindings_config.h */, + 15384E5016119CC30021DC07 /* js_manual_conversions.cpp */, + 15384E5116119CC30021DC07 /* js_manual_conversions.h */, + 15384E5216119CC30021DC07 /* ScriptingCore.cpp */, + 15384E5316119CC30021DC07 /* ScriptingCore.h */, + 15384E5416119CC30021DC07 /* spidermonkey_specifics.h */, + 15384E5516119CC30021DC07 /* uthash.h */, + ); + name = bindings; + path = ../../../scripting/javascript/bindings; + sourceTree = ""; + }; + 15384E4416119CC30021DC07 /* generated */ = { + isa = PBXGroup; + children = ( + 15384E4516119CC30021DC07 /* cocos2dx.cpp */, + 15384E4616119CC30021DC07 /* cocos2dx.hpp */, + ); + path = generated; + sourceTree = ""; + }; + 15384E6216119D5E0021DC07 /* extensions */ = { + isa = PBXGroup; + children = ( + 15E2AE99165DC52C00F7743F /* physics_nodes */, + 15384E6416119D5E0021DC07 /* CCBReader */, + 15384E9916119D5E0021DC07 /* cocos-ext.h */, + 15384E9A16119D5E0021DC07 /* ExtensionMacros.h */, + 15384E9B16119D5E0021DC07 /* GUI */, + ); + name = extensions; + path = ../../../extensions; + sourceTree = ""; + }; + 15384E6416119D5E0021DC07 /* CCBReader */ = { + isa = PBXGroup; + children = ( + 15384E6516119D5E0021DC07 /* CCBAnimationManager.cpp */, + 15384E6616119D5E0021DC07 /* CCBAnimationManager.h */, + 15384E6716119D5E0021DC07 /* CCBFileLoader.cpp */, + 15384E6816119D5E0021DC07 /* CCBFileLoader.h */, + 15384E6916119D5E0021DC07 /* CCBKeyframe.cpp */, + 15384E6A16119D5E0021DC07 /* CCBKeyframe.h */, + 15384E6B16119D5E0021DC07 /* CCBMemberVariableAssigner.h */, + 15384E6C16119D5E0021DC07 /* CCBReader.cpp */, + 15384E6D16119D5E0021DC07 /* CCBReader.h */, + 15384E6E16119D5E0021DC07 /* CCBSelectorResolver.h */, + 15384E6F16119D5E0021DC07 /* CCBSequence.cpp */, + 15384E7016119D5E0021DC07 /* CCBSequence.h */, + 15384E7116119D5E0021DC07 /* CCBSequenceProperty.cpp */, + 15384E7216119D5E0021DC07 /* CCBSequenceProperty.h */, + 15384E7316119D5E0021DC07 /* CCBValue.cpp */, + 15384E7416119D5E0021DC07 /* CCBValue.h */, + 15384E7516119D5E0021DC07 /* CCControlButtonLoader.cpp */, + 15384E7616119D5E0021DC07 /* CCControlButtonLoader.h */, + 15384E7716119D5E0021DC07 /* CCControlLoader.cpp */, + 15384E7816119D5E0021DC07 /* CCControlLoader.h */, + 15384E7916119D5E0021DC07 /* CCData.cpp */, + 15384E7A16119D5E0021DC07 /* CCData.h */, + 15384E7B16119D5E0021DC07 /* CCLabelBMFontLoader.cpp */, + 15384E7C16119D5E0021DC07 /* CCLabelBMFontLoader.h */, + 15384E7D16119D5E0021DC07 /* CCLabelTTFLoader.cpp */, + 15384E7E16119D5E0021DC07 /* CCLabelTTFLoader.h */, + 15384E7F16119D5E0021DC07 /* CCLayerColorLoader.cpp */, + 15384E8016119D5E0021DC07 /* CCLayerColorLoader.h */, + 15384E8116119D5E0021DC07 /* CCLayerGradientLoader.cpp */, + 15384E8216119D5E0021DC07 /* CCLayerGradientLoader.h */, + 15384E8316119D5E0021DC07 /* CCLayerLoader.cpp */, + 15384E8416119D5E0021DC07 /* CCLayerLoader.h */, + 15384E8516119D5E0021DC07 /* CCMenuItemImageLoader.cpp */, + 15384E8616119D5E0021DC07 /* CCMenuItemImageLoader.h */, + 15384E8716119D5E0021DC07 /* CCMenuItemLoader.cpp */, + 15384E8816119D5E0021DC07 /* CCMenuItemLoader.h */, + 15384E8916119D5E0021DC07 /* CCMenuLoader.h */, + 15384E8A16119D5E0021DC07 /* CCNode+CCBRelativePositioning.cpp */, + 15384E8B16119D5E0021DC07 /* CCNode+CCBRelativePositioning.h */, + 15384E8C16119D5E0021DC07 /* CCNodeLoader.cpp */, + 15384E8D16119D5E0021DC07 /* CCNodeLoader.h */, + 15384E8E16119D5E0021DC07 /* CCNodeLoaderLibrary.cpp */, + 15384E8F16119D5E0021DC07 /* CCNodeLoaderLibrary.h */, + 15384E9016119D5E0021DC07 /* CCNodeLoaderListener.h */, + 15384E9116119D5E0021DC07 /* CCParticleSystemQuadLoader.cpp */, + 15384E9216119D5E0021DC07 /* CCParticleSystemQuadLoader.h */, + 15384E9316119D5E0021DC07 /* CCScale9SpriteLoader.cpp */, + 15384E9416119D5E0021DC07 /* CCScale9SpriteLoader.h */, + 15384E9516119D5E0021DC07 /* CCScrollViewLoader.cpp */, + 15384E9616119D5E0021DC07 /* CCScrollViewLoader.h */, + 15384E9716119D5E0021DC07 /* CCSpriteLoader.cpp */, + 15384E9816119D5E0021DC07 /* CCSpriteLoader.h */, + ); + path = CCBReader; + sourceTree = ""; + }; + 15384E9B16119D5E0021DC07 /* GUI */ = { + isa = PBXGroup; + children = ( + 15CFE18C1612FD0E00BF2188 /* CCControlExtension */, + 15384EB616119D5E0021DC07 /* CCEditBox */, + 15384EC016119D5E0021DC07 /* CCScrollView */, + ); + path = GUI; + sourceTree = ""; + }; + 15384EB616119D5E0021DC07 /* CCEditBox */ = { + isa = PBXGroup; + children = ( + 15384EB716119D5E0021DC07 /* CCEditBox.cpp */, + 15384EB816119D5E0021DC07 /* CCEditBox.h */, + 15384EB916119D5E0021DC07 /* CCEditBoxImpl.h */, + 15384EBC16119D5E0021DC07 /* CCEditBoxImplIOS.h */, + 15384EBD16119D5E0021DC07 /* CCEditBoxImplIOS.mm */, + 15384EBE16119D5E0021DC07 /* EditBoxImplIOS.h */, + 15384EBF16119D5E0021DC07 /* EditBoxImplIOS.mm */, + ); + path = CCEditBox; + sourceTree = ""; + }; + 15384EC016119D5E0021DC07 /* CCScrollView */ = { + isa = PBXGroup; + children = ( + 15384EC116119D5E0021DC07 /* CCScrollView.cpp */, + 15384EC216119D5E0021DC07 /* CCScrollView.h */, + 15384EC316119D5E0021DC07 /* CCSorting.cpp */, + 15384EC416119D5E0021DC07 /* CCSorting.h */, + 15384EC516119D5E0021DC07 /* CCTableView.cpp */, + 15384EC616119D5E0021DC07 /* CCTableView.h */, + 15384EC716119D5E0021DC07 /* CCTableViewCell.cpp */, + 15384EC816119D5E0021DC07 /* CCTableViewCell.h */, + ); + path = CCScrollView; + sourceTree = ""; + }; + 15426AEA15B5733200712A7F /* Products */ = { + isa = PBXGroup; + children = ( + 15426AF115B5733200712A7F /* libcocos2dx.a */, + ); + name = Products; + sourceTree = ""; + }; + 15426FC415B5743C00712A7F /* CocosDenshion */ = { + isa = PBXGroup; + children = ( + 15426FCB15B5743C00712A7F /* include */, + 15426FCE15B5743C00712A7F /* ios */, + ); + name = CocosDenshion; + path = ../../../CocosDenshion; + sourceTree = ""; + }; + 15426FCB15B5743C00712A7F /* include */ = { + isa = PBXGroup; + children = ( + 15426FCC15B5743C00712A7F /* Export.h */, + 15426FCD15B5743C00712A7F /* SimpleAudioEngine.h */, + ); + path = include; + sourceTree = ""; + }; + 15426FCE15B5743C00712A7F /* ios */ = { + isa = PBXGroup; + children = ( + 15426FCF15B5743C00712A7F /* CDAudioManager.h */, + 15426FD015B5743C00712A7F /* CDAudioManager.m */, + 15426FD115B5743C00712A7F /* CDConfig.h */, + 15426FD215B5743C00712A7F /* CDOpenALSupport.h */, + 15426FD315B5743C00712A7F /* CDOpenALSupport.m */, + 15426FD415B5743C00712A7F /* CocosDenshion.h */, + 15426FD515B5743C00712A7F /* CocosDenshion.m */, + 15426FD615B5743C00712A7F /* SimpleAudioEngine.mm */, + 15426FD715B5743C00712A7F /* SimpleAudioEngine_objc.h */, + 15426FD815B5743C00712A7F /* SimpleAudioEngine_objc.m */, + ); + path = ios; + sourceTree = ""; + }; + 15628F5B15F0F5C2000CF24B /* Resources */ = { + isa = PBXGroup; + children = ( + 15E2AEA4165DC73200F7743F /* src */, + 15E2AEA2165DC6DD00F7743F /* res */, + 15DA88B61627C62000155276 /* cocos2dxapi.js */, + 15DA88241627C44800155276 /* bindings */, + D446FDA616102D86000ADA7B /* Default-568h@2x.png */, + D446FDA416102D82000ADA7B /* Default@2x.png */, + D446FDA216102D7D000ADA7B /* Default.png */, + ); + name = Resources; + sourceTree = ""; + }; + 15CFE18C1612FD0E00BF2188 /* CCControlExtension */ = { + isa = PBXGroup; + children = ( + 15CFE18D1612FD0E00BF2188 /* CCControl.cpp */, + 15CFE18E1612FD0E00BF2188 /* CCControl.h */, + 15CFE18F1612FD0E00BF2188 /* CCControlButton.cpp */, + 15CFE1901612FD0E00BF2188 /* CCControlButton.h */, + 15CFE1911612FD0E00BF2188 /* CCControlColourPicker.cpp */, + 15CFE1921612FD0E00BF2188 /* CCControlColourPicker.h */, + 15CFE1931612FD0E00BF2188 /* CCControlExtensions.h */, + 15CFE1941612FD0E00BF2188 /* CCControlHuePicker.cpp */, + 15CFE1951612FD0E00BF2188 /* CCControlHuePicker.h */, + 15CFE1961612FD0E00BF2188 /* CCControlPotentiometer.cpp */, + 15CFE1971612FD0E00BF2188 /* CCControlPotentiometer.h */, + 15CFE1981612FD0E00BF2188 /* CCControlSaturationBrightnessPicker.cpp */, + 15CFE1991612FD0E00BF2188 /* CCControlSaturationBrightnessPicker.h */, + 15CFE19A1612FD0E00BF2188 /* CCControlSlider.cpp */, + 15CFE19B1612FD0E00BF2188 /* CCControlSlider.h */, + 15CFE19C1612FD0E00BF2188 /* CCControlStepper.cpp */, + 15CFE19D1612FD0E00BF2188 /* CCControlStepper.h */, + 15CFE19E1612FD0E00BF2188 /* CCControlSwitch.cpp */, + 15CFE19F1612FD0E00BF2188 /* CCControlSwitch.h */, + 15CFE1A01612FD0E00BF2188 /* CCControlUtils.cpp */, + 15CFE1A11612FD0E00BF2188 /* CCControlUtils.h */, + 15CFE1A21612FD0E00BF2188 /* CCInvocation.cpp */, + 15CFE1A31612FD0E00BF2188 /* CCInvocation.h */, + 15CFE1A41612FD0E00BF2188 /* CCScale9Sprite.cpp */, + 15CFE1A51612FD0E00BF2188 /* CCScale9Sprite.h */, + ); + path = CCControlExtension; + sourceTree = ""; + }; + 15DA88241627C44800155276 /* bindings */ = { + isa = PBXGroup; + children = ( + 15DA88251627C44800155276 /* jsb_constants.js */, + 15DA88261627C44800155276 /* jsb_constants_chipmunk.js */, + 15DA88271627C44800155276 /* jsb_constants_cocos2d.js */, + 15DA88281627C44800155276 /* jsb_constants_cocosbuilder.js */, + 15DA88291627C44800155276 /* jsb_constants_gl.js */, + ); + name = bindings; + path = ../bindings; + sourceTree = ""; + }; + 15E2AE99165DC52C00F7743F /* physics_nodes */ = { + isa = PBXGroup; + children = ( + 15E2AE9A165DC52C00F7743F /* CCPhysicsDebugNode.cpp */, + 15E2AE9B165DC52C00F7743F /* CCPhysicsDebugNode.h */, + 15E2AE9C165DC52C00F7743F /* CCPhysicsSprite.cpp */, + 15E2AE9D165DC52C00F7743F /* CCPhysicsSprite.h */, + ); + path = physics_nodes; + sourceTree = ""; + }; + 2628297C15EC7196002C4240 /* chipmunk */ = { + isa = PBXGroup; + children = ( + 2628298015EC7196002C4240 /* include */, + 262829AB15EC7196002C4240 /* src */, + ); + name = chipmunk; + path = ../../../external/chipmunk; + sourceTree = ""; + }; + 2628298015EC7196002C4240 /* include */ = { + isa = PBXGroup; + children = ( + 2628298115EC7196002C4240 /* chipmunk */, + ); + path = include; + sourceTree = ""; + }; + 2628298115EC7196002C4240 /* chipmunk */ = { + isa = PBXGroup; + children = ( + 2628298215EC7196002C4240 /* chipmunk.h */, + 2628298315EC7196002C4240 /* chipmunk_ffi.h */, + 2628298415EC7196002C4240 /* chipmunk_private.h */, + 2628298515EC7196002C4240 /* chipmunk_types.h */, + 2628298615EC7196002C4240 /* chipmunk_unsafe.h */, + 2628298715EC7196002C4240 /* constraints */, + 2628299415EC7196002C4240 /* cpArbiter.h */, + 2628299515EC7196002C4240 /* cpBB.h */, + 2628299615EC7196002C4240 /* cpBody.h */, + 2628299715EC7196002C4240 /* cpPolyShape.h */, + 2628299815EC7196002C4240 /* cpShape.h */, + 2628299915EC7196002C4240 /* cpSpace.h */, + 2628299A15EC7196002C4240 /* cpSpatialIndex.h */, + 2628299B15EC7196002C4240 /* cpVect.h */, + ); + path = chipmunk; + sourceTree = ""; + }; + 2628298715EC7196002C4240 /* constraints */ = { + isa = PBXGroup; + children = ( + 2628298815EC7196002C4240 /* cpConstraint.h */, + 2628298915EC7196002C4240 /* cpDampedRotarySpring.h */, + 2628298A15EC7196002C4240 /* cpDampedSpring.h */, + 2628298B15EC7196002C4240 /* cpGearJoint.h */, + 2628298C15EC7196002C4240 /* cpGrooveJoint.h */, + 2628298D15EC7196002C4240 /* cpPinJoint.h */, + 2628298E15EC7196002C4240 /* cpPivotJoint.h */, + 2628298F15EC7196002C4240 /* cpRatchetJoint.h */, + 2628299015EC7196002C4240 /* cpRotaryLimitJoint.h */, + 2628299115EC7196002C4240 /* cpSimpleMotor.h */, + 2628299215EC7196002C4240 /* cpSlideJoint.h */, + 2628299315EC7196002C4240 /* util.h */, + ); + path = constraints; + sourceTree = ""; + }; + 262829AB15EC7196002C4240 /* src */ = { + isa = PBXGroup; + children = ( + 262829AC15EC7196002C4240 /* chipmunk.c */, + 262829AD15EC7196002C4240 /* CMakeLists.txt */, + 262829AE15EC7196002C4240 /* constraints */, + 262829BA15EC7196002C4240 /* cpArbiter.c */, + 262829BB15EC7196002C4240 /* cpArray.c */, + 262829BC15EC7196002C4240 /* cpBB.c */, + 262829BD15EC7196002C4240 /* cpBBTree.c */, + 262829BE15EC7196002C4240 /* cpBody.c */, + 262829BF15EC7196002C4240 /* cpCollision.c */, + 262829C015EC7196002C4240 /* cpHashSet.c */, + 262829C115EC7196002C4240 /* cpPolyShape.c */, + 262829C215EC7196002C4240 /* cpShape.c */, + 262829C315EC7196002C4240 /* cpSpace.c */, + 262829C415EC7196002C4240 /* cpSpaceComponent.c */, + 262829C515EC7196002C4240 /* cpSpaceHash.c */, + 262829C615EC7196002C4240 /* cpSpaceQuery.c */, + 262829C715EC7196002C4240 /* cpSpaceStep.c */, + 262829C815EC7196002C4240 /* cpSpatialIndex.c */, + 262829C915EC7196002C4240 /* cpSweep1D.c */, + 262829CA15EC7196002C4240 /* cpVect.c */, + 262829CB15EC7196002C4240 /* prime.h */, + ); + path = src; + sourceTree = ""; + }; + 262829AE15EC7196002C4240 /* constraints */ = { + isa = PBXGroup; + children = ( + 262829AF15EC7196002C4240 /* cpConstraint.c */, + 262829B015EC7196002C4240 /* cpDampedRotarySpring.c */, + 262829B115EC7196002C4240 /* cpDampedSpring.c */, + 262829B215EC7196002C4240 /* cpGearJoint.c */, + 262829B315EC7196002C4240 /* cpGrooveJoint.c */, + 262829B415EC7196002C4240 /* cpPinJoint.c */, + 262829B515EC7196002C4240 /* cpPivotJoint.c */, + 262829B615EC7196002C4240 /* cpRatchetJoint.c */, + 262829B715EC7196002C4240 /* cpRotaryLimitJoint.c */, + 262829B815EC7196002C4240 /* cpSimpleMotor.c */, + 262829B915EC7196002C4240 /* cpSlideJoint.c */, + ); + path = constraints; + sourceTree = ""; + }; + A92275321517C094001B78AA = { + isa = PBXGroup; + children = ( + 15426AE915B5733200712A7F /* cocos2dx.xcodeproj */, + 15384E3C16119CC30021DC07 /* bindings */, + 2628297C15EC7196002C4240 /* chipmunk */, + D4545214156E28EF00887EB5 /* Classes */, + 15426FC415B5743C00712A7F /* CocosDenshion */, + 15384E6216119D5E0021DC07 /* extensions */, + A92275401517C094001B78AA /* Frameworks */, + D45446CC156DE73F00887EB5 /* ios */, + A922753E1517C094001B78AA /* Products */, + 15628F5B15F0F5C2000CF24B /* Resources */, + ); + sourceTree = ""; + }; + A922753E1517C094001B78AA /* Products */ = { + isa = PBXGroup; + children = ( + A922753D1517C094001B78AA /* WatermelonWithMe.app */, + ); + name = Products; + sourceTree = ""; + }; + A92275401517C094001B78AA /* Frameworks */ = { + isa = PBXGroup; + children = ( + D454520B156E22BD00887EB5 /* libz.dylib */, + D4545209156E22B400887EB5 /* libxml2.dylib */, + A92275411517C094001B78AA /* QuartzCore.framework */, + A92275431517C094001B78AA /* OpenGLES.framework */, + A92275451517C094001B78AA /* OpenAL.framework */, + A92275471517C094001B78AA /* AudioToolbox.framework */, + A92275491517C094001B78AA /* AVFoundation.framework */, + A922754B1517C094001B78AA /* UIKit.framework */, + A922754D1517C094001B78AA /* Foundation.framework */, + A922754F1517C094001B78AA /* CoreGraphics.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + D45446CC156DE73F00887EB5 /* ios */ = { + isa = PBXGroup; + children = ( + D45446D6156DE79D00887EB5 /* Info.plist */, + D45446CD156DE74F00887EB5 /* AppController.h */, + D45446CE156DE74F00887EB5 /* AppController.mm */, + D45446CF156DE74F00887EB5 /* main.m */, + D45446D0156DE74F00887EB5 /* Prefix.pch */, + D45446D1156DE74F00887EB5 /* RootViewController.h */, + D45446D2156DE74F00887EB5 /* RootViewController.mm */, + ); + name = ios; + sourceTree = ""; + }; + D4545214156E28EF00887EB5 /* Classes */ = { + isa = PBXGroup; + children = ( + D4545215156E28EF00887EB5 /* AppDelegate.cpp */, + D4545216156E28EF00887EB5 /* AppDelegate.h */, + ); + name = Classes; + path = ../Classes; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + A922753C1517C094001B78AA /* WatermelonWithMe */ = { + isa = PBXNativeTarget; + buildConfigurationList = A92277001517C097001B78AA /* Build configuration list for PBXNativeTarget "WatermelonWithMe" */; + buildPhases = ( + A92275391517C094001B78AA /* Sources */, + A922753A1517C094001B78AA /* Frameworks */, + A922753B1517C094001B78AA /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 15426FC215B5741900712A7F /* PBXTargetDependency */, + ); + name = WatermelonWithMe; + productName = WatermelonWithMe; + productReference = A922753D1517C094001B78AA /* WatermelonWithMe.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A92275341517C094001B78AA /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0430; + }; + buildConfigurationList = A92275371517C094001B78AA /* Build configuration list for PBXProject "WatermelonWithMe" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = A92275321517C094001B78AA; + productRefGroup = A922753E1517C094001B78AA /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 15426AEA15B5733200712A7F /* Products */; + ProjectRef = 15426AE915B5733200712A7F /* cocos2dx.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + A922753C1517C094001B78AA /* WatermelonWithMe */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 15426AF115B5733200712A7F /* libcocos2dx.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libcocos2dx.a; + remoteRef = 15426AF015B5733200712A7F /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + A922753B1517C094001B78AA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D446FDA316102D7D000ADA7B /* Default.png in Resources */, + 15DA88B71627C62000155276 /* cocos2dxapi.js in Resources */, + 15DA882A1627C44800155276 /* jsb_constants.js in Resources */, + 15DA882B1627C44800155276 /* jsb_constants_chipmunk.js in Resources */, + 15DA882C1627C44800155276 /* jsb_constants_cocos2d.js in Resources */, + 15DA882D1627C44800155276 /* jsb_constants_cocosbuilder.js in Resources */, + 15DA882E1627C44800155276 /* jsb_constants_gl.js in Resources */, + D446FDA516102D82000ADA7B /* Default@2x.png in Resources */, + D446FDA716102D86000ADA7B /* Default-568h@2x.png in Resources */, + 15E2AEA3165DC6DD00F7743F /* res in Resources */, + 15E2AEA5165DC73200F7743F /* src in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A92275391517C094001B78AA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D45446D3156DE74F00887EB5 /* AppController.mm in Sources */, + D45446D4156DE74F00887EB5 /* main.m in Sources */, + D45446D5156DE74F00887EB5 /* RootViewController.mm in Sources */, + D4545227156E28EF00887EB5 /* AppDelegate.cpp in Sources */, + 15426FE615B5743C00712A7F /* CDAudioManager.m in Sources */, + 15426FE715B5743C00712A7F /* CDOpenALSupport.m in Sources */, + 15426FE815B5743C00712A7F /* CocosDenshion.m in Sources */, + 15426FE915B5743C00712A7F /* SimpleAudioEngine.mm in Sources */, + 15426FEA15B5743C00712A7F /* SimpleAudioEngine_objc.m in Sources */, + 262829DB15EC7196002C4240 /* chipmunk.c in Sources */, + 262829DD15EC7196002C4240 /* cpConstraint.c in Sources */, + 262829DE15EC7196002C4240 /* cpDampedRotarySpring.c in Sources */, + 262829DF15EC7196002C4240 /* cpDampedSpring.c in Sources */, + 262829E015EC7196002C4240 /* cpGearJoint.c in Sources */, + 262829E115EC7196002C4240 /* cpGrooveJoint.c in Sources */, + 262829E215EC7196002C4240 /* cpPinJoint.c in Sources */, + 262829E315EC7196002C4240 /* cpPivotJoint.c in Sources */, + 262829E415EC7196002C4240 /* cpRatchetJoint.c in Sources */, + 262829E515EC7196002C4240 /* cpRotaryLimitJoint.c in Sources */, + 262829E615EC7196002C4240 /* cpSimpleMotor.c in Sources */, + 262829E715EC7196002C4240 /* cpSlideJoint.c in Sources */, + 262829E815EC7196002C4240 /* cpArbiter.c in Sources */, + 262829E915EC7196002C4240 /* cpArray.c in Sources */, + 262829EA15EC7196002C4240 /* cpBB.c in Sources */, + 262829EB15EC7196002C4240 /* cpBBTree.c in Sources */, + 262829EC15EC7196002C4240 /* cpBody.c in Sources */, + 262829ED15EC7196002C4240 /* cpCollision.c in Sources */, + 262829EE15EC7196002C4240 /* cpHashSet.c in Sources */, + 262829EF15EC7196002C4240 /* cpPolyShape.c in Sources */, + 262829F015EC7196002C4240 /* cpShape.c in Sources */, + 262829F115EC7196002C4240 /* cpSpace.c in Sources */, + 262829F215EC7196002C4240 /* cpSpaceComponent.c in Sources */, + 262829F315EC7196002C4240 /* cpSpaceHash.c in Sources */, + 262829F415EC7196002C4240 /* cpSpaceQuery.c in Sources */, + 262829F515EC7196002C4240 /* cpSpaceStep.c in Sources */, + 262829F615EC7196002C4240 /* cpSpatialIndex.c in Sources */, + 262829F715EC7196002C4240 /* cpSweep1D.c in Sources */, + 262829F815EC7196002C4240 /* cpVect.c in Sources */, + 15384E5816119CC30021DC07 /* cocos2d_specifics.cpp in Sources */, + 15384E5916119CC30021DC07 /* cocosjs_manual_conversions.cpp in Sources */, + 15384E5A16119CC30021DC07 /* cocos2dx.cpp in Sources */, + 15384E5D16119CC30021DC07 /* js_bindings_ccbreader.cpp in Sources */, + 15384E6016119CC30021DC07 /* js_manual_conversions.cpp in Sources */, + 15384E6116119CC30021DC07 /* ScriptingCore.cpp in Sources */, + 15384ED716119D5E0021DC07 /* CCBAnimationManager.cpp in Sources */, + 15384ED816119D5E0021DC07 /* CCBFileLoader.cpp in Sources */, + 15384ED916119D5E0021DC07 /* CCBKeyframe.cpp in Sources */, + 15384EDA16119D5E0021DC07 /* CCBReader.cpp in Sources */, + 15384EDB16119D5E0021DC07 /* CCBSequence.cpp in Sources */, + 15384EDC16119D5E0021DC07 /* CCBSequenceProperty.cpp in Sources */, + 15384EDD16119D5E0021DC07 /* CCBValue.cpp in Sources */, + 15384EDE16119D5E0021DC07 /* CCControlButtonLoader.cpp in Sources */, + 15384EDF16119D5E0021DC07 /* CCControlLoader.cpp in Sources */, + 15384EE016119D5E0021DC07 /* CCData.cpp in Sources */, + 15384EE116119D5E0021DC07 /* CCLabelBMFontLoader.cpp in Sources */, + 15384EE216119D5E0021DC07 /* CCLabelTTFLoader.cpp in Sources */, + 15384EE316119D5E0021DC07 /* CCLayerColorLoader.cpp in Sources */, + 15384EE416119D5E0021DC07 /* CCLayerGradientLoader.cpp in Sources */, + 15384EE516119D5E0021DC07 /* CCLayerLoader.cpp in Sources */, + 15384EE616119D5E0021DC07 /* CCMenuItemImageLoader.cpp in Sources */, + 15384EE716119D5E0021DC07 /* CCMenuItemLoader.cpp in Sources */, + 15384EE816119D5E0021DC07 /* CCNode+CCBRelativePositioning.cpp in Sources */, + 15384EE916119D5E0021DC07 /* CCNodeLoader.cpp in Sources */, + 15384EEA16119D5E0021DC07 /* CCNodeLoaderLibrary.cpp in Sources */, + 15384EEB16119D5E0021DC07 /* CCParticleSystemQuadLoader.cpp in Sources */, + 15384EEC16119D5E0021DC07 /* CCScale9SpriteLoader.cpp in Sources */, + 15384EED16119D5E0021DC07 /* CCScrollViewLoader.cpp in Sources */, + 15384EEE16119D5E0021DC07 /* CCSpriteLoader.cpp in Sources */, + 15384EFB16119D5E0021DC07 /* CCEditBox.cpp in Sources */, + 15384EFD16119D5E0021DC07 /* CCEditBoxImplIOS.mm in Sources */, + 15384EFE16119D5E0021DC07 /* EditBoxImplIOS.mm in Sources */, + 15384EFF16119D5E0021DC07 /* CCScrollView.cpp in Sources */, + 15384F0016119D5E0021DC07 /* CCSorting.cpp in Sources */, + 15384F0116119D5E0021DC07 /* CCTableView.cpp in Sources */, + 15384F0216119D5E0021DC07 /* CCTableViewCell.cpp in Sources */, + 15CFE1A61612FD0E00BF2188 /* CCControl.cpp in Sources */, + 15CFE1A71612FD0E00BF2188 /* CCControlButton.cpp in Sources */, + 15CFE1A81612FD0E00BF2188 /* CCControlColourPicker.cpp in Sources */, + 15CFE1A91612FD0E00BF2188 /* CCControlHuePicker.cpp in Sources */, + 15CFE1AA1612FD0E00BF2188 /* CCControlPotentiometer.cpp in Sources */, + 15CFE1AB1612FD0E00BF2188 /* CCControlSaturationBrightnessPicker.cpp in Sources */, + 15CFE1AC1612FD0E00BF2188 /* CCControlSlider.cpp in Sources */, + 15CFE1AD1612FD0E00BF2188 /* CCControlStepper.cpp in Sources */, + 15CFE1AE1612FD0E00BF2188 /* CCControlSwitch.cpp in Sources */, + 15CFE1AF1612FD0E00BF2188 /* CCControlUtils.cpp in Sources */, + 15CFE1B01612FD0E00BF2188 /* CCInvocation.cpp in Sources */, + 15CFE1B11612FD0E00BF2188 /* CCScale9Sprite.cpp in Sources */, + 263B98D016548E4D00228D8A /* js_bindings_chipmunk_auto_classes.cpp in Sources */, + 263B98D116548E4D00228D8A /* js_bindings_chipmunk_registration.cpp in Sources */, + 263B98D216548E4D00228D8A /* js_bindings_core.cpp in Sources */, + 263B98D616548EB700228D8A /* js_bindings_chipmunk_functions.cpp in Sources */, + 263B98D716548EB700228D8A /* js_bindings_chipmunk_manual.cpp in Sources */, + 15E2AE9E165DC52C00F7743F /* CCPhysicsDebugNode.cpp in Sources */, + 15E2AE9F165DC52C00F7743F /* CCPhysicsSprite.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 15426FC215B5741900712A7F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = cocos2dx; + targetProxy = 15426FC115B5741900712A7F /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + A92276FE1517C097001B78AA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + DEBUG, + "COCOS2D_DEBUG=1", + USE_FILE32API, + TARGET_OS_IPHONE, + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(SRCROOT)/../../../cocos2dx", + "$(SRCROOT)/../../../cocos2dx/include", + "$(SRCROOT)/../../../cocos2dx/platform/ios", + "$(SRCROOT)/../../../scripting/javascript/spidermonkey-ios/include1", + ); + IPHONEOS_DEPLOYMENT_TARGET = 5.1; + SDKROOT = iphoneos; + }; + name = Debug; + }; + A92276FF1517C097001B78AA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PREPROCESSOR_DEFINITIONS = ( + NDEBUG, + USE_FILE32API, + TARGET_OS_IPHONE, + ); + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(SRCROOT)/../../../cocos2dx", + "$(SRCROOT)/../../../cocos2dx/include", + "$(SRCROOT)/../../../cocos2dx/platform/ios", + "$(SRCROOT)/../../../scripting/javascript/spidermonkey-ios/include1", + ); + IPHONEOS_DEPLOYMENT_TARGET = 5.1; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + SDKROOT = iphoneos; + }; + name = Release; + }; + A92277011517C097001B78AA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + COCOS2D_JAVASCRIPT, + DEBUG, + "COCOS2D_DEBUG=1", + USE_FILE32API, + TARGET_OS_IPHONE, + CC_ENABLE_CHIPMUNK_INTEGRATION, + ); + GCC_THUMB_SUPPORT = NO; + GCC_VERSION = com.apple.compilers.llvmgcc42; + HEADER_SEARCH_PATHS = ( + "\"$(SRCROOT)/../../../cocos2dx\"", + "\"$(SRCROOT)/../../../cocos2dx/kazmath/include\"", + "\"$(SRCROOT)/../../../CocosDenshion/include\"", + "\"$(SDKROOT)/usr/include/libxml2\"", + "$(SRCROOT)/../../../cocos2dx/include", + "$(SRCROOT)/../../../cocos2dx/platform/ios", + "$(SRCROOT)/../../../external/chipmunk/include/chipmunk", + "$(SRCROOT)/../../../scripting/javascript/spidermonkey-ios/include", + "$(SRCROOT)/../../../scripting/javascript/bindings", + ); + INFOPLIST_FILE = Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 5.1; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../scripting/javascript/spidermonkey-ios/lib\""; + OTHER_LDFLAGS = ( + "-lxml2", + "-lz", + "-ljs_static", + ); + PRODUCT_NAME = WatermelonWithMe; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + A92277021517C097001B78AA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + COCOS2D_JAVASCRIPT, + NDEBUG, + USE_FILE32API, + TARGET_OS_IPHONE, + CC_ENABLE_CHIPMUNK_INTEGRATION, + ); + GCC_THUMB_SUPPORT = NO; + HEADER_SEARCH_PATHS = ( + "\"$(SRCROOT)/../../../cocos2dx\"", + "\"$(SRCROOT)/../../../cocos2dx/kazmath/include\"", + "\"$(SRCROOT)/../../../CocosDenshion/include\"", + "\"$(SDKROOT)/usr/include/libxml2\"", + "$(SRCROOT)/../../../cocos2dx/include", + "$(SRCROOT)/../../../cocos2dx/platform/ios", + "$(SRCROOT)/../../../external/chipmunk/include/chipmunk", + "$(SRCROOT)/../../../scripting/javascript/spidermonkey-ios/include", + "$(SRCROOT)/../../../scripting/javascript/bindings", + ); + INFOPLIST_FILE = Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 5.1; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../scripting/javascript/spidermonkey-ios/lib\""; + OTHER_LDFLAGS = ( + "-lxml2", + "-lz", + "-ljs_static", + ); + PRODUCT_NAME = WatermelonWithMe; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A92275371517C094001B78AA /* Build configuration list for PBXProject "WatermelonWithMe" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A92276FE1517C097001B78AA /* Debug */, + A92276FF1517C097001B78AA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A92277001517C097001B78AA /* Build configuration list for PBXNativeTarget "WatermelonWithMe" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A92277011517C097001B78AA /* Debug */, + A92277021517C097001B78AA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = A92275341517C094001B78AA /* Project object */; +} diff --git a/samples/WatermelonWithMe/proj.ios/main.m b/samples/WatermelonWithMe/proj.ios/main.m new file mode 100644 index 0000000000..e3dedca28b --- /dev/null +++ b/samples/WatermelonWithMe/proj.ios/main.m @@ -0,0 +1,17 @@ +// +// main.m +// testjs +// +// Created by Rolando Abarca on 3/19/12. +// Copyright __MyCompanyName__ 2012. All rights reserved. +// + +#import + +int main(int argc, char *argv[]) { + + NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; + int retVal = UIApplicationMain(argc, argv, nil, @"AppController"); + [pool release]; + return retVal; +} diff --git a/samples/WatermelonWithMe/proj.win32/WatermelonWithMe.vcxproj b/samples/WatermelonWithMe/proj.win32/WatermelonWithMe.vcxproj new file mode 100644 index 0000000000..2f4008a093 --- /dev/null +++ b/samples/WatermelonWithMe/proj.win32/WatermelonWithMe.vcxproj @@ -0,0 +1,208 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {D0F06A44-A245-4D13-A498-0120C203B539} + WatermelonWithMe + + + + Application + Unicode + + + Application + Unicode + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + false + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + false + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + false + Win32 + true + $(IntDir)testjs.tlb + testjs.h + + + testjs_i.c + testjs_p.c + + + Disabled + $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\extensions;$(ProjectDir)..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\CocosDenshion\include;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;STRICT;_DEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_DEBUG=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + EditAndContinue + 4267;4251;4244;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + $(IntDir);%(AdditionalIncludeDirectories) + + + if not exist "$(OutDir)" mkdir "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)" + + + + libcocos2d.lib;libExtensions.lib;opengl32.lib;glew32.lib;libCocosDenshion.lib;libchipmunk.lib;mozjs.lib;ws2_32.lib;%(AdditionalDependencies) + $(OutDir);%(AdditionalLibraryDirectories) + true + Windows + MachineX86 + + + + + + + Copy js and resource files. + + + + + NDEBUG;%(PreprocessorDefinitions) + false + Win32 + true + $(IntDir)testjs.tlb + testjs.h + + + testjs_i.c + testjs_p.c + + + $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\extensions;$(ProjectDir)..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\CocosDenshion\include;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;STRICT;NDEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + MultiThreadedDLL + + + Level3 + + + 4267;4251;4244;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + $(IntDir);%(AdditionalIncludeDirectories) + + + if not exist "$(OutDir)" mkdir "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)" + + + + libcocos2d.lib;libExtensions.lib;opengl32.lib;glew32.lib;libCocosDenshion.lib;libchipmunk.lib;mozjs.lib;ws2_32.lib;%(AdditionalDependencies) + $(OutDir);%(AdditionalLibraryDirectories) + Windows + MachineX86 + + + if not exist "$(OutDir)" mkdir "$(OutDir)" +if exist "$(OutDir)\WatermelonWithMeRes" rd /s /q "$(OutDir)\WatermelonWithMeRes" +mkdir "$(OutDir)\WatermelonWithMeRes" +xcopy "$(ProjectDir)..\cocos2d-js-tests\res" "$(OutDir)\WatermelonWithMeRes\res\" /e /Y +xcopy "$(ProjectDir)..\bindings\*.js" "$(OutDir)\WatermelonWithMeRes" /e /Y +xcopy "$(ProjectDir)..\cocos2d-js-tests\src" "$(OutDir)\WatermelonWithMeRes\src\" /e /Y + + Copy js and resource files. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {98a51ba8-fc3a-415b-ac8f-8c7bd464e93e} + false + + + {f8edd7fa-9a51-4e80-baeb-860825d2eac6} + false + + + + + + \ No newline at end of file diff --git a/samples/WatermelonWithMe/proj.win32/WatermelonWithMe.vcxproj.filters b/samples/WatermelonWithMe/proj.win32/WatermelonWithMe.vcxproj.filters new file mode 100644 index 0000000000..e2dddfc6f6 --- /dev/null +++ b/samples/WatermelonWithMe/proj.win32/WatermelonWithMe.vcxproj.filters @@ -0,0 +1,125 @@ + + + + + {58ebb5df-595d-4e27-8c01-555be6f1c625} + + + {ca9c9e15-d942-43a1-aa7a-5f0b74ca1afd} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;jpg;jpeg;jpe;png;manifest + + + {ccb2323b-1cfa-41ea-bcf4-ba5f07309396} + + + {e93a77e1-af1e-4400-87d3-504b62ebdbb0} + + + {146f26cf-13e1-4106-891b-4b0118ceac2b} + + + + + win32 + + + Classes + + + bindings\generated + + + bindings + + + bindings + + + bindings + + + bindings + + + bindings + + + bindings + + + bindings + + + bindings + + + bindings + + + bindings + + + + + win32 + + + win32 + + + Classes + + + bindings\generated + + + bindings + + + bindings + + + bindings + + + bindings + + + bindings + + + bindings + + + bindings + + + bindings + + + bindings + + + bindings + + + bindings + + + bindings + + + bindings + + + + + resource + + + + + resource + + + \ No newline at end of file diff --git a/samples/WatermelonWithMe/proj.win32/WatermelonWithMe.vcxproj.user b/samples/WatermelonWithMe/proj.win32/WatermelonWithMe.vcxproj.user new file mode 100644 index 0000000000..3e49b0be7f --- /dev/null +++ b/samples/WatermelonWithMe/proj.win32/WatermelonWithMe.vcxproj.user @@ -0,0 +1,11 @@ + + + + $(OutDir)\WatermelonWithMeRes + WindowsLocalDebugger + + + $(OutDir)\WatermelonWithMeRes + WindowsLocalDebugger + + \ No newline at end of file diff --git a/samples/WatermelonWithMe/proj.win32/main.cpp b/samples/WatermelonWithMe/proj.win32/main.cpp new file mode 100644 index 0000000000..312eec8d7f --- /dev/null +++ b/samples/WatermelonWithMe/proj.win32/main.cpp @@ -0,0 +1,37 @@ +#include "main.h" +#include "AppDelegate.h" +#include "CCEGLView.h" + +USING_NS_CC; + +// uncomment below line, open debug console +// #define USE_WIN32_CONSOLE + +int APIENTRY _tWinMain(HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPTSTR lpCmdLine, + int nCmdShow) +{ + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine); + +#ifdef USE_WIN32_CONSOLE + AllocConsole(); + freopen("CONIN$", "r", stdin); + freopen("CONOUT$", "w", stdout); + freopen("CONOUT$", "w", stderr); +#endif + + // create the application instance + AppDelegate app; + CCEGLView* eglView = CCEGLView::sharedOpenGLView(); + eglView->setFrameSize(800, 450); + + int ret = CCApplication::sharedApplication()->run(); + +#ifdef USE_WIN32_CONSOLE + FreeConsole(); +#endif + + return ret; +} diff --git a/samples/WatermelonWithMe/proj.win32/main.h b/samples/WatermelonWithMe/proj.win32/main.h new file mode 100644 index 0000000000..abe1c3a007 --- /dev/null +++ b/samples/WatermelonWithMe/proj.win32/main.h @@ -0,0 +1,13 @@ +#ifndef __MAIN_H__ +#define __MAIN_H__ + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers + +// Windows Header Files: +#include +#include + +// C RunTime Header Files +#include "CCStdC.h" + +#endif // __WINMAIN_H__ diff --git a/samples/WatermelonWithMe/proj.win32/res/testjs.ico b/samples/WatermelonWithMe/proj.win32/res/testjs.ico new file mode 100644 index 0000000000000000000000000000000000000000..feaf932a7465e435af6271bd8204c0145731a6eb GIT binary patch literal 47629 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 0 ) + this._shapesToRemove = []; + }, + + // + // Level Setup + // + setupLevel : function(lvl) { + + var x = 0; + var y = 0; + var width = winSize.width; + var height = winSize.height; + + var level = levels[ lvl ]; + + var i=0; + // Coins + var coins = level['coins']; + for( i=0;i < coins.length; i++) { + var coin = coins[i]; + this.createCoin( cc._p( coin.x, coin.y) ); + } + + // car + var car = level['car']; + this.createCar( cp.v( car.x, car.y) ); + + // finish + var finish = level['finish']; + this.createFinish( cp._v(finish.x, finish.y) ); + + // lines + var poly = []; + var p = {x:0, y:0}; + var lines = level['lines']; + + for( i=0; i < lines.length; i++) { + var line = lines[i]; + if( i > 0 ) { + this.createSegment( cp._v(p.x, p.y), cp._v( p.x+line.x, p.y+line.y ) ); + this._terrain.drawSegment( cc._p(p.x, p.y), cc._p(p.x+line.x, p.y+line.y), 5, cc.c4f(0.43,0.39,0.34,1) ); + } + + p = {x:p.x+line.x, y:p.y+line.y}; + + poly.push( cc.p(p.x, p.y) ); + + // needed for world boundary + x = Math.min(x, p.x); + y = Math.min(y, p.y); + width = Math.max( width, p.x); + height = Math.max( height, p.y); + } + + poly.unshift( cc.p(x,y) ); + + // XXX: Bug in CCDrawNode: No tesselation, so "fill" is disabled + // XXX: CCDrawNode#drawPoly is super expensive... using drawSegment instead + // poly, fill color, border width, border color +// this._terrain.drawPoly( poly, cc.c4f(0,0,0,0 ), 1, cc.c4f(0.82,0.41,0.04,1) ); + + var rect = cc.rect(x,y,width,height+250); + var a = cc.Follow.create( this._carSprite, rect ); + this._scrollNode.runAction( a ); + + this.createWorldBoundary( rect ); + }, + + createWorldBoundary:function( rect ) { + + var staticBody = this._space.getStaticBody(); + + var x = rect.x; + var y = rect.y; + var w = rect.width; + var h = rect.height; + + // Walls + var walls =[new cp.SegmentShape( staticBody, cp._v(x,y), cp._v(w,y), 0 ), // bottom + new cp.SegmentShape( staticBody, cp._v(x,h), cp._v(w,h), 0), // top + new cp.SegmentShape( staticBody, cp._v(x,y), cp._v(x,h), 0), // left + new cp.SegmentShape( staticBody, cp._v(w,y), cp._v(w,h), 0) // right + ]; + for( var i=0; i < walls.length; i++ ) { + var wall = walls[i]; + wall.setElasticity(0); + wall.setFriction(0); + wall.setCollisionType(COLLISION_TYPE_FLOOR); + this._space.addStaticShape( wall ); + } + }, + + // + // Physics + // + initPhysics : function() { + this._space = new cp.Space(); + + // Gravity + this._space.gravity = cp._v(0, -GRAVITY); + + this.enableCollisionEvents( true ); + + // debug only + this._debugNode = cc.PhysicsDebugNode.create( this._space.handle ); + this._debugNode.setVisible( false ); + // Parallax ratio and offset + this._scrollNode.addChild( this._debugNode, Z_DEBUG_PHYSICS, cc._p(1,1), cc.POINT_ZERO ); + }, + + setThrottle : function( throttle ) { + if(throttle > 0){ + // The motor is modeled like an electric motor where the torque decreases inversely as the rate approaches the maximum. + // It's simple to code up and feels nice. + + // _motor.maxForce = cpfclamp01(1.0 - (_chassis.body.angVel - _rearWheel.body.angVel)/ENGINE_MAX_W)*ENGINE_MAX_TORQUE; + var maxForce = cp.fclamp01(1.0 - ( (this._chassis.getAngVel() - this._rearWheel.getAngVel()) / ENGINE_MAX_W)) * ENGINE_MAX_TORQUE; + this._motor.setMaxForce( maxForce ); + + // Set the brakes to apply the baseline rolling friction torque. + this._frontBrake.setMaxForce( ROLLING_FRICTION ); + this._rearBrake.setMaxForce( ROLLING_FRICTION ); + } else if(throttle < 0){ + // Disable the motor. + cp.constraintSetMaxForce( this._motor, 0 ); + // It would be a pretty good idea to give the front and rear brakes different torques. + // The buggy as is now has a tendency to tip forward when braking hard. + this._frontBrake.setMaxForce( BRAKING_TORQUE); + this._rearBrake.setMaxForce( BRAKING_TORQUE); + } else { + // Disable the motor. + this._motor.setMaxForce( 0 ); + // Set the brakes to apply the baseline rolling friction torque. + this._frontBrake.setMaxForce( ROLLING_FRICTION ); + this._rearBrake.setMaxForce( ROLLING_FRICTION ); + } + }, + + createCar : function(pos) { + var front = this.createWheel( cp.v.add(pos, cp._v(47,-25) ) ); + this._chassis = this.createChassis( cp.v.add( pos, COG_ADJUSTMENT ) ); + this._rearWheel = this.createWheel( cp.v.add( pos, cp._v(-35, -25) ) ); + this.createCarJoints( this._chassis, front, this._rearWheel ); + this.createCarFruits( pos ); + + this.setThrottle( 0 ); + }, + + createCarJoints: function( chassis, front, rear ) { + + // The front wheel strut telescopes, so we'll attach the center of the wheel to a groov joint on the chassis. + // I created the graphics specifically to have a 45 degree angle. So it's easy to just fudge the numbers. + var grv_a = chassis.world2Local( front.getPos() ); + var grv_b = cp.v.add( grv_a, cp.v.mult( cp._v(-1, 1), 7 ) ); + var frontJoint = new cp.GrooveJoint( chassis, front, grv_a, grv_b, cp.vzero ); + + // Create the front zero-length spring. + var front_anchor = chassis.world2Local( front.getPos() ); + var frontSpring = new cp.DampedSpring( chassis, front, front_anchor, cp.vzero, 0, FRONT_SPRING, FRONT_DAMPING ); + + // The rear strut is a swinging arm that holds the wheel a at a certain distance from a pivot on the chassis. + // A perfect fit for a pin joint conected between the chassis and the wheel's center. + var rearJoint = new cp.PinJoint( chassis, rear, cp.v.sub( cp._v(-14,-8), COG_ADJUSTMENT), cp.vzero ); + + // return cpvtoangle(cpvsub([_chassis.body local2world:_rearJoint.anchr1], _rearWheel.body.pos)); + var rearStrutRestAngle = cp.v.toangle( cp.v.sub( + chassis.local2World( rearJoint.getAnchr1() ), + rear.getPos() ) ); + + // Create the rear zero-length spring. + var rear_anchor = chassis.world2Local( rear.getPos() ); + var rearSpring = new cp.DampedSpring( chassis, rear, rear_anchor, cp.vzero, 0, REAR_SPRING, REAR_DAMPING ); + + // Attach a slide joint to the wheel to limit it's range of motion. + var rearStrutLimit = new cp.SlideJoint( chassis, rear, rear_anchor, cp.vzero, 0, 20 ); + + // The main motor that drives the buggy. + var motor = new cp.SimpleMotor( chassis, rear, ENGINE_MAX_W ); + motor.setMaxForce( 0.0 ); + + // I don't know if "differential" is the correct word, but it transfers a fraction of the rear torque to the front wheels. + // In case the rear wheels are slipping. This makes the buggy less frustrating when climbing steep hills. + var differential = new cp.SimpleMotor( rear, front, 0 ); + differential.setMaxForce( ENGINE_MAX_TORQUE*DIFFERENTIAL_TORQUE ); + + // Wheel brakes. + // While you could reuse the main motor for the brakes, it's easier not to. + // It won't cause a performance issue to have too many extra motors unless you have hundreds of buggies in the game. + // Even then, the motor constraints would be the least of your performance worries. + var frontBrake = new cp.SimpleMotor( chassis, front, 0 ); + frontBrake.setMaxForce( ROLLING_FRICTION ); + var rearBrake = new cp.SimpleMotor( chassis, rear, 0 ); + rearBrake.setMaxForce( ROLLING_FRICTION ); + + this._space.addConstraint( frontJoint ); + this._space.addConstraint( rearJoint ); + this._space.addConstraint( rearSpring ); + this._space.addConstraint( motor ); + this._space.addConstraint( differential ); + this._space.addConstraint( frontBrake ); + this._space.addConstraint( rearBrake ); + + this._motor = motor; + this._frontBrake = frontBrake; + this._rearBrake = rearBrake; + }, + + createWheel : function( pos ) { + var sprite = cc.PhysicsSprite.createWithSpriteFrameName("Wheel.png"); + var radius = 0.95 * sprite.getContentSize().width / 2; + + var body = new cp.Body(WHEEL_MASS, cp.momentForCircle(WHEEL_MASS, 0, radius, cp.vzero ) ); + body.setPos( pos ); + sprite.setBody( body.handle ); + + var shape = new cp.CircleShape( body, radius, cp.vzero ); + shape.setFriction( 1 ); + shape.setGroup( GROUP_BUGGY ); + shape.setLayers( COLLISION_LAYERS_BUGGY ); + shape.setCollisionType( COLLISION_TYPE_CAR ); + + this._space.addBody( body ); + this._space.addShape( shape ); + this._batch.addChild( sprite, Z_WHEEL); + + return body; + }, + + createChassis : function(pos) { + var sprite = cc.PhysicsSprite.createWithSpriteFrameName("Chassis.png"); + var anchor = cp.v.add( sprite.getAnchorPointInPoints(), COG_ADJUSTMENT ); + var cs = sprite.getContentSize(); + sprite.setAnchorPoint( cc.p(anchor.x / cs.width, anchor.y/cs.height) ); + + // XXX: Space Patrol uses a nice poly for the chassis. + // XXX: Add something similar here, instead of a boxed chassis + + var body = new cp.Body( CHASSIS_MASS, cp.momentForBox(CHASSIS_MASS, cs.width, cs.height ) ); + body.setPos( pos ); + sprite.setBody( body.handle ); + + this._space.addBody( body ); + this._batch.addChild( sprite, Z_CHASSIS ); + this._carSprite = sprite; + + // bottom of chassis + var shape = new cp.BoxShape( body, cs.width, 15 ); + shape.setFriction(0.3); + shape.setGroup( GROUP_BUGGY ); + shape.setLayers( COLLISION_LAYERS_BUGGY ); + shape.setCollisionType( COLLISION_TYPE_CAR ); + + this._space.addShape( shape ); + + // box for fruits (left) + shape = new cp.BoxShape2( body, cp.bb(-50, 0, -46, 30) ); + shape.setFriction(0.3); + shape.setGroup( GROUP_BUGGY ); + shape.setLayers( COLLISION_LAYERS_BUGGY ); + shape.setCollisionType( COLLISION_TYPE_CAR ); + this._space.addShape( shape ); + + // box for fruits (right) + shape = new cp.BoxShape2( body, cp.bb(8, 0, 12, 30) ); + shape.setFriction(0.3); + shape.setGroup( GROUP_BUGGY ); + shape.setLayers( COLLISION_LAYERS_BUGGY ); + shape.setCollisionType( COLLISION_TYPE_CAR ); + this._space.addShape( shape ); + + return body; + }, + + createCarFruits : function(pos) { + // create some fruits + for(var i=0; i < 4;i++) { + var sprite = cc.PhysicsSprite.createWithSpriteFrameName("watermelon.png"); + var radius = 0.95 * sprite.getContentSize().width / 2; + + var body = new cp.Body(WATERMELON_MASS, cp.momentForCircle(WATERMELON_MASS, 0, radius, cp.vzero) ); + body.setPos( pos ); + sprite.setBody( body.handle ); + + var shape = new cp.CircleShape( body, radius, cp.vzero ); + shape.setFriction( 1 ); + shape.setCollisionType( COLLISION_TYPE_WATERMELON); + + this._space.addShape( shape ); + this._space.addBody( body ); + this._batch.addChild( sprite, Z_WATERMELON ); + } + }, + + createCoin: function( pos ) { + // coins are static bodies and sensors + var sprite = cc.PhysicsSprite.createWithSpriteFrameName("coin01.png"); + var radius = 0.95 * sprite.getContentSize().width / 2; + + var body = new cp.StaticBody(); + body.setPos( pos ); + sprite.setBody( body.handle ); + + var shape = new cp.CircleShape( body, radius, cp.vzero ); + shape.setFriction( 1 ); + shape.setGroup( GROUP_COIN ); + shape.setCollisionType( COLLISION_TYPE_COIN ); + shape.setSensor( true ); + + // rogue ("orphan") bodies, needs to be added to a container, otherwise they could be GC'd + this._rogueBodies.push( body ); + this._space.addStaticShape( shape ); + this._batch.addChild( sprite, Z_COIN); + + var animation = cc.AnimationCache.getInstance().getAnimation("coin"); + var animate = cc.Animate.create(animation); + var repeat = cc.RepeatForever.create( animate ); + sprite.runAction( repeat ); + + // Needed for deletion + body.setUserData( sprite ); + + return body; + }, + + createFinish:function( pos ) { + var sprite = cc.PhysicsSprite.createWithSpriteFrameName("farmers-market.png"); + var cs = sprite.getContentSize(); + var body = new cp.StaticBody(); + sprite.setBody( body.handle ); + body.setPos( pos ); + + + var shape = new cp.BoxShape( body, cs.width, cs.height ); + shape.setCollisionType( COLLISION_TYPE_FINISH ); + shape.setSensor( true ); + + // rogue ("orphan") bodies, needs to be added to a container, otherwise they could be GC'd + this._rogueBodies.push( body ); + this._space.addStaticShape( shape ); + this._batch.addChild( sprite, Z_FINISH); + }, + + createSegment: function( src, dst) { + var staticBody = this._space.getStaticBody(); + var segment = new cp.SegmentShape( staticBody, src, dst, 5 ); + segment.setElasticity(1); + segment.setFriction(1); + segment.setCollisionType(COLLISION_TYPE_FLOOR); + this._space.addStaticShape( segment ); + }, + + // + // Game State + // + + // call the 'deferred' option if you want to modify Chipmunk's state from a Chipmunk's callback + setGameStateDeferred: function( state ) { + this._deferredState = state; + }, + + setGameState: function( state ) { + if( state != this._state ) { + + if( state == STATE_GAME_OVER ) + this.displayGameOver(); + + else if (state == STATE_LEVEL_COMPLETE ) + this.displayLevelComplete(); + + this._state = state; + } + this._deferredState = null; + }, + + displayLevelComplete:function() { + var legend = ""; + var menu = null; + var item1 = null; + + if( this._level+1 < levels.length ) { + cc.MenuItemFont.setFontSize(16 * sizeRatio ); + item1 = cc.MenuItemFont.create("Next Level", this.onNextLevel, this); + menu = cc.Menu.create( item1 ); + menu.alignItemsVertically(); + this.addChild( menu, Z_DEBUG_MENU ); + menu.setPosition( winSize.width/2, winSize.height/3 ); + + legend = "LEVEL COMPLETE"; + } else { + cc.MenuItemFont.setFontSize(16 * sizeRatio ); + item1 = cc.MenuItemFont.create("Main Menu", this.onMainMenu, this); + menu = cc.Menu.create( item1 ); + menu.alignItemsVertically(); + this.addChild( menu, Z_DEBUG_MENU ); + menu.setPosition( winSize.width/2, winSize.height/3 ); + + legend = "GAME COMPLETE"; + } + + var label = cc.LabelBMFont.create(legend, "Abadi40.fnt" ); + label.setPosition( centerPos ); + label.setScale(0.2); + var sa = cc.ScaleTo.create(0.5, 1.05 ); + var sb1 = cc.ScaleTo.create(0.5, 1 ); + var sb2 = cc.ScaleTo.create(0.5, 1.05); + var seq = cc.Sequence.create( sb1, sb2 ); + var rep = cc.Repeat.create( seq, 1000 ); + var all = cc.Sequence.create( sa, rep ); + label.runAction( all ); + this.addChild( label, Z_LABEL ); + + this.enableEvents( false ); + this.enableCollisionEvents( false ); + + audioEngine.playEffect("LevelComplete.wav"); + }, + + displayGameOver:function() { + var label = cc.LabelBMFont.create("GAME OVER", "Abadi40.fnt" ); + label.setPosition( centerPos ); + this.addChild( label, Z_LABEL ); + label.setScale(0.2); + var sa = cc.ScaleTo.create(0.5, 1.05 ); + var sb1 = cc.ScaleTo.create(0.5, 1 ); + var sb2 = cc.ScaleTo.create(0.5, 1.05); + var seq = cc.Sequence.create( sb1, sb2 ); + var rep = cc.Repeat.create( seq, 1000 ); + var all = cc.Sequence.create( sa, rep ); + label.runAction( all ); + + this.enableEvents( false ); + this.enableCollisionEvents( false ); + + audioEngine.playEffect("GameOver.wav"); + + cc.MenuItemFont.setFontSize(16 * sizeRatio ); + var item1 = cc.MenuItemFont.create("Play Again", this.onRestart, this); + var item2 = cc.MenuItemFont.create("Main Menu", this.onMainMenu, this); + var menu = cc.Menu.create( item1, item2 ); + menu.alignItemsVertically(); + this.addChild( menu, Z_DEBUG_MENU ); + menu.setPosition( winSize.width/2, winSize.height/3 ); + }, + + + // + // Helpers + // + enableEvents:function(enabled) { + var t = cc.config.platform; + if( t == 'browser' ) { + // this.setTouchEnabled(true); + // this.setKeyboardEnabled(true); + } else if( t == 'desktop' ) { + this.setMouseEnabled(true); + } else if( t == 'mobile' ) { + this.setTouchEnabled(true); + } + }, + + enableCollisionEvents:function(enabled) { + if( enabled ) { + // collision handler + this._space.addCollisionHandler( COLLISION_TYPE_CAR, COLLISION_TYPE_COIN, this.onCollisionBeginCoin.bind(this), null, null, null ); + this._space.addCollisionHandler( COLLISION_TYPE_CAR, COLLISION_TYPE_FINISH, this.onCollisionBeginFinish.bind(this), null, null, null ); + this._space.addCollisionHandler( COLLISION_TYPE_FLOOR, COLLISION_TYPE_WATERMELON, this.onCollisionBeginWatermelon.bind(this), null, null, null ); + } else { + this._space.removeCollisionHandler( COLLISION_TYPE_FLOOR, COLLISION_TYPE_WATERMELON ); + this._space.removeCollisionHandler( COLLISION_TYPE_COIN, COLLISION_TYPE_CAR ); + this._space.removeCollisionHandler( COLLISION_TYPE_FINISH, COLLISION_TYPE_CAR ); + } + } + +}); + +// +// Boot Layer +// +var BootLayer = cc.Layer.extend({ + + ctor:function () { + cc.associateWithNative(this, cc.Layer); + this.init(); + + // music + audioEngine.playMusic("game-music.mp3"); + audioEngine.preloadEffect("pickup_coin.wav"); + + var cache = cc.SpriteFrameCache.getInstance(); + cache.addSpriteFrames( "coins.plist" ); + + __jsc__.dumpRoot(); + __jsc__.garbageCollect(); + }, + + onEnter:function() { + var scene = cc.Reader.loadAsScene("MainMenu.ccbi"); + director.replaceScene( scene ); + } +}); + +// +// Main Menu +// + +// 'MenuLayerController' class is instantiated by CocosBuilder Reader +var MenuLayerController = function() {}; + +// callback triggered by CCB Reader once the instance is created +MenuLayerController.prototype.onDidLoadFromCCB = function() +{ + // Spin the 'o' in the title + var o = this.titleLabel.getChildByTag( 8 ); + + var a_delay = cc.DelayTime.create(6); + var a_tint = cc.TintTo.create( 0.5, 0, 255, 0 ); + var a_rotate = cc.RotateBy.create( 4, 360 ); + var a_rep = cc.Repeat.create( a_rotate, 1000 ); + var a_seq = cc.Sequence.create( a_delay, a_tint, a_delay.copy(), a_rep ); + o.runAction( a_seq ); +}; + +// callbacks for the menu, defined in the editor +MenuLayerController.prototype.onPlay = function() +{ + var scene = cc.Scene.create(); + var layer = new GameLayer(0); + scene.addChild( layer ); + director.replaceScene( cc.TransitionFade.create(1, scene) ); +}; + +MenuLayerController.prototype.onOptions = function() +{ + var scene = cc.Scene.create(); + var layer = new OptionsLayer(); + scene.addChild( layer ); + director.replaceScene( cc.TransitionFlipY.create(1, scene) ); +}; + +MenuLayerController.prototype.onAbout = function() +{ + /*var scene = cc.Scene.create(); + var layer = new AboutLayer(); + scene.addChild( layer );*/ + var scene = cc.Reader.loadAsScene("About.ccbi"); + director.replaceScene( cc.TransitionZoomFlipY.create(1, scene) ); +}; + +// +// About +// +var AboutLayerController = function() {}; + +AboutLayerController.prototype.onDidLoadFromCCB = function() +{ + var back = cc.MenuItemFont.create("Back", this.onBack, this ); + back.setColor( cc.BLACK ); + var menu = cc.Menu.create( back ); + this.rootNode.addChild( menu ); + menu.zOrder = 100; + menu.alignItemsVertically(); + menu.setPosition( winSize.width - 50, 50 ); +}; + +AboutLayerController.prototype.onBack = function() +{ + var scene = cc.Reader.loadAsScene("MainMenu.ccbi"); + director.replaceScene( scene ); +}; + +// +// Options +// +var OptionsLayer = cc.LayerGradient.extend({ + + ctor:function () { + cc.associateWithNative(this, cc.LayerGradient); + this.init(cc.c4b(0, 0, 0, 255), cc.c4b(255, 255, 255, 255)); + + var label1 = cc.LabelBMFont.create("MUSIC ON", "konqa32.fnt" ); + var item1 = cc.MenuItemLabel.create(label1); + var label2 = cc.LabelBMFont.create("MUSIC OFF", "konqa32.fnt" ); + var item2 = cc.MenuItemLabel.create(label2); + var toggle = cc.MenuItemToggle.create( item1, item2 ); + toggle.setCallback(this.onMusicToggle, this); + + var back = cc.MenuItemFont.create("Back", this.onBack, this ); + var menu = cc.Menu.create( toggle, back ); + this.addChild( menu ); + menu.alignItemsVertically(); + menu.setPosition( centerPos ); + + __jsc__.dumpRoot(); + __jsc__.garbageCollect(); + }, + + onBack:function( sender) { + var scene = cc.Reader.loadAsScene("MainMenu.ccbi"); + director.replaceScene( scene ); + }, + + onMusicToggle:function( sender ) { + // music + if ( audioEngine.isMusicPlaying() ) { + audioEngine.stopMusic(); + } else { + audioEngine.playMusic("game-music.mp3"); + } + } +}); + +//------------------------------------------------------------------ +// +// Main entry point +// +//------------------------------------------------------------------ +function run() +{ + // update globals + winSize = director.getWinSize(); + centerPos = cc.p( winSize.width/2, winSize.height/2 ); + + var scene = cc.Scene.create(); + + // main menu + var menu = new BootLayer(); + scene.addChild( menu); + + var runningScene = director.getRunningScene(); + if( runningScene === null ) + director.runWithScene( scene ); + else + director.replaceScene( cc.TransitionFade.create(0.5, scene ) ); +} + +run(); +