diff --git a/.gitignore b/.gitignore index 172b348..a81d757 100644 --- a/.gitignore +++ b/.gitignore @@ -144,3 +144,9 @@ tests/cpp-tests/Resources/audio /external/ConvertUTF/ /external/audio/ /external/xxtea/ +/proj.ios_mac/Programmers Guide.xcodeproj/project.xcworkspace/xcshareddata/Programmers Guide.xccheckout +/_artwork/.DS_Store +/_artwork/PNG/.DS_Store +/proj.ios_mac/Programmers Guide.xcodeproj/project.xcworkspace/xcshareddata/Chapter 2.xccheckout +/proj.ios_mac/Programmers Guide.xcodeproj/project.xcworkspace/xcshareddata/Programmers Guide.xccheckout +/proj.ios_mac/Programmers Guide.xcodeproj/project.xcworkspace/xcshareddata/chapter2.xccheckout diff --git a/README.md b/README.md index b19a01f..7f31d95 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,9 @@ * `auto` is used for creating local variables. * `using namespace cocos2d;` is used to shorten types. * each chapter has a compilable source code sample to demonstrate concepts. - +* each chapter should subclass `Ref` +* each chapter should do as much work in the constructor. no need for `::init()` +* model the code design after chapter 2's example code. Follow these same conventions. ## How to compile the samples diff --git a/_artwork/.DS_Store b/_artwork/.DS_Store deleted file mode 100644 index 217dadf..0000000 Binary files a/_artwork/.DS_Store and /dev/null differ diff --git a/_artwork/PNG/.DS_Store b/_artwork/PNG/.DS_Store deleted file mode 100644 index 4623787..0000000 Binary files a/_artwork/PNG/.DS_Store and /dev/null differ diff --git a/proj.ios_mac/Chapter 2 Mac copy-Info.plist b/proj.ios_mac/Mac-Info.plist similarity index 90% rename from proj.ios_mac/Chapter 2 Mac copy-Info.plist rename to proj.ios_mac/Mac-Info.plist index c660bd1..26a4afc 100644 --- a/proj.ios_mac/Chapter 2 Mac copy-Info.plist +++ b/proj.ios_mac/Mac-Info.plist @@ -9,7 +9,7 @@ CFBundleIconFile Icon CFBundleIdentifier - org.cocos2dx.chapter2 + org.cocos2dx.${PRODUCT_NAME} CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -27,7 +27,7 @@ LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} NSHumanReadableCopyright - Copyright © 2013. All rights reserved. + Copyright © 2014. All rights reserved. NSMainNibFile MainMenu NSPrincipalClass diff --git a/proj.ios_mac/Programmers Guide.xcodeproj/project.pbxproj b/proj.ios_mac/Programmers Guide.xcodeproj/project.pbxproj index 1bd94b5..0dade61 100644 --- a/proj.ios_mac/Programmers Guide.xcodeproj/project.pbxproj +++ b/proj.ios_mac/Programmers Guide.xcodeproj/project.pbxproj @@ -10,6 +10,131 @@ 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; + 296358BC19F78D4F003732AB /* Icon-120.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77617EB970100C73F5D /* Icon-120.png */; }; + 296358BE19F78D4F003732AB /* Icon-76.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77B17EB970100C73F5D /* Icon-76.png */; }; + 296358BF19F78D4F003732AB /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77417EB970100C73F5D /* Default@2x.png */; }; + 296358C019F78D4F003732AB /* Icon-100.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629517ECD46A001EB2F8 /* Icon-100.png */; }; + 296358C319F78D4F003732AB /* Icon-152.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77817EB970100C73F5D /* Icon-152.png */; }; + 296358C519F78D4F003732AB /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77217EB970100C73F5D /* Default-568h@2x.png */; }; + 296358C619F78D4F003732AB /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77A17EB970100C73F5D /* Icon-72.png */; }; + 296358CB19F78D4F003732AB /* Icon-50.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A117ECD613001EB2F8 /* Icon-50.png */; }; + 296358CC19F78D4F003732AB /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526C019D4E0020013F222 /* Marker Felt.ttf */; }; + 296358CD19F78D4F003732AB /* Icon-114.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77517EB970100C73F5D /* Icon-114.png */; }; + 296358CE19F78D4F003732AB /* Icon-29.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A017ECD613001EB2F8 /* Icon-29.png */; }; + 296358CF19F78D4F003732AB /* Icon-40.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629217ECD46A001EB2F8 /* Icon-40.png */; }; + 296358D019F78D4F003732AB /* Icon-144.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77717EB970100C73F5D /* Icon-144.png */; }; + 296358D119F78D4F003732AB /* Icon-80.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629417ECD46A001EB2F8 /* Icon-80.png */; }; + 296358D519F78D4F003732AB /* Icon-57.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77917EB970100C73F5D /* Icon-57.png */; }; + 296358D919F78D4F003732AB /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77317EB970100C73F5D /* Default.png */; }; + 296358DA19F78D4F003732AB /* Icon-58.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629317ECD46A001EB2F8 /* Icon-58.png */; }; + 296358DE19F78D4F003732AB /* AppController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FB17EB989F00D1A890 /* AppController.mm */; }; + 296358E019F78D4F003732AB /* RootViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FF17EB989F00D1A890 /* RootViewController.mm */; }; + 296358E119F78D4F003732AB /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FC17EB989F00D1A890 /* main.m */; }; + 296358E319F78D4F003732AB /* libcocos2d iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50BA599319D492B60070A133 /* libcocos2d iOS.a */; }; + 296358E419F78D4F003732AB /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6B0611A1803AB670077942B /* CoreMotion.framework */; }; + 296358E519F78D4F003732AB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 296358E619F78D4F003732AB /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; + 296358E719F78D4F003732AB /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; + 296358E819F78D4F003732AB /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB012928DE900B8313A /* OpenGLES.framework */; }; + 296358E919F78D4F003732AB /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; }; + 296358EA19F78D4F003732AB /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; }; + 296358EB19F78D4F003732AB /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; }; + 296358EC19F78D4F003732AB /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; }; + 296358ED19F78D4F003732AB /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; }; + 296358F819F78D81003732AB /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 296358F419F78D81003732AB /* AppDelegate.cpp */; }; + 296358F919F78D81003732AB /* Chapter6.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 296358F619F78D81003732AB /* Chapter6.cpp */; }; + 2963590A19F78ED4003732AB /* arial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 296358FE19F78ED4003732AB /* arial.ttf */; }; + 2963590B19F78ED4003732AB /* bitmapFontTest.fnt in Resources */ = {isa = PBXBuildFile; fileRef = 296358FF19F78ED4003732AB /* bitmapFontTest.fnt */; }; + 2963590C19F78ED4003732AB /* bitmapFontTest.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590019F78ED4003732AB /* bitmapFontTest.png */; }; + 2963590D19F78ED4003732AB /* labelatlasimg.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590119F78ED4003732AB /* labelatlasimg.png */; }; + 2963590E19F78ED4003732AB /* leftNormal.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590219F78ED4003732AB /* leftNormal.png */; }; + 2963590F19F78ED4003732AB /* leftSelected.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590319F78ED4003732AB /* leftSelected.png */; }; + 2963591019F78ED4003732AB /* menuItemSpriteNormal.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590419F78ED4003732AB /* menuItemSpriteNormal.png */; }; + 2963591119F78ED4003732AB /* menuItemSpriteSelected.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590519F78ED4003732AB /* menuItemSpriteSelected.png */; }; + 2963591219F78ED4003732AB /* restartNormal.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590619F78ED4003732AB /* restartNormal.png */; }; + 2963591319F78ED4003732AB /* restartSelected.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590719F78ED4003732AB /* restartSelected.png */; }; + 2963591419F78ED4003732AB /* rightNormal.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590819F78ED4003732AB /* rightNormal.png */; }; + 2963591519F78ED4003732AB /* rightSelected.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590919F78ED4003732AB /* rightSelected.png */; }; + 2963592B19F78F74003732AB /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 503AE0F617EB97AB00D1A890 /* Icon.icns */; }; + 2963593219F78F74003732AB /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 503AE10317EB98FF00D1A890 /* main.cpp */; }; + 2963593419F78F74003732AB /* libcocos2d Mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50BA599119D492B60070A133 /* libcocos2d Mac.a */; }; + 2963593519F78F74003732AB /* libcurl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 503AE11117EB99EE00D1A890 /* libcurl.dylib */; }; + 2963593619F78F74003732AB /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; }; + 2963593719F78F74003732AB /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 503AE11A17EB9C5A00D1A890 /* IOKit.framework */; }; + 2963593819F78F74003732AB /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78A17EB975400C73F5D /* OpenGL.framework */; }; + 2963593919F78F74003732AB /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78817EB974C00C73F5D /* AppKit.framework */; }; + 2963593A19F78F74003732AB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 2963593B19F78F74003732AB /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; }; + 2963593C19F78F74003732AB /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; }; + 2963593D19F78F74003732AB /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; }; + 2963593E19F78F74003732AB /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; }; + 2963594419F78F9D003732AB /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 296358F419F78D81003732AB /* AppDelegate.cpp */; }; + 2963594519F78F9D003732AB /* AppDelegate.h in Sources */ = {isa = PBXBuildFile; fileRef = 296358F519F78D81003732AB /* AppDelegate.h */; }; + 2963594619F78F9D003732AB /* Chapter6.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 296358F619F78D81003732AB /* Chapter6.cpp */; }; + 2963594719F78F9D003732AB /* Chapter6.h in Sources */ = {isa = PBXBuildFile; fileRef = 296358F719F78D81003732AB /* Chapter6.h */; }; + 2963594819F78FC4003732AB /* arial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 296358FE19F78ED4003732AB /* arial.ttf */; }; + 2963594919F78FC4003732AB /* bitmapFontTest.fnt in Resources */ = {isa = PBXBuildFile; fileRef = 296358FF19F78ED4003732AB /* bitmapFontTest.fnt */; }; + 2963594A19F78FC4003732AB /* bitmapFontTest.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590019F78ED4003732AB /* bitmapFontTest.png */; }; + 2963594B19F78FC4003732AB /* labelatlasimg.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590119F78ED4003732AB /* labelatlasimg.png */; }; + 2963594C19F78FC4003732AB /* leftNormal.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590219F78ED4003732AB /* leftNormal.png */; }; + 2963594D19F78FC4003732AB /* leftSelected.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590319F78ED4003732AB /* leftSelected.png */; }; + 2963594E19F78FC4003732AB /* menuItemSpriteNormal.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590419F78ED4003732AB /* menuItemSpriteNormal.png */; }; + 2963594F19F78FC4003732AB /* menuItemSpriteSelected.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590519F78ED4003732AB /* menuItemSpriteSelected.png */; }; + 2963595019F78FC4003732AB /* restartNormal.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590619F78ED4003732AB /* restartNormal.png */; }; + 2963595119F78FC4003732AB /* restartSelected.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590719F78ED4003732AB /* restartSelected.png */; }; + 2963595219F78FC4003732AB /* rightNormal.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590819F78ED4003732AB /* rightNormal.png */; }; + 2963595319F78FC4003732AB /* rightSelected.png in Resources */ = {isa = PBXBuildFile; fileRef = 2963590919F78ED4003732AB /* rightSelected.png */; }; + 3EE7F8C019ED607500448914 /* Icon-120.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77617EB970100C73F5D /* Icon-120.png */; }; + 3EE7F8C219ED607500448914 /* Icon-76.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77B17EB970100C73F5D /* Icon-76.png */; }; + 3EE7F8C319ED607500448914 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77417EB970100C73F5D /* Default@2x.png */; }; + 3EE7F8C419ED607500448914 /* Icon-100.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629517ECD46A001EB2F8 /* Icon-100.png */; }; + 3EE7F8C519ED607500448914 /* Icon-152.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77817EB970100C73F5D /* Icon-152.png */; }; + 3EE7F8C619ED607500448914 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77217EB970100C73F5D /* Default-568h@2x.png */; }; + 3EE7F8C719ED607500448914 /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77A17EB970100C73F5D /* Icon-72.png */; }; + 3EE7F8C919ED607500448914 /* Icon-50.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A117ECD613001EB2F8 /* Icon-50.png */; }; + 3EE7F8CA19ED607500448914 /* Icon-114.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77517EB970100C73F5D /* Icon-114.png */; }; + 3EE7F8CB19ED607500448914 /* Icon-29.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A017ECD613001EB2F8 /* Icon-29.png */; }; + 3EE7F8CC19ED607500448914 /* Icon-40.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629217ECD46A001EB2F8 /* Icon-40.png */; }; + 3EE7F8CD19ED607500448914 /* Icon-144.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77717EB970100C73F5D /* Icon-144.png */; }; + 3EE7F8CE19ED607500448914 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526C019D4E0020013F222 /* Marker Felt.ttf */; }; + 3EE7F8CF19ED607500448914 /* Icon-80.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629417ECD46A001EB2F8 /* Icon-80.png */; }; + 3EE7F8D219ED607500448914 /* Icon-57.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77917EB970100C73F5D /* Icon-57.png */; }; + 3EE7F8D419ED607500448914 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77317EB970100C73F5D /* Default.png */; }; + 3EE7F8D519ED607500448914 /* Icon-58.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629317ECD46A001EB2F8 /* Icon-58.png */; }; + 3EE7F8D919ED607500448914 /* AppController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FB17EB989F00D1A890 /* AppController.mm */; }; + 3EE7F8DB19ED607500448914 /* RootViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FF17EB989F00D1A890 /* RootViewController.mm */; }; + 3EE7F8DC19ED607500448914 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FC17EB989F00D1A890 /* main.m */; }; + 3EE7F8DE19ED607500448914 /* libcocos2d iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50BA599319D492B60070A133 /* libcocos2d iOS.a */; }; + 3EE7F8DF19ED607500448914 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6B0611A1803AB670077942B /* CoreMotion.framework */; }; + 3EE7F8E019ED607500448914 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 3EE7F8E119ED607500448914 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; + 3EE7F8E219ED607500448914 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; + 3EE7F8E319ED607500448914 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB012928DE900B8313A /* OpenGLES.framework */; }; + 3EE7F8E419ED607500448914 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; }; + 3EE7F8E519ED607500448914 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; }; + 3EE7F8E619ED607500448914 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; }; + 3EE7F8E719ED607500448914 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; }; + 3EE7F8E819ED607500448914 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; }; + 3EE7F8F219ED607800448914 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526C019D4E0020013F222 /* Marker Felt.ttf */; }; + 3EE7F8F819ED607800448914 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 503AE0F617EB97AB00D1A890 /* Icon.icns */; }; + 3EE7F8FC19ED607800448914 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 503AE10317EB98FF00D1A890 /* main.cpp */; }; + 3EE7F8FF19ED607800448914 /* libcocos2d Mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50BA599119D492B60070A133 /* libcocos2d Mac.a */; }; + 3EE7F90019ED607800448914 /* libcurl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 503AE11117EB99EE00D1A890 /* libcurl.dylib */; }; + 3EE7F90119ED607800448914 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; }; + 3EE7F90219ED607800448914 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 503AE11A17EB9C5A00D1A890 /* IOKit.framework */; }; + 3EE7F90319ED607800448914 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78A17EB975400C73F5D /* OpenGL.framework */; }; + 3EE7F90419ED607800448914 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78817EB974C00C73F5D /* AppKit.framework */; }; + 3EE7F90519ED607800448914 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 3EE7F90619ED607800448914 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; }; + 3EE7F90719ED607800448914 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; }; + 3EE7F90819ED607800448914 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; }; + 3EE7F90919ED607800448914 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; }; + 3EE7F91419ED60DF00448914 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3EE7F91019ED60DF00448914 /* AppDelegate.cpp */; }; + 3EE7F91519ED60DF00448914 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3EE7F91019ED60DF00448914 /* AppDelegate.cpp */; }; + 3EE7F91619ED60DF00448914 /* Chapter12.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3EE7F91219ED60DF00448914 /* Chapter12.cpp */; }; + 3EE7F91719ED60DF00448914 /* Chapter12.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3EE7F91219ED60DF00448914 /* Chapter12.cpp */; }; + 3EE7F91919ED60F200448914 /* chapter12 in Resources */ = {isa = PBXBuildFile; fileRef = 3EE7F91819ED60F200448914 /* chapter12 */; }; + 3EE7F91A19ED60F200448914 /* chapter12 in Resources */ = {isa = PBXBuildFile; fileRef = 3EE7F91819ED60F200448914 /* chapter12 */; }; 503AE0F817EB97AB00D1A890 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 503AE0F617EB97AB00D1A890 /* Icon.icns */; }; 503AE10017EB989F00D1A890 /* AppController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FB17EB989F00D1A890 /* AppController.mm */; }; 503AE10117EB989F00D1A890 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FC17EB989F00D1A890 /* main.m */; }; @@ -35,14 +160,16 @@ 5087E78617EB970100C73F5D /* Icon-76.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77B17EB970100C73F5D /* Icon-76.png */; }; 5087E78917EB974C00C73F5D /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78817EB974C00C73F5D /* AppKit.framework */; }; 5087E78B17EB975400C73F5D /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78A17EB975400C73F5D /* OpenGL.framework */; }; + 50A5DBBF19EC441300082E51 /* sprites.plist in Resources */ = {isa = PBXBuildFile; fileRef = 50A5DBBD19EC441300082E51 /* sprites.plist */; }; + 50A5DBC019EC441300082E51 /* sprites.plist in Resources */ = {isa = PBXBuildFile; fileRef = 50A5DBBD19EC441300082E51 /* sprites.plist */; }; + 50A5DBC119EC441300082E51 /* sprites.pvr.ccz in Resources */ = {isa = PBXBuildFile; fileRef = 50A5DBBE19EC441300082E51 /* sprites.pvr.ccz */; }; + 50A5DBC219EC441300082E51 /* sprites.pvr.ccz in Resources */ = {isa = PBXBuildFile; fileRef = 50A5DBBE19EC441300082E51 /* sprites.pvr.ccz */; }; 50BA599E19D493310070A133 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 50BA599A19D493310070A133 /* AppDelegate.cpp */; }; 50BA599F19D493310070A133 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 50BA599A19D493310070A133 /* AppDelegate.cpp */; }; 50BA59A019D493310070A133 /* Chapter2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 50BA599C19D493310070A133 /* Chapter2.cpp */; }; 50BA59A119D493310070A133 /* Chapter2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 50BA599C19D493310070A133 /* Chapter2.cpp */; }; 50BA59A219D498180070A133 /* libcocos2d Mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50BA599119D492B60070A133 /* libcocos2d Mac.a */; }; 50BA59A319D4981C0070A133 /* libcocos2d iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50BA599319D492B60070A133 /* libcocos2d iOS.a */; }; - 50BA59AE19D498F00070A133 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 50BA59A819D498F00070A133 /* Marker Felt.ttf */; }; - 50BA59AF19D498F00070A133 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 50BA59A819D498F00070A133 /* Marker Felt.ttf */; }; 50BA59B619D4992C0070A133 /* Icon-120.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77617EB970100C73F5D /* Icon-120.png */; }; 50BA59B719D4992C0070A133 /* Icon-76.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77B17EB970100C73F5D /* Icon-76.png */; }; 50BA59B819D4992C0070A133 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77417EB970100C73F5D /* Default@2x.png */; }; @@ -86,80 +213,24 @@ 50BA59F719D499360070A133 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; }; 50BA59F819D499360070A133 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; }; 50BA59F919D499360070A133 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; }; - 50BA5A0419D49A2F0070A133 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 50BA5A0019D49A2F0070A133 /* AppDelegate.cpp */; }; - 50BA5A0519D49A2F0070A133 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 50BA5A0019D49A2F0070A133 /* AppDelegate.cpp */; }; - 50BA5A0619D49A2F0070A133 /* Chapter10.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 50BA5A0219D49A2F0070A133 /* Chapter10.cpp */; }; - 50BA5A0719D49A2F0070A133 /* Chapter10.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 50BA5A0219D49A2F0070A133 /* Chapter10.cpp */; }; - 50BA5A0E19D49A3F0070A133 /* CloseNormal.png in Resources */ = {isa = PBXBuildFile; fileRef = 50BA5A0919D49A3F0070A133 /* CloseNormal.png */; }; - 50BA5A0F19D49A3F0070A133 /* CloseNormal.png in Resources */ = {isa = PBXBuildFile; fileRef = 50BA5A0919D49A3F0070A133 /* CloseNormal.png */; }; - 50BA5A1019D49A3F0070A133 /* CloseSelected.png in Resources */ = {isa = PBXBuildFile; fileRef = 50BA5A0A19D49A3F0070A133 /* CloseSelected.png */; }; - 50BA5A1119D49A3F0070A133 /* CloseSelected.png in Resources */ = {isa = PBXBuildFile; fileRef = 50BA5A0A19D49A3F0070A133 /* CloseSelected.png */; }; - 50BA5A1219D49A3F0070A133 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 50BA5A0C19D49A3F0070A133 /* Marker Felt.ttf */; }; - 50BA5A1319D49A3F0070A133 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 50BA5A0C19D49A3F0070A133 /* Marker Felt.ttf */; }; - 50BA5A1419D49A3F0070A133 /* HelloWorld.png in Resources */ = {isa = PBXBuildFile; fileRef = 50BA5A0D19D49A3F0070A133 /* HelloWorld.png */; }; - 50BA5A1519D49A3F0070A133 /* HelloWorld.png in Resources */ = {isa = PBXBuildFile; fileRef = 50BA5A0D19D49A3F0070A133 /* HelloWorld.png */; }; 50EF629617ECD46A001EB2F8 /* Icon-40.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629217ECD46A001EB2F8 /* Icon-40.png */; }; 50EF629717ECD46A001EB2F8 /* Icon-58.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629317ECD46A001EB2F8 /* Icon-58.png */; }; 50EF629817ECD46A001EB2F8 /* Icon-80.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629417ECD46A001EB2F8 /* Icon-80.png */; }; 50EF629917ECD46A001EB2F8 /* Icon-100.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629517ECD46A001EB2F8 /* Icon-100.png */; }; 50EF62A217ECD613001EB2F8 /* Icon-29.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A017ECD613001EB2F8 /* Icon-29.png */; }; 50EF62A317ECD613001EB2F8 /* Icon-50.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A117ECD613001EB2F8 /* Icon-50.png */; }; - 5E453F5E19E5178500AB3A5D /* Chapter10_1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E453F5C19E5178500AB3A5D /* Chapter10_1.cpp */; }; - 5E453F5F19E5178500AB3A5D /* Chapter10_1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E453F5C19E5178500AB3A5D /* Chapter10_1.cpp */; }; - 5E453F6419E5359600AB3A5D /* boss.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F6219E5359600AB3A5D /* boss.c3b */; }; - 5E453F6519E5359600AB3A5D /* boss.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F6219E5359600AB3A5D /* boss.c3b */; }; - 5E453F6619E5359600AB3A5D /* boss.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F6319E5359600AB3A5D /* boss.png */; }; - 5E453F6719E5359600AB3A5D /* boss.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F6319E5359600AB3A5D /* boss.png */; }; - 5E453F6C19E5423D00AB3A5D /* Chapter10_2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E453F6A19E5423D00AB3A5D /* Chapter10_2.cpp */; }; - 5E453F6D19E5423D00AB3A5D /* Chapter10_2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E453F6A19E5423D00AB3A5D /* Chapter10_2.cpp */; }; - 5E453F7019E5452600AB3A5D /* monguger.tga in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F6E19E5452600AB3A5D /* monguger.tga */; }; - 5E453F7119E5452600AB3A5D /* monguger.tga in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F6E19E5452600AB3A5D /* monguger.tga */; }; - 5E453F7219E5452600AB3A5D /* orc.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F6F19E5452600AB3A5D /* orc.c3b */; }; - 5E453F7319E5452600AB3A5D /* orc.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F6F19E5452600AB3A5D /* orc.c3b */; }; - 5E453F7619E62AD000AB3A5D /* Chapter10_3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E453F7419E62AD000AB3A5D /* Chapter10_3.cpp */; }; - 5E453F7719E62AD000AB3A5D /* Chapter10_3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E453F7419E62AD000AB3A5D /* Chapter10_3.cpp */; }; - 5E453F7A19E62CAA00AB3A5D /* arx.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F7819E62CAA00AB3A5D /* arx.png */; }; - 5E453F7B19E62CAA00AB3A5D /* arx.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F7819E62CAA00AB3A5D /* arx.png */; }; - 5E453F7C19E62CAA00AB3A5D /* axe.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F7919E62CAA00AB3A5D /* axe.c3b */; }; - 5E453F7D19E62CAA00AB3A5D /* axe.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F7919E62CAA00AB3A5D /* axe.c3b */; }; - 5E453F8A19E62EB700AB3A5D /* Girl_Face.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F7E19E62EB700AB3A5D /* Girl_Face.png */; }; - 5E453F8B19E62EB700AB3A5D /* Girl_Face.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F7E19E62EB700AB3A5D /* Girl_Face.png */; }; - 5E453F8C19E62EB700AB3A5D /* Girl_Glasses01.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F7F19E62EB700AB3A5D /* Girl_Glasses01.png */; }; - 5E453F8D19E62EB700AB3A5D /* Girl_Glasses01.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F7F19E62EB700AB3A5D /* Girl_Glasses01.png */; }; - 5E453F8E19E62EB700AB3A5D /* Girl_Hair01.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8019E62EB700AB3A5D /* Girl_Hair01.png */; }; - 5E453F8F19E62EB700AB3A5D /* Girl_Hair01.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8019E62EB700AB3A5D /* Girl_Hair01.png */; }; - 5E453F9019E62EB700AB3A5D /* Girl_Hair02.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8119E62EB700AB3A5D /* Girl_Hair02.png */; }; - 5E453F9119E62EB700AB3A5D /* Girl_Hair02.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8119E62EB700AB3A5D /* Girl_Hair02.png */; }; - 5E453F9219E62EB700AB3A5D /* Girl_Hand.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8219E62EB700AB3A5D /* Girl_Hand.png */; }; - 5E453F9319E62EB700AB3A5D /* Girl_Hand.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8219E62EB700AB3A5D /* Girl_Hand.png */; }; - 5E453F9419E62EB700AB3A5D /* Girl_LowerBody01.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8319E62EB700AB3A5D /* Girl_LowerBody01.png */; }; - 5E453F9519E62EB700AB3A5D /* Girl_LowerBody01.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8319E62EB700AB3A5D /* Girl_LowerBody01.png */; }; - 5E453F9619E62EB700AB3A5D /* Girl_LowerBody02.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8419E62EB700AB3A5D /* Girl_LowerBody02.png */; }; - 5E453F9719E62EB700AB3A5D /* Girl_LowerBody02.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8419E62EB700AB3A5D /* Girl_LowerBody02.png */; }; - 5E453F9819E62EB700AB3A5D /* Girl_Shoes01.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8519E62EB700AB3A5D /* Girl_Shoes01.png */; }; - 5E453F9919E62EB700AB3A5D /* Girl_Shoes01.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8519E62EB700AB3A5D /* Girl_Shoes01.png */; }; - 5E453F9A19E62EB700AB3A5D /* Girl_Shoes02.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8619E62EB700AB3A5D /* Girl_Shoes02.png */; }; - 5E453F9B19E62EB700AB3A5D /* Girl_Shoes02.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8619E62EB700AB3A5D /* Girl_Shoes02.png */; }; - 5E453F9C19E62EB700AB3A5D /* Girl_UpperBody01.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8719E62EB700AB3A5D /* Girl_UpperBody01.png */; }; - 5E453F9D19E62EB700AB3A5D /* Girl_UpperBody01.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8719E62EB700AB3A5D /* Girl_UpperBody01.png */; }; - 5E453F9E19E62EB700AB3A5D /* Girl_UpperBody02.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8819E62EB700AB3A5D /* Girl_UpperBody02.png */; }; - 5E453F9F19E62EB700AB3A5D /* Girl_UpperBody02.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8819E62EB700AB3A5D /* Girl_UpperBody02.png */; }; - 5E453FA019E62EB700AB3A5D /* ReskinGirl.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8919E62EB700AB3A5D /* ReskinGirl.c3b */; }; - 5E453FA119E62EB700AB3A5D /* ReskinGirl.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 5E453F8919E62EB700AB3A5D /* ReskinGirl.c3b */; }; - 5E453FA419E6309600AB3A5D /* Chapter10_4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E453FA219E6309600AB3A5D /* Chapter10_4.cpp */; }; - 5E453FA519E6309600AB3A5D /* Chapter10_4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E453FA219E6309600AB3A5D /* Chapter10_4.cpp */; }; - 5E5874DD19E8DCB0009744B7 /* Chapter10_7.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E5874DB19E8DCB0009744B7 /* Chapter10_7.cpp */; }; - 5E5874DE19E8DCB0009744B7 /* Chapter10_7.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E5874DB19E8DCB0009744B7 /* Chapter10_7.cpp */; }; - 5EAA122519E790B700B5D2BA /* Chapter10_5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5EAA122319E790B700B5D2BA /* Chapter10_5.cpp */; }; - 5EAA122619E790B700B5D2BA /* Chapter10_5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5EAA122319E790B700B5D2BA /* Chapter10_5.cpp */; }; - 5EAA122919E7D1E400B5D2BA /* DrawNode3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5EAA122719E7D1E400B5D2BA /* DrawNode3D.cpp */; }; - 5EAA122A19E7D1E400B5D2BA /* DrawNode3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5EAA122719E7D1E400B5D2BA /* DrawNode3D.cpp */; }; - 5EAA122D19E7E69600B5D2BA /* Chapter10_6.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5EAA122B19E7E69600B5D2BA /* Chapter10_6.cpp */; }; - 5EAA122E19E7E69600B5D2BA /* Chapter10_6.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5EAA122B19E7E69600B5D2BA /* Chapter10_6.cpp */; }; + 5E38D2C619F0F3DD0099B433 /* Chapter9_9.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E38D2C419F0F3DD0099B433 /* Chapter9_9.cpp */; }; + 5E38D2C719F0F3DD0099B433 /* Chapter9_9.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E38D2C419F0F3DD0099B433 /* Chapter9_9.cpp */; }; + 5E38D2CA19F0F3FF0099B433 /* sphere.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 5E38D2C819F0F3FF0099B433 /* sphere.c3b */; }; + 5E38D2CB19F0F3FF0099B433 /* sphere.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 5E38D2C819F0F3FF0099B433 /* sphere.c3b */; }; + 5E38D2CC19F0F3FF0099B433 /* spheretex.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E38D2C919F0F3FF0099B433 /* spheretex.png */; }; + 5E38D2CD19F0F3FF0099B433 /* spheretex.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E38D2C919F0F3FF0099B433 /* spheretex.png */; }; + 5E4C83EB1A3EC4DA00F65FA9 /* plane.obj in Resources */ = {isa = PBXBuildFile; fileRef = 5E4C83EA1A3EC4DA00F65FA9 /* plane.obj */; }; + 5E4C83EC1A3EC4DA00F65FA9 /* plane.obj in Resources */ = {isa = PBXBuildFile; fileRef = 5E4C83EA1A3EC4DA00F65FA9 /* plane.obj */; }; + 5E4C83EE1A3EC4F900F65FA9 /* planetex.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E4C83ED1A3EC4F900F65FA9 /* planetex.png */; }; + 5E4C83EF1A3EC4F900F65FA9 /* planetex.png in Resources */ = {isa = PBXBuildFile; fileRef = 5E4C83ED1A3EC4F900F65FA9 /* planetex.png */; }; 7E1526B419D4DE890013F222 /* Blue_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526AE19D4DE890013F222 /* Blue_Front1.png */; }; 7E1526B519D4DE890013F222 /* Blue_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526AE19D4DE890013F222 /* Blue_Front1.png */; }; - 7E1526B619D4DE890013F222 /* HelloWorld.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526AF19D4DE890013F222 /* HelloWorld.png */; }; - 7E1526B719D4DE890013F222 /* HelloWorld.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526AF19D4DE890013F222 /* HelloWorld.png */; }; 7E1526B819D4DE890013F222 /* LightBlue_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526B019D4DE890013F222 /* LightBlue_Front1.png */; }; 7E1526B919D4DE890013F222 /* LightBlue_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526B019D4DE890013F222 /* LightBlue_Front1.png */; }; 7E1526BA19D4DE890013F222 /* White_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526B119D4DE890013F222 /* White_Front1.png */; }; @@ -172,7 +243,388 @@ 7E1526C219D4E0020013F222 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526C019D4E0020013F222 /* Marker Felt.ttf */; }; 7E273C8019D9CE460029CCC0 /* Chapter2Level1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E273C7E19D9CE460029CCC0 /* Chapter2Level1.cpp */; }; 7E273C8119D9CE460029CCC0 /* Chapter2Level1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E273C7E19D9CE460029CCC0 /* Chapter2Level1.cpp */; }; - 7E4ED39F19DB4D78003A49C2 /* clouds_1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E4ED39E19DB4D78003A49C2 /* clouds_1.png */; }; + 7E35329C19F06ECB0080126B /* Blue_Back1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329019F06ECB0080126B /* Blue_Back1.png */; }; + 7E35329D19F06ECB0080126B /* Blue_Back1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329019F06ECB0080126B /* Blue_Back1.png */; }; + 7E35329E19F06ECB0080126B /* Blue_Back2.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329119F06ECB0080126B /* Blue_Back2.png */; }; + 7E35329F19F06ECB0080126B /* Blue_Back2.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329119F06ECB0080126B /* Blue_Back2.png */; }; + 7E3532A019F06ECB0080126B /* Blue_Back3.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329219F06ECB0080126B /* Blue_Back3.png */; }; + 7E3532A119F06ECB0080126B /* Blue_Back3.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329219F06ECB0080126B /* Blue_Back3.png */; }; + 7E3532A219F06ECB0080126B /* Blue_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329319F06ECB0080126B /* Blue_Front1.png */; }; + 7E3532A319F06ECB0080126B /* Blue_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329319F06ECB0080126B /* Blue_Front1.png */; }; + 7E3532A419F06ECB0080126B /* Blue_Front2.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329419F06ECB0080126B /* Blue_Front2.png */; }; + 7E3532A519F06ECB0080126B /* Blue_Front2.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329419F06ECB0080126B /* Blue_Front2.png */; }; + 7E3532A619F06ECB0080126B /* Blue_Front3.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329519F06ECB0080126B /* Blue_Front3.png */; }; + 7E3532A719F06ECB0080126B /* Blue_Front3.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329519F06ECB0080126B /* Blue_Front3.png */; }; + 7E3532A819F06ECB0080126B /* Blue_Left1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329619F06ECB0080126B /* Blue_Left1.png */; }; + 7E3532A919F06ECB0080126B /* Blue_Left1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329619F06ECB0080126B /* Blue_Left1.png */; }; + 7E3532AA19F06ECB0080126B /* Blue_Left2.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329719F06ECB0080126B /* Blue_Left2.png */; }; + 7E3532AB19F06ECB0080126B /* Blue_Left2.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329719F06ECB0080126B /* Blue_Left2.png */; }; + 7E3532AC19F06ECB0080126B /* Blue_Left3.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329819F06ECB0080126B /* Blue_Left3.png */; }; + 7E3532AD19F06ECB0080126B /* Blue_Left3.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329819F06ECB0080126B /* Blue_Left3.png */; }; + 7E3532AE19F06ECB0080126B /* Blue_Right1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329919F06ECB0080126B /* Blue_Right1.png */; }; + 7E3532AF19F06ECB0080126B /* Blue_Right1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329919F06ECB0080126B /* Blue_Right1.png */; }; + 7E3532B019F06ECB0080126B /* Blue_Right2.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329A19F06ECB0080126B /* Blue_Right2.png */; }; + 7E3532B119F06ECB0080126B /* Blue_Right2.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329A19F06ECB0080126B /* Blue_Right2.png */; }; + 7E3532B219F06ECB0080126B /* Blue_Right3.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329B19F06ECB0080126B /* Blue_Right3.png */; }; + 7E3532B319F06ECB0080126B /* Blue_Right3.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E35329B19F06ECB0080126B /* Blue_Right3.png */; }; + 7E5367FC19EAD7F2005C3C64 /* arx.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367DA19EAD7F2005C3C64 /* arx.png */; }; + 7E5367FD19EAD7F2005C3C64 /* arx.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367DA19EAD7F2005C3C64 /* arx.png */; }; + 7E5367FE19EAD7F2005C3C64 /* axe.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367DB19EAD7F2005C3C64 /* axe.c3b */; }; + 7E5367FF19EAD7F2005C3C64 /* axe.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367DB19EAD7F2005C3C64 /* axe.c3b */; }; + 7E53680019EAD7F2005C3C64 /* Blue_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367DC19EAD7F2005C3C64 /* Blue_Front1.png */; }; + 7E53680119EAD7F2005C3C64 /* Blue_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367DC19EAD7F2005C3C64 /* Blue_Front1.png */; }; + 7E53680219EAD7F2005C3C64 /* body.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367DD19EAD7F2005C3C64 /* body.png */; }; + 7E53680319EAD7F2005C3C64 /* body.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367DD19EAD7F2005C3C64 /* body.png */; }; + 7E53680419EAD7F2005C3C64 /* boss.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367DE19EAD7F2005C3C64 /* boss.c3b */; }; + 7E53680519EAD7F2005C3C64 /* boss.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367DE19EAD7F2005C3C64 /* boss.c3b */; }; + 7E53680619EAD7F2005C3C64 /* boss.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367DF19EAD7F2005C3C64 /* boss.png */; }; + 7E53680719EAD7F2005C3C64 /* boss.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367DF19EAD7F2005C3C64 /* boss.png */; }; + 7E53680819EAD7F2005C3C64 /* CloseNormal.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E019EAD7F2005C3C64 /* CloseNormal.png */; }; + 7E53680919EAD7F2005C3C64 /* CloseNormal.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E019EAD7F2005C3C64 /* CloseNormal.png */; }; + 7E53680A19EAD7F2005C3C64 /* CloseSelected.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E119EAD7F2005C3C64 /* CloseSelected.png */; }; + 7E53680B19EAD7F2005C3C64 /* CloseSelected.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E119EAD7F2005C3C64 /* CloseSelected.png */; }; + 7E53680C19EAD7F2005C3C64 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E319EAD7F2005C3C64 /* Marker Felt.ttf */; }; + 7E53680D19EAD7F2005C3C64 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E319EAD7F2005C3C64 /* Marker Felt.ttf */; }; + 7E53680E19EAD7F2005C3C64 /* Girl_Face.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E419EAD7F2005C3C64 /* Girl_Face.png */; }; + 7E53680F19EAD7F2005C3C64 /* Girl_Face.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E419EAD7F2005C3C64 /* Girl_Face.png */; }; + 7E53681019EAD7F2005C3C64 /* Girl_Glasses01.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E519EAD7F2005C3C64 /* Girl_Glasses01.png */; }; + 7E53681119EAD7F2005C3C64 /* Girl_Glasses01.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E519EAD7F2005C3C64 /* Girl_Glasses01.png */; }; + 7E53681219EAD7F2005C3C64 /* Girl_Hair01.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E619EAD7F2005C3C64 /* Girl_Hair01.png */; }; + 7E53681319EAD7F2005C3C64 /* Girl_Hair01.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E619EAD7F2005C3C64 /* Girl_Hair01.png */; }; + 7E53681419EAD7F2005C3C64 /* Girl_Hair02.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E719EAD7F2005C3C64 /* Girl_Hair02.png */; }; + 7E53681519EAD7F2005C3C64 /* Girl_Hair02.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E719EAD7F2005C3C64 /* Girl_Hair02.png */; }; + 7E53681619EAD7F2005C3C64 /* Girl_Hand.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E819EAD7F2005C3C64 /* Girl_Hand.png */; }; + 7E53681719EAD7F2005C3C64 /* Girl_Hand.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E819EAD7F2005C3C64 /* Girl_Hand.png */; }; + 7E53681819EAD7F2005C3C64 /* Girl_LowerBody01.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E919EAD7F2005C3C64 /* Girl_LowerBody01.png */; }; + 7E53681919EAD7F2005C3C64 /* Girl_LowerBody01.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367E919EAD7F2005C3C64 /* Girl_LowerBody01.png */; }; + 7E53681A19EAD7F2005C3C64 /* Girl_LowerBody02.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367EA19EAD7F2005C3C64 /* Girl_LowerBody02.png */; }; + 7E53681B19EAD7F2005C3C64 /* Girl_LowerBody02.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367EA19EAD7F2005C3C64 /* Girl_LowerBody02.png */; }; + 7E53681C19EAD7F2005C3C64 /* Girl_Shoes01.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367EB19EAD7F2005C3C64 /* Girl_Shoes01.png */; }; + 7E53681D19EAD7F2005C3C64 /* Girl_Shoes01.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367EB19EAD7F2005C3C64 /* Girl_Shoes01.png */; }; + 7E53681E19EAD7F2005C3C64 /* Girl_Shoes02.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367EC19EAD7F2005C3C64 /* Girl_Shoes02.png */; }; + 7E53681F19EAD7F2005C3C64 /* Girl_Shoes02.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367EC19EAD7F2005C3C64 /* Girl_Shoes02.png */; }; + 7E53682019EAD7F2005C3C64 /* Girl_UpperBody01.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367ED19EAD7F2005C3C64 /* Girl_UpperBody01.png */; }; + 7E53682119EAD7F2005C3C64 /* Girl_UpperBody01.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367ED19EAD7F2005C3C64 /* Girl_UpperBody01.png */; }; + 7E53682219EAD7F2005C3C64 /* Girl_UpperBody02.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367EE19EAD7F2005C3C64 /* Girl_UpperBody02.png */; }; + 7E53682319EAD7F2005C3C64 /* Girl_UpperBody02.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367EE19EAD7F2005C3C64 /* Girl_UpperBody02.png */; }; + 7E53682419EAD7F2005C3C64 /* girl.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367EF19EAD7F2005C3C64 /* girl.c3b */; }; + 7E53682519EAD7F2005C3C64 /* girl.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367EF19EAD7F2005C3C64 /* girl.c3b */; }; + 7E53682619EAD7F2005C3C64 /* HelloWorld.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F019EAD7F2005C3C64 /* HelloWorld.png */; }; + 7E53682719EAD7F2005C3C64 /* HelloWorld.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F019EAD7F2005C3C64 /* HelloWorld.png */; }; + 7E53682819EAD7F2005C3C64 /* monguger.tga in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F119EAD7F2005C3C64 /* monguger.tga */; }; + 7E53682919EAD7F2005C3C64 /* monguger.tga in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F119EAD7F2005C3C64 /* monguger.tga */; }; + 7E53682A19EAD7F2005C3C64 /* orc.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F219EAD7F2005C3C64 /* orc.c3b */; }; + 7E53682B19EAD7F2005C3C64 /* orc.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F219EAD7F2005C3C64 /* orc.c3b */; }; + 7E53682C19EAD7F2005C3C64 /* ReskinGirl.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F319EAD7F2005C3C64 /* ReskinGirl.c3b */; }; + 7E53682D19EAD7F2005C3C64 /* ReskinGirl.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F319EAD7F2005C3C64 /* ReskinGirl.c3b */; }; + 7E53682E19EAD7F2005C3C64 /* tortoise.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F419EAD7F2005C3C64 /* tortoise.c3b */; }; + 7E53682F19EAD7F2005C3C64 /* tortoise.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F419EAD7F2005C3C64 /* tortoise.c3b */; }; + 7E53683019EAD7F2005C3C64 /* tortoise.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F519EAD7F2005C3C64 /* tortoise.png */; }; + 7E53683119EAD7F2005C3C64 /* tortoise.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F519EAD7F2005C3C64 /* tortoise.png */; }; + 7E53683219EAD7F2005C3C64 /* Xie_01.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F619EAD7F2005C3C64 /* Xie_01.png */; }; + 7E53683319EAD7F2005C3C64 /* Xie_01.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F619EAD7F2005C3C64 /* Xie_01.png */; }; + 7E53683419EAD7F2005C3C64 /* zhujue_jian.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F719EAD7F2005C3C64 /* zhujue_jian.png */; }; + 7E53683519EAD7F2005C3C64 /* zhujue_jian.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F719EAD7F2005C3C64 /* zhujue_jian.png */; }; + 7E53683619EAD7F2005C3C64 /* zhujue.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F819EAD7F2005C3C64 /* zhujue.c3b */; }; + 7E53683719EAD7F2005C3C64 /* zhujue.c3b in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F819EAD7F2005C3C64 /* zhujue.c3b */; }; + 7E53683819EAD7F2005C3C64 /* zhujue.c3t in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F919EAD7F2005C3C64 /* zhujue.c3t */; }; + 7E53683919EAD7F2005C3C64 /* zhujue.c3t in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367F919EAD7F2005C3C64 /* zhujue.c3t */; }; + 7E53683A19EAD7F2005C3C64 /* zhujue.FBX in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367FA19EAD7F2005C3C64 /* zhujue.FBX */; }; + 7E53683B19EAD7F2005C3C64 /* zhujue.FBX in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367FA19EAD7F2005C3C64 /* zhujue.FBX */; }; + 7E53683C19EAD7F2005C3C64 /* zhujue.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367FB19EAD7F2005C3C64 /* zhujue.png */; }; + 7E53683D19EAD7F2005C3C64 /* zhujue.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E5367FB19EAD7F2005C3C64 /* zhujue.png */; }; + 7E53688119EAD894005C3C64 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53686B19EAD894005C3C64 /* AppDelegate.cpp */; }; + 7E53688219EAD894005C3C64 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53686B19EAD894005C3C64 /* AppDelegate.cpp */; }; + 7E53688319EAD894005C3C64 /* Chapter9_1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53686D19EAD894005C3C64 /* Chapter9_1.cpp */; }; + 7E53688419EAD894005C3C64 /* Chapter9_1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53686D19EAD894005C3C64 /* Chapter9_1.cpp */; }; + 7E53688519EAD894005C3C64 /* Chapter9_2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53686F19EAD894005C3C64 /* Chapter9_2.cpp */; }; + 7E53688619EAD894005C3C64 /* Chapter9_2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53686F19EAD894005C3C64 /* Chapter9_2.cpp */; }; + 7E53688719EAD894005C3C64 /* Chapter9_3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53687119EAD894005C3C64 /* Chapter9_3.cpp */; }; + 7E53688819EAD894005C3C64 /* Chapter9_3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53687119EAD894005C3C64 /* Chapter9_3.cpp */; }; + 7E53688919EAD894005C3C64 /* Chapter9_4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53687319EAD894005C3C64 /* Chapter9_4.cpp */; }; + 7E53688A19EAD894005C3C64 /* Chapter9_4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53687319EAD894005C3C64 /* Chapter9_4.cpp */; }; + 7E53688B19EAD894005C3C64 /* Chapter9_5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53687519EAD894005C3C64 /* Chapter9_5.cpp */; }; + 7E53688C19EAD894005C3C64 /* Chapter9_5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53687519EAD894005C3C64 /* Chapter9_5.cpp */; }; + 7E53688D19EAD894005C3C64 /* Chapter9_6.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53687719EAD894005C3C64 /* Chapter9_6.cpp */; }; + 7E53688E19EAD894005C3C64 /* Chapter9_6.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53687719EAD894005C3C64 /* Chapter9_6.cpp */; }; + 7E53688F19EAD894005C3C64 /* Chapter9_7.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53687919EAD894005C3C64 /* Chapter9_7.cpp */; }; + 7E53689019EAD894005C3C64 /* Chapter9_7.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53687919EAD894005C3C64 /* Chapter9_7.cpp */; }; + 7E53689119EAD894005C3C64 /* Chapter9_8.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53687B19EAD894005C3C64 /* Chapter9_8.cpp */; }; + 7E53689219EAD894005C3C64 /* Chapter9_8.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53687B19EAD894005C3C64 /* Chapter9_8.cpp */; }; + 7E53689319EAD894005C3C64 /* Chapter9.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53687D19EAD894005C3C64 /* Chapter9.cpp */; }; + 7E53689419EAD894005C3C64 /* Chapter9.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53687D19EAD894005C3C64 /* Chapter9.cpp */; }; + 7E53689519EAD894005C3C64 /* DrawNode3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53687F19EAD894005C3C64 /* DrawNode3D.cpp */; }; + 7E53689619EAD894005C3C64 /* DrawNode3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53687F19EAD894005C3C64 /* DrawNode3D.cpp */; }; + 7E5368CF19EC20DE005C3C64 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 503AE10317EB98FF00D1A890 /* main.cpp */; }; + 7E5368D119EC20DE005C3C64 /* libcocos2d Mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50BA599119D492B60070A133 /* libcocos2d Mac.a */; }; + 7E5368D219EC20DE005C3C64 /* libcurl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 503AE11117EB99EE00D1A890 /* libcurl.dylib */; }; + 7E5368D319EC20DE005C3C64 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; }; + 7E5368D419EC20DE005C3C64 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 503AE11A17EB9C5A00D1A890 /* IOKit.framework */; }; + 7E5368D519EC20DE005C3C64 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78A17EB975400C73F5D /* OpenGL.framework */; }; + 7E5368D619EC20DE005C3C64 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78817EB974C00C73F5D /* AppKit.framework */; }; + 7E5368D719EC20DE005C3C64 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 7E5368D819EC20DE005C3C64 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; }; + 7E5368D919EC20DE005C3C64 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; }; + 7E5368DA19EC20DE005C3C64 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; }; + 7E5368DB19EC20DE005C3C64 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; }; + 7E5368E119EC2128005C3C64 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526C019D4E0020013F222 /* Marker Felt.ttf */; }; + 7E5368E219EC213B005C3C64 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 503AE0F617EB97AB00D1A890 /* Icon.icns */; }; + 7E5368E519EC2159005C3C64 /* Blue_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526AE19D4DE890013F222 /* Blue_Front1.png */; }; + 7E5368E619EC2159005C3C64 /* LightBlue_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526B019D4DE890013F222 /* LightBlue_Front1.png */; }; + 7E5368E719EC2159005C3C64 /* White_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526B119D4DE890013F222 /* White_Front1.png */; }; + 7E5368E819EC2159005C3C64 /* ZigzagForest_Square.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526B219D4DE890013F222 /* ZigzagForest_Square.png */; }; + 7E5368E919EC2159005C3C64 /* ZigzagGrass_Mud_Round.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526B319D4DE890013F222 /* ZigzagGrass_Mud_Round.png */; }; + 7E5368EA19EC217B005C3C64 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7EBF317519E7807500A7FBEA /* AppDelegate.cpp */; }; + 7E5368EB19EC217B005C3C64 /* AppDelegate.h in Sources */ = {isa = PBXBuildFile; fileRef = 7EBF317619E7807500A7FBEA /* AppDelegate.h */; }; + 7E5368EC19EC217B005C3C64 /* Chapter3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7EBF317E19E843F100A7FBEA /* Chapter3.cpp */; }; + 7E5368ED19EC217B005C3C64 /* Chapter3.h in Sources */ = {isa = PBXBuildFile; fileRef = 7EBF317F19E843F100A7FBEA /* Chapter3.h */; }; + 7E5368F219EC228B005C3C64 /* Icon-120.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77617EB970100C73F5D /* Icon-120.png */; }; + 7E5368F419EC228B005C3C64 /* Blue_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526AE19D4DE890013F222 /* Blue_Front1.png */; }; + 7E5368F519EC228B005C3C64 /* Icon-76.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77B17EB970100C73F5D /* Icon-76.png */; }; + 7E5368F719EC228B005C3C64 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77417EB970100C73F5D /* Default@2x.png */; }; + 7E5368F819EC228B005C3C64 /* Icon-100.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629517ECD46A001EB2F8 /* Icon-100.png */; }; + 7E5368F919EC228B005C3C64 /* Icon-152.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77817EB970100C73F5D /* Icon-152.png */; }; + 7E5368FA19EC228B005C3C64 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77217EB970100C73F5D /* Default-568h@2x.png */; }; + 7E5368FB19EC228B005C3C64 /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77A17EB970100C73F5D /* Icon-72.png */; }; + 7E5368FC19EC228B005C3C64 /* ZigzagForest_Square.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526B219D4DE890013F222 /* ZigzagForest_Square.png */; }; + 7E5368FD19EC228B005C3C64 /* Icon-50.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A117ECD613001EB2F8 /* Icon-50.png */; }; + 7E5368FE19EC228B005C3C64 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526C019D4E0020013F222 /* Marker Felt.ttf */; }; + 7E5368FF19EC228B005C3C64 /* Icon-114.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77517EB970100C73F5D /* Icon-114.png */; }; + 7E53690019EC228B005C3C64 /* Icon-29.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A017ECD613001EB2F8 /* Icon-29.png */; }; + 7E53690119EC228B005C3C64 /* Icon-40.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629217ECD46A001EB2F8 /* Icon-40.png */; }; + 7E53690219EC228B005C3C64 /* Icon-144.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77717EB970100C73F5D /* Icon-144.png */; }; + 7E53690319EC228B005C3C64 /* Icon-80.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629417ECD46A001EB2F8 /* Icon-80.png */; }; + 7E53690619EC228B005C3C64 /* Icon-57.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77917EB970100C73F5D /* Icon-57.png */; }; + 7E53690919EC228B005C3C64 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77317EB970100C73F5D /* Default.png */; }; + 7E53690A19EC228B005C3C64 /* Icon-58.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629317ECD46A001EB2F8 /* Icon-58.png */; }; + 7E53690E19EC228B005C3C64 /* AppController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FB17EB989F00D1A890 /* AppController.mm */; }; + 7E53690F19EC228B005C3C64 /* RootViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FF17EB989F00D1A890 /* RootViewController.mm */; }; + 7E53691019EC228B005C3C64 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FC17EB989F00D1A890 /* main.m */; }; + 7E53691219EC228B005C3C64 /* libcocos2d iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50BA599319D492B60070A133 /* libcocos2d iOS.a */; }; + 7E53691319EC228B005C3C64 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6B0611A1803AB670077942B /* CoreMotion.framework */; }; + 7E53691419EC228B005C3C64 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 7E53691519EC228B005C3C64 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; + 7E53691619EC228B005C3C64 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; + 7E53691719EC228B005C3C64 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB012928DE900B8313A /* OpenGLES.framework */; }; + 7E53691819EC228B005C3C64 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; }; + 7E53691919EC228B005C3C64 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; }; + 7E53691A19EC228B005C3C64 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; }; + 7E53691B19EC228B005C3C64 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; }; + 7E53691C19EC228B005C3C64 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; }; + 7E53692819EC22F4005C3C64 /* Blue_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526AE19D4DE890013F222 /* Blue_Front1.png */; }; + 7E53692919EC22F4005C3C64 /* LightBlue_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526B019D4DE890013F222 /* LightBlue_Front1.png */; }; + 7E53692A19EC22F4005C3C64 /* White_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526B119D4DE890013F222 /* White_Front1.png */; }; + 7E53692B19EC22F4005C3C64 /* ZigzagForest_Square.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526B219D4DE890013F222 /* ZigzagForest_Square.png */; }; + 7E53692C19EC22F4005C3C64 /* ZigzagGrass_Mud_Round.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526B319D4DE890013F222 /* ZigzagGrass_Mud_Round.png */; }; + 7E53692D19EC22F4005C3C64 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 503AE0F617EB97AB00D1A890 /* Icon.icns */; }; + 7E53692E19EC22F4005C3C64 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526C019D4E0020013F222 /* Marker Felt.ttf */; }; + 7E53693119EC22F4005C3C64 /* AppDelegate.h in Sources */ = {isa = PBXBuildFile; fileRef = 7EBF317619E7807500A7FBEA /* AppDelegate.h */; }; + 7E53693419EC22F4005C3C64 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 503AE10317EB98FF00D1A890 /* main.cpp */; }; + 7E53693619EC22F4005C3C64 /* libcocos2d Mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50BA599119D492B60070A133 /* libcocos2d Mac.a */; }; + 7E53693719EC22F4005C3C64 /* libcurl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 503AE11117EB99EE00D1A890 /* libcurl.dylib */; }; + 7E53693819EC22F4005C3C64 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; }; + 7E53693919EC22F4005C3C64 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 503AE11A17EB9C5A00D1A890 /* IOKit.framework */; }; + 7E53693A19EC22F4005C3C64 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78A17EB975400C73F5D /* OpenGL.framework */; }; + 7E53693B19EC22F4005C3C64 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78817EB974C00C73F5D /* AppKit.framework */; }; + 7E53693C19EC22F4005C3C64 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 7E53693D19EC22F4005C3C64 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; }; + 7E53693E19EC22F4005C3C64 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; }; + 7E53693F19EC22F4005C3C64 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; }; + 7E53694019EC22F4005C3C64 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; }; + 7E53694A19EC234D005C3C64 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53694619EC234D005C3C64 /* AppDelegate.cpp */; }; + 7E53694B19EC234D005C3C64 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53694619EC234D005C3C64 /* AppDelegate.cpp */; }; + 7E53694C19EC234D005C3C64 /* Chapter4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53694819EC234D005C3C64 /* Chapter4.cpp */; }; + 7E53694D19EC234D005C3C64 /* Chapter4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E53694819EC234D005C3C64 /* Chapter4.cpp */; }; + 7E914A461A1BC3F200C6B2D4 /* Icon-120.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77617EB970100C73F5D /* Icon-120.png */; }; + 7E914A471A1BC3F200C6B2D4 /* Icon-76.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77B17EB970100C73F5D /* Icon-76.png */; }; + 7E914A481A1BC3F200C6B2D4 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77417EB970100C73F5D /* Default@2x.png */; }; + 7E914A4A1A1BC3F200C6B2D4 /* Icon-100.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629517ECD46A001EB2F8 /* Icon-100.png */; }; + 7E914A4B1A1BC3F200C6B2D4 /* Icon-152.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77817EB970100C73F5D /* Icon-152.png */; }; + 7E914A4C1A1BC3F200C6B2D4 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77217EB970100C73F5D /* Default-568h@2x.png */; }; + 7E914A4D1A1BC3F200C6B2D4 /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77A17EB970100C73F5D /* Icon-72.png */; }; + 7E914A4E1A1BC3F200C6B2D4 /* Icon-50.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A117ECD613001EB2F8 /* Icon-50.png */; }; + 7E914A4F1A1BC3F200C6B2D4 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526C019D4E0020013F222 /* Marker Felt.ttf */; }; + 7E914A501A1BC3F200C6B2D4 /* Icon-114.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77517EB970100C73F5D /* Icon-114.png */; }; + 7E914A511A1BC3F200C6B2D4 /* Icon-29.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A017ECD613001EB2F8 /* Icon-29.png */; }; + 7E914A531A1BC3F200C6B2D4 /* Icon-40.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629217ECD46A001EB2F8 /* Icon-40.png */; }; + 7E914A541A1BC3F200C6B2D4 /* Icon-144.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77717EB970100C73F5D /* Icon-144.png */; }; + 7E914A551A1BC3F200C6B2D4 /* Icon-80.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629417ECD46A001EB2F8 /* Icon-80.png */; }; + 7E914A561A1BC3F200C6B2D4 /* Icon-57.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77917EB970100C73F5D /* Icon-57.png */; }; + 7E914A571A1BC3F200C6B2D4 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77317EB970100C73F5D /* Default.png */; }; + 7E914A581A1BC3F200C6B2D4 /* Icon-58.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629317ECD46A001EB2F8 /* Icon-58.png */; }; + 7E914A5B1A1BC3F200C6B2D4 /* AppController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FB17EB989F00D1A890 /* AppController.mm */; }; + 7E914A5C1A1BC3F200C6B2D4 /* RootViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FF17EB989F00D1A890 /* RootViewController.mm */; }; + 7E914A5E1A1BC3F200C6B2D4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FC17EB989F00D1A890 /* main.m */; }; + 7E914A601A1BC3F200C6B2D4 /* libcocos2d iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50BA599319D492B60070A133 /* libcocos2d iOS.a */; }; + 7E914A611A1BC3F200C6B2D4 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6B0611A1803AB670077942B /* CoreMotion.framework */; }; + 7E914A621A1BC3F200C6B2D4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 7E914A631A1BC3F200C6B2D4 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; + 7E914A641A1BC3F200C6B2D4 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; + 7E914A651A1BC3F200C6B2D4 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB012928DE900B8313A /* OpenGLES.framework */; }; + 7E914A661A1BC3F200C6B2D4 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; }; + 7E914A671A1BC3F200C6B2D4 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; }; + 7E914A681A1BC3F200C6B2D4 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; }; + 7E914A691A1BC3F200C6B2D4 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; }; + 7E914A6A1A1BC3F200C6B2D4 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; }; + 7E914A751A1BC40200C6B2D4 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 503AE0F617EB97AB00D1A890 /* Icon.icns */; }; + 7E914A761A1BC40200C6B2D4 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526C019D4E0020013F222 /* Marker Felt.ttf */; }; + 7E914A7B1A1BC40200C6B2D4 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 503AE10317EB98FF00D1A890 /* main.cpp */; }; + 7E914A7D1A1BC40200C6B2D4 /* libcocos2d Mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50BA599119D492B60070A133 /* libcocos2d Mac.a */; }; + 7E914A7E1A1BC40200C6B2D4 /* libcurl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 503AE11117EB99EE00D1A890 /* libcurl.dylib */; }; + 7E914A7F1A1BC40200C6B2D4 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; }; + 7E914A801A1BC40200C6B2D4 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 503AE11A17EB9C5A00D1A890 /* IOKit.framework */; }; + 7E914A811A1BC40200C6B2D4 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78A17EB975400C73F5D /* OpenGL.framework */; }; + 7E914A821A1BC40200C6B2D4 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78817EB974C00C73F5D /* AppKit.framework */; }; + 7E914A831A1BC40200C6B2D4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 7E914A841A1BC40200C6B2D4 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; }; + 7E914A851A1BC40200C6B2D4 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; }; + 7E914A861A1BC40200C6B2D4 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; }; + 7E914A871A1BC40200C6B2D4 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; }; + 7E914A921A1BC8F500C6B2D4 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E914A8E1A1BC8F500C6B2D4 /* AppDelegate.cpp */; }; + 7E914A931A1BC8F500C6B2D4 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E914A8E1A1BC8F500C6B2D4 /* AppDelegate.cpp */; }; + 7E914A941A1BC8F500C6B2D4 /* Chapter5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E914A901A1BC8F500C6B2D4 /* Chapter5.cpp */; }; + 7E914A951A1BC8F500C6B2D4 /* Chapter5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E914A901A1BC8F500C6B2D4 /* Chapter5.cpp */; }; + 7E9571A219F1938B00F6AE44 /* Icon-120.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77617EB970100C73F5D /* Icon-120.png */; }; + 7E9571A519F1938B00F6AE44 /* Icon-76.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77B17EB970100C73F5D /* Icon-76.png */; }; + 7E9571A719F1938B00F6AE44 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77417EB970100C73F5D /* Default@2x.png */; }; + 7E9571A819F1938B00F6AE44 /* Icon-100.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629517ECD46A001EB2F8 /* Icon-100.png */; }; + 7E9571A919F1938B00F6AE44 /* Icon-152.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77817EB970100C73F5D /* Icon-152.png */; }; + 7E9571AA19F1938B00F6AE44 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77217EB970100C73F5D /* Default-568h@2x.png */; }; + 7E9571AB19F1938B00F6AE44 /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77A17EB970100C73F5D /* Icon-72.png */; }; + 7E9571AD19F1938B00F6AE44 /* Icon-50.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A117ECD613001EB2F8 /* Icon-50.png */; }; + 7E9571AE19F1938B00F6AE44 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526C019D4E0020013F222 /* Marker Felt.ttf */; }; + 7E9571AF19F1938B00F6AE44 /* Icon-114.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77517EB970100C73F5D /* Icon-114.png */; }; + 7E9571B019F1938B00F6AE44 /* Icon-29.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A017ECD613001EB2F8 /* Icon-29.png */; }; + 7E9571B119F1938B00F6AE44 /* Icon-40.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629217ECD46A001EB2F8 /* Icon-40.png */; }; + 7E9571B219F1938B00F6AE44 /* Icon-144.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77717EB970100C73F5D /* Icon-144.png */; }; + 7E9571B319F1938B00F6AE44 /* Icon-80.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629417ECD46A001EB2F8 /* Icon-80.png */; }; + 7E9571B619F1938B00F6AE44 /* Icon-57.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77917EB970100C73F5D /* Icon-57.png */; }; + 7E9571BA19F1938B00F6AE44 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77317EB970100C73F5D /* Default.png */; }; + 7E9571BB19F1938B00F6AE44 /* Icon-58.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629317ECD46A001EB2F8 /* Icon-58.png */; }; + 7E9571BF19F1938B00F6AE44 /* AppController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FB17EB989F00D1A890 /* AppController.mm */; }; + 7E9571C019F1938B00F6AE44 /* RootViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FF17EB989F00D1A890 /* RootViewController.mm */; }; + 7E9571C119F1938B00F6AE44 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FC17EB989F00D1A890 /* main.m */; }; + 7E9571C319F1938B00F6AE44 /* libcocos2d iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50BA599319D492B60070A133 /* libcocos2d iOS.a */; }; + 7E9571C419F1938B00F6AE44 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6B0611A1803AB670077942B /* CoreMotion.framework */; }; + 7E9571C519F1938B00F6AE44 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 7E9571C619F1938B00F6AE44 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; + 7E9571C719F1938B00F6AE44 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; + 7E9571C819F1938B00F6AE44 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB012928DE900B8313A /* OpenGLES.framework */; }; + 7E9571C919F1938B00F6AE44 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; }; + 7E9571CA19F1938B00F6AE44 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; }; + 7E9571CB19F1938B00F6AE44 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; }; + 7E9571CC19F1938B00F6AE44 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; }; + 7E9571CD19F1938B00F6AE44 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; }; + 7E9571E819F196D200F6AE44 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 503AE0F617EB97AB00D1A890 /* Icon.icns */; }; + 7E9571E919F196D200F6AE44 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526C019D4E0020013F222 /* Marker Felt.ttf */; }; + 7E9571EF19F196D200F6AE44 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 503AE10317EB98FF00D1A890 /* main.cpp */; }; + 7E9571F119F196D200F6AE44 /* libcocos2d Mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50BA599119D492B60070A133 /* libcocos2d Mac.a */; }; + 7E9571F219F196D200F6AE44 /* libcurl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 503AE11117EB99EE00D1A890 /* libcurl.dylib */; }; + 7E9571F319F196D200F6AE44 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; }; + 7E9571F419F196D200F6AE44 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 503AE11A17EB9C5A00D1A890 /* IOKit.framework */; }; + 7E9571F519F196D200F6AE44 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78A17EB975400C73F5D /* OpenGL.framework */; }; + 7E9571F619F196D200F6AE44 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78817EB974C00C73F5D /* AppKit.framework */; }; + 7E9571F719F196D200F6AE44 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 7E9571F819F196D200F6AE44 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; }; + 7E9571F919F196D200F6AE44 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; }; + 7E9571FA19F196D200F6AE44 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; }; + 7E9571FB19F196D200F6AE44 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; }; + 7E95720619F197BA00F6AE44 /* Icon-120.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77617EB970100C73F5D /* Icon-120.png */; }; + 7E95720719F197BA00F6AE44 /* Icon-76.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77B17EB970100C73F5D /* Icon-76.png */; }; + 7E95720819F197BA00F6AE44 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77417EB970100C73F5D /* Default@2x.png */; }; + 7E95720919F197BA00F6AE44 /* Icon-100.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629517ECD46A001EB2F8 /* Icon-100.png */; }; + 7E95720A19F197BA00F6AE44 /* Icon-152.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77817EB970100C73F5D /* Icon-152.png */; }; + 7E95720B19F197BA00F6AE44 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77217EB970100C73F5D /* Default-568h@2x.png */; }; + 7E95720C19F197BA00F6AE44 /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77A17EB970100C73F5D /* Icon-72.png */; }; + 7E95720D19F197BA00F6AE44 /* Icon-50.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A117ECD613001EB2F8 /* Icon-50.png */; }; + 7E95720E19F197BA00F6AE44 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526C019D4E0020013F222 /* Marker Felt.ttf */; }; + 7E95720F19F197BA00F6AE44 /* Icon-114.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77517EB970100C73F5D /* Icon-114.png */; }; + 7E95721019F197BA00F6AE44 /* Icon-29.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A017ECD613001EB2F8 /* Icon-29.png */; }; + 7E95721119F197BA00F6AE44 /* Icon-40.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629217ECD46A001EB2F8 /* Icon-40.png */; }; + 7E95721219F197BA00F6AE44 /* Icon-144.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77717EB970100C73F5D /* Icon-144.png */; }; + 7E95721319F197BA00F6AE44 /* Icon-80.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629417ECD46A001EB2F8 /* Icon-80.png */; }; + 7E95721419F197BA00F6AE44 /* Icon-57.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77917EB970100C73F5D /* Icon-57.png */; }; + 7E95721519F197BA00F6AE44 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77317EB970100C73F5D /* Default.png */; }; + 7E95721619F197BA00F6AE44 /* Icon-58.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629317ECD46A001EB2F8 /* Icon-58.png */; }; + 7E95721819F197BA00F6AE44 /* AppController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FB17EB989F00D1A890 /* AppController.mm */; }; + 7E95721919F197BA00F6AE44 /* RootViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FF17EB989F00D1A890 /* RootViewController.mm */; }; + 7E95721A19F197BA00F6AE44 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FC17EB989F00D1A890 /* main.m */; }; + 7E95721C19F197BA00F6AE44 /* libcocos2d iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50BA599319D492B60070A133 /* libcocos2d iOS.a */; }; + 7E95721D19F197BA00F6AE44 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6B0611A1803AB670077942B /* CoreMotion.framework */; }; + 7E95721E19F197BA00F6AE44 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 7E95721F19F197BA00F6AE44 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; + 7E95722019F197BA00F6AE44 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; + 7E95722119F197BA00F6AE44 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB012928DE900B8313A /* OpenGLES.framework */; }; + 7E95722219F197BA00F6AE44 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; }; + 7E95722319F197BA00F6AE44 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; }; + 7E95722419F197BA00F6AE44 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; }; + 7E95722519F197BA00F6AE44 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; }; + 7E95722619F197BA00F6AE44 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; }; + 7E95723019F197F500F6AE44 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 503AE0F617EB97AB00D1A890 /* Icon.icns */; }; + 7E95723119F197F500F6AE44 /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526C019D4E0020013F222 /* Marker Felt.ttf */; }; + 7E95723319F197F500F6AE44 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 503AE10317EB98FF00D1A890 /* main.cpp */; }; + 7E95723519F197F500F6AE44 /* libcocos2d Mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50BA599119D492B60070A133 /* libcocos2d Mac.a */; }; + 7E95723619F197F500F6AE44 /* libcurl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 503AE11117EB99EE00D1A890 /* libcurl.dylib */; }; + 7E95723719F197F500F6AE44 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; }; + 7E95723819F197F500F6AE44 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 503AE11A17EB9C5A00D1A890 /* IOKit.framework */; }; + 7E95723919F197F500F6AE44 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78A17EB975400C73F5D /* OpenGL.framework */; }; + 7E95723A19F197F500F6AE44 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5087E78817EB974C00C73F5D /* AppKit.framework */; }; + 7E95723B19F197F500F6AE44 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 7E95723C19F197F500F6AE44 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; }; + 7E95723D19F197F500F6AE44 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; }; + 7E95723E19F197F500F6AE44 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; }; + 7E95723F19F197F500F6AE44 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; }; + 7E95724919F1983600F6AE44 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E95724519F1983600F6AE44 /* AppDelegate.cpp */; }; + 7E95724A19F1983600F6AE44 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E95724519F1983600F6AE44 /* AppDelegate.cpp */; }; + 7E95724B19F1983600F6AE44 /* Chapter13.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E95724719F1983600F6AE44 /* Chapter13.cpp */; }; + 7E95724C19F1983600F6AE44 /* Chapter13.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E95724719F1983600F6AE44 /* Chapter13.cpp */; }; + 7E95725019F1993300F6AE44 /* alert.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 7E95724E19F1993300F6AE44 /* alert.mp3 */; }; + 7E95725119F1993300F6AE44 /* alert.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 7E95724E19F1993300F6AE44 /* alert.mp3 */; }; + 7E95725219F1993300F6AE44 /* music.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 7E95724F19F1993300F6AE44 /* music.mp3 */; }; + 7E95725319F1993300F6AE44 /* music.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 7E95724F19F1993300F6AE44 /* music.mp3 */; }; + 7EBF314319E7803F00A7FBEA /* Icon-120.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77617EB970100C73F5D /* Icon-120.png */; }; + 7EBF314519E7803F00A7FBEA /* Blue_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526AE19D4DE890013F222 /* Blue_Front1.png */; }; + 7EBF314619E7803F00A7FBEA /* Icon-76.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77B17EB970100C73F5D /* Icon-76.png */; }; + 7EBF314719E7803F00A7FBEA /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77417EB970100C73F5D /* Default@2x.png */; }; + 7EBF314819E7803F00A7FBEA /* Icon-100.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629517ECD46A001EB2F8 /* Icon-100.png */; }; + 7EBF314919E7803F00A7FBEA /* Icon-152.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77817EB970100C73F5D /* Icon-152.png */; }; + 7EBF314A19E7803F00A7FBEA /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77217EB970100C73F5D /* Default-568h@2x.png */; }; + 7EBF314B19E7803F00A7FBEA /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77A17EB970100C73F5D /* Icon-72.png */; }; + 7EBF314C19E7803F00A7FBEA /* ZigzagForest_Square.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526B219D4DE890013F222 /* ZigzagForest_Square.png */; }; + 7EBF314D19E7803F00A7FBEA /* Icon-50.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A117ECD613001EB2F8 /* Icon-50.png */; }; + 7EBF314E19E7803F00A7FBEA /* Icon-114.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77517EB970100C73F5D /* Icon-114.png */; }; + 7EBF315019E7803F00A7FBEA /* Icon-29.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF62A017ECD613001EB2F8 /* Icon-29.png */; }; + 7EBF315119E7803F00A7FBEA /* Icon-40.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629217ECD46A001EB2F8 /* Icon-40.png */; }; + 7EBF315219E7803F00A7FBEA /* Icon-144.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77717EB970100C73F5D /* Icon-144.png */; }; + 7EBF315419E7803F00A7FBEA /* Icon-80.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629417ECD46A001EB2F8 /* Icon-80.png */; }; + 7EBF315619E7803F00A7FBEA /* LightBlue_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526B019D4DE890013F222 /* LightBlue_Front1.png */; }; + 7EBF315719E7803F00A7FBEA /* ZigzagGrass_Mud_Round.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526B319D4DE890013F222 /* ZigzagGrass_Mud_Round.png */; }; + 7EBF315819E7803F00A7FBEA /* Icon-57.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77917EB970100C73F5D /* Icon-57.png */; }; + 7EBF315919E7803F00A7FBEA /* White_Front1.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526B119D4DE890013F222 /* White_Front1.png */; }; + 7EBF315A19E7803F00A7FBEA /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 5087E77317EB970100C73F5D /* Default.png */; }; + 7EBF315B19E7803F00A7FBEA /* Icon-58.png in Resources */ = {isa = PBXBuildFile; fileRef = 50EF629317ECD46A001EB2F8 /* Icon-58.png */; }; + 7EBF315F19E7803F00A7FBEA /* AppController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FB17EB989F00D1A890 /* AppController.mm */; }; + 7EBF316119E7803F00A7FBEA /* RootViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FF17EB989F00D1A890 /* RootViewController.mm */; }; + 7EBF316219E7803F00A7FBEA /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 503AE0FC17EB989F00D1A890 /* main.m */; }; + 7EBF316419E7803F00A7FBEA /* libcocos2d iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50BA599319D492B60070A133 /* libcocos2d iOS.a */; }; + 7EBF316519E7803F00A7FBEA /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6B0611A1803AB670077942B /* CoreMotion.framework */; }; + 7EBF316619E7803F00A7FBEA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 7EBF316719E7803F00A7FBEA /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; + 7EBF316819E7803F00A7FBEA /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; + 7EBF316919E7803F00A7FBEA /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB012928DE900B8313A /* OpenGLES.framework */; }; + 7EBF316A19E7803F00A7FBEA /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; }; + 7EBF316B19E7803F00A7FBEA /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; }; + 7EBF316C19E7803F00A7FBEA /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; }; + 7EBF316D19E7803F00A7FBEA /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620D132DFF430009C878 /* AVFoundation.framework */; }; + 7EBF316E19E7803F00A7FBEA /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620F132DFF4E0009C878 /* AudioToolbox.framework */; }; + 7EBF317B19E7807500A7FBEA /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7EBF317519E7807500A7FBEA /* AppDelegate.cpp */; }; + 7EBF318019E843F100A7FBEA /* Chapter3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7EBF317E19E843F100A7FBEA /* Chapter3.cpp */; }; + 7EBF318219E8485600A7FBEA /* Chapter 3 iOS-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 7EBF318119E8485600A7FBEA /* Chapter 3 iOS-Info.plist */; }; + 7EBF318319E84A1F00A7FBEA /* Marker Felt.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7E1526C019D4E0020013F222 /* Marker Felt.ttf */; }; + 7EC0CFCB19ECD4BD00C41BDA /* dot.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EC0CFC819ECD2FD00C41BDA /* dot.png */; }; + 7EC0CFCC19ECD4BE00C41BDA /* dot.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EC0CFC819ECD2FD00C41BDA /* dot.png */; }; + 7EC0CFCD19ECE10A00C41BDA /* dot.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EC0CFC819ECD2FD00C41BDA /* dot.png */; }; + 7EC0CFCE19ECE10B00C41BDA /* dot.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EC0CFC819ECD2FD00C41BDA /* dot.png */; }; BF171245129291EC00B8313A /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB012928DE900B8313A /* OpenGLES.framework */; }; BF1712471292920000B8313A /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BF170DB412928DE900B8313A /* libz.dylib */; }; BF1C47F01293687400B63C5D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; }; @@ -183,6 +635,34 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + 296358BA19F78D4F003732AB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 50BA598B19D492B60070A133 /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A07A4C241783777C0073F6A7; + remoteInfo = "libcocos2d iOS"; + }; + 2963591819F78F74003732AB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 50BA598B19D492B60070A133 /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1551A33E158F2AB200E66CFE; + remoteInfo = "libcocos2d Mac"; + }; + 3EE7F8BE19ED607500448914 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 50BA598B19D492B60070A133 /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A07A4C241783777C0073F6A7; + remoteInfo = "libcocos2d iOS"; + }; + 3EE7F8F019ED607800448914 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 50BA598B19D492B60070A133 /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1551A33E158F2AB200E66CFE; + remoteInfo = "libcocos2d Mac"; + }; 50BA599019D492B60070A133 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 50BA598B19D492B60070A133 /* cocos2d_libs.xcodeproj */; @@ -225,14 +705,109 @@ remoteGlobalIDString = 1551A33E158F2AB200E66CFE; remoteInfo = "libcocos2d Mac"; }; + 7E53689F19EC20DE005C3C64 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 50BA598B19D492B60070A133 /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1551A33E158F2AB200E66CFE; + remoteInfo = "libcocos2d Mac"; + }; + 7E5368F019EC228B005C3C64 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 50BA598B19D492B60070A133 /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A07A4C241783777C0073F6A7; + remoteInfo = "libcocos2d iOS"; + }; + 7E53692419EC22F4005C3C64 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 50BA598B19D492B60070A133 /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1551A33E158F2AB200E66CFE; + remoteInfo = "libcocos2d Mac"; + }; + 7E914A441A1BC3F200C6B2D4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 50BA598B19D492B60070A133 /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A07A4C241783777C0073F6A7; + remoteInfo = "libcocos2d iOS"; + }; + 7E914A721A1BC40200C6B2D4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 50BA598B19D492B60070A133 /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1551A33E158F2AB200E66CFE; + remoteInfo = "libcocos2d Mac"; + }; + 7E9571A019F1938B00F6AE44 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 50BA598B19D492B60070A133 /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A07A4C241783777C0073F6A7; + remoteInfo = "libcocos2d iOS"; + }; + 7E9571D519F196D200F6AE44 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 50BA598B19D492B60070A133 /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1551A33E158F2AB200E66CFE; + remoteInfo = "libcocos2d Mac"; + }; + 7E95720419F197BA00F6AE44 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 50BA598B19D492B60070A133 /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A07A4C241783777C0073F6A7; + remoteInfo = "libcocos2d iOS"; + }; + 7E95722E19F197F500F6AE44 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 50BA598B19D492B60070A133 /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 1551A33E158F2AB200E66CFE; + remoteInfo = "libcocos2d Mac"; + }; + 7EBF314119E7803F00A7FBEA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 50BA598B19D492B60070A133 /* cocos2d_libs.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = A07A4C241783777C0073F6A7; + remoteInfo = "libcocos2d iOS"; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ 1ACB3243164770DE00914215 /* libcurl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcurl.a; path = ../../cocos2dx/platform/third_party/ios/libraries/libcurl.a; sourceTree = ""; }; 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 1D6058910D05DD3D006BFB54 /* Programmers Guide iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Programmers Guide iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1D6058910D05DD3D006BFB54 /* Chapter 2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 2.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 296358F119F78D4F003732AB /* Chapter 6 iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 6 iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 296358F419F78D81003732AB /* AppDelegate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AppDelegate.cpp; path = chapter6/AppDelegate.cpp; sourceTree = ""; }; + 296358F519F78D81003732AB /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = chapter6/AppDelegate.h; sourceTree = ""; }; + 296358F619F78D81003732AB /* Chapter6.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Chapter6.cpp; path = chapter6/Chapter6.cpp; sourceTree = ""; }; + 296358F719F78D81003732AB /* Chapter6.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Chapter6.h; path = chapter6/Chapter6.h; sourceTree = ""; }; + 296358FE19F78ED4003732AB /* arial.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = arial.ttf; sourceTree = ""; }; + 296358FF19F78ED4003732AB /* bitmapFontTest.fnt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = bitmapFontTest.fnt; sourceTree = ""; }; + 2963590019F78ED4003732AB /* bitmapFontTest.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bitmapFontTest.png; sourceTree = ""; }; + 2963590119F78ED4003732AB /* labelatlasimg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = labelatlasimg.png; sourceTree = ""; }; + 2963590219F78ED4003732AB /* leftNormal.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = leftNormal.png; sourceTree = ""; }; + 2963590319F78ED4003732AB /* leftSelected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = leftSelected.png; sourceTree = ""; }; + 2963590419F78ED4003732AB /* menuItemSpriteNormal.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menuItemSpriteNormal.png; sourceTree = ""; }; + 2963590519F78ED4003732AB /* menuItemSpriteSelected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menuItemSpriteSelected.png; sourceTree = ""; }; + 2963590619F78ED4003732AB /* restartNormal.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = restartNormal.png; sourceTree = ""; }; + 2963590719F78ED4003732AB /* restartSelected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = restartSelected.png; sourceTree = ""; }; + 2963590819F78ED4003732AB /* rightNormal.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = rightNormal.png; sourceTree = ""; }; + 2963590919F78ED4003732AB /* rightSelected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = rightSelected.png; sourceTree = ""; }; + 2963594219F78F74003732AB /* Chapter 6 Mac.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 6 Mac.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3EE7F8EC19ED607500448914 /* Chapter 12 iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 12 iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3EE7F90D19ED607800448914 /* Chapter 12 Mac.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 12 Mac.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3EE7F91019ED60DF00448914 /* AppDelegate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AppDelegate.cpp; sourceTree = ""; }; + 3EE7F91119ED60DF00448914 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 3EE7F91219ED60DF00448914 /* Chapter12.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Chapter12.cpp; sourceTree = ""; }; + 3EE7F91319ED60DF00448914 /* Chapter12.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Chapter12.h; sourceTree = ""; }; + 3EE7F91819ED60F200448914 /* chapter12 */ = {isa = PBXFileReference; lastKnownFileType = folder; path = chapter12; sourceTree = ""; }; 503AE0F617EB97AB00D1A890 /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Icon.icns; sourceTree = ""; }; 503AE0F717EB97AB00D1A890 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 503AE0FA17EB989F00D1A890 /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppController.h; path = ios/AppController.h; sourceTree = SOURCE_ROOT; }; @@ -245,7 +820,7 @@ 503AE10417EB98FF00D1A890 /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Prefix.pch; path = mac/Prefix.pch; sourceTree = ""; }; 503AE11117EB99EE00D1A890 /* libcurl.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcurl.dylib; path = usr/lib/libcurl.dylib; sourceTree = SDKROOT; }; 503AE11A17EB9C5A00D1A890 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; - 5087E76F17EB910900C73F5D /* Programmers Guide Mac.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Programmers Guide Mac.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5087E76F17EB910900C73F5D /* Chapter 2 Mac.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 2 Mac.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 5087E77217EB970100C73F5D /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; 5087E77317EB970100C73F5D /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; }; 5087E77417EB970100C73F5D /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; }; @@ -259,66 +834,28 @@ 5087E77C17EB970100C73F5D /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 5087E78817EB974C00C73F5D /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; 5087E78A17EB975400C73F5D /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + 50A5DBBD19EC441300082E51 /* sprites.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = sprites.plist; path = ../res/chapter3/sprites.plist; sourceTree = ""; }; + 50A5DBBE19EC441300082E51 /* sprites.pvr.ccz */ = {isa = PBXFileReference; lastKnownFileType = file; name = sprites.pvr.ccz; path = ../res/chapter3/sprites.pvr.ccz; sourceTree = ""; }; 50BA598B19D492B60070A133 /* cocos2d_libs.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = cocos2d_libs.xcodeproj; path = "../libs/cocos2d-x/build/cocos2d_libs.xcodeproj"; sourceTree = ""; }; 50BA599A19D493310070A133 /* AppDelegate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AppDelegate.cpp; sourceTree = ""; }; 50BA599B19D493310070A133 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 50BA599C19D493310070A133 /* Chapter2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Chapter2.cpp; sourceTree = ""; }; 50BA599D19D493310070A133 /* Chapter2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Chapter2.h; sourceTree = ""; }; - 50BA59A819D498F00070A133 /* Marker Felt.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Marker Felt.ttf"; sourceTree = ""; }; - 50BA59DF19D4992C0070A133 /* Chapter 2 iOS copy.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 2 iOS copy.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 50BA59E019D4992C0070A133 /* Chapter 2 iOS copy-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Chapter 2 iOS copy-Info.plist"; path = "/Users/riq/progs/programmers-guide-samples/proj.ios_mac/Chapter 2 iOS copy-Info.plist"; sourceTree = ""; }; - 50BA59FD19D499360070A133 /* Chapter 2 Mac copy.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 2 Mac copy.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 50BA59FE19D499360070A133 /* Chapter 2 Mac copy-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Chapter 2 Mac copy-Info.plist"; path = "/Users/riq/progs/programmers-guide-samples/proj.ios_mac/Chapter 2 Mac copy-Info.plist"; sourceTree = ""; }; - 50BA5A0019D49A2F0070A133 /* AppDelegate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AppDelegate.cpp; sourceTree = ""; }; - 50BA5A0119D49A2F0070A133 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 50BA5A0219D49A2F0070A133 /* Chapter10.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Chapter10.cpp; sourceTree = ""; }; - 50BA5A0319D49A2F0070A133 /* Chapter10.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Chapter10.h; sourceTree = ""; }; - 50BA5A0919D49A3F0070A133 /* CloseNormal.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = CloseNormal.png; sourceTree = ""; }; - 50BA5A0A19D49A3F0070A133 /* CloseSelected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = CloseSelected.png; sourceTree = ""; }; - 50BA5A0C19D49A3F0070A133 /* Marker Felt.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Marker Felt.ttf"; sourceTree = ""; }; - 50BA5A0D19D49A3F0070A133 /* HelloWorld.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = HelloWorld.png; sourceTree = ""; }; + 50BA59DF19D4992C0070A133 /* Chapter 9 iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 9 iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 50BA59FD19D499360070A133 /* Chapter 9 Mac.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 9 Mac.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 50EF629217ECD46A001EB2F8 /* Icon-40.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-40.png"; sourceTree = ""; }; 50EF629317ECD46A001EB2F8 /* Icon-58.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-58.png"; sourceTree = ""; }; 50EF629417ECD46A001EB2F8 /* Icon-80.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-80.png"; sourceTree = ""; }; 50EF629517ECD46A001EB2F8 /* Icon-100.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-100.png"; sourceTree = ""; }; 50EF62A017ECD613001EB2F8 /* Icon-29.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-29.png"; sourceTree = ""; }; 50EF62A117ECD613001EB2F8 /* Icon-50.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-50.png"; sourceTree = ""; }; - 5E453F5C19E5178500AB3A5D /* Chapter10_1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Chapter10_1.cpp; sourceTree = ""; }; - 5E453F5D19E5178500AB3A5D /* Chapter10_1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Chapter10_1.h; sourceTree = ""; }; - 5E453F6219E5359600AB3A5D /* boss.c3b */ = {isa = PBXFileReference; lastKnownFileType = file; path = boss.c3b; sourceTree = ""; }; - 5E453F6319E5359600AB3A5D /* boss.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = boss.png; sourceTree = ""; }; - 5E453F6A19E5423D00AB3A5D /* Chapter10_2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Chapter10_2.cpp; sourceTree = ""; }; - 5E453F6B19E5423D00AB3A5D /* Chapter10_2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Chapter10_2.h; sourceTree = ""; }; - 5E453F6E19E5452600AB3A5D /* monguger.tga */ = {isa = PBXFileReference; lastKnownFileType = file; path = monguger.tga; sourceTree = ""; }; - 5E453F6F19E5452600AB3A5D /* orc.c3b */ = {isa = PBXFileReference; lastKnownFileType = file; path = orc.c3b; sourceTree = ""; }; - 5E453F7419E62AD000AB3A5D /* Chapter10_3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Chapter10_3.cpp; sourceTree = ""; }; - 5E453F7519E62AD000AB3A5D /* Chapter10_3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Chapter10_3.h; sourceTree = ""; }; - 5E453F7819E62CAA00AB3A5D /* arx.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = arx.png; sourceTree = ""; }; - 5E453F7919E62CAA00AB3A5D /* axe.c3b */ = {isa = PBXFileReference; lastKnownFileType = file; path = axe.c3b; sourceTree = ""; }; - 5E453F7E19E62EB700AB3A5D /* Girl_Face.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Girl_Face.png; sourceTree = ""; }; - 5E453F7F19E62EB700AB3A5D /* Girl_Glasses01.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Girl_Glasses01.png; sourceTree = ""; }; - 5E453F8019E62EB700AB3A5D /* Girl_Hair01.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Girl_Hair01.png; sourceTree = ""; }; - 5E453F8119E62EB700AB3A5D /* Girl_Hair02.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Girl_Hair02.png; sourceTree = ""; }; - 5E453F8219E62EB700AB3A5D /* Girl_Hand.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Girl_Hand.png; sourceTree = ""; }; - 5E453F8319E62EB700AB3A5D /* Girl_LowerBody01.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Girl_LowerBody01.png; sourceTree = ""; }; - 5E453F8419E62EB700AB3A5D /* Girl_LowerBody02.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Girl_LowerBody02.png; sourceTree = ""; }; - 5E453F8519E62EB700AB3A5D /* Girl_Shoes01.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Girl_Shoes01.png; sourceTree = ""; }; - 5E453F8619E62EB700AB3A5D /* Girl_Shoes02.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Girl_Shoes02.png; sourceTree = ""; }; - 5E453F8719E62EB700AB3A5D /* Girl_UpperBody01.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Girl_UpperBody01.png; sourceTree = ""; }; - 5E453F8819E62EB700AB3A5D /* Girl_UpperBody02.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Girl_UpperBody02.png; sourceTree = ""; }; - 5E453F8919E62EB700AB3A5D /* ReskinGirl.c3b */ = {isa = PBXFileReference; lastKnownFileType = file; path = ReskinGirl.c3b; sourceTree = ""; }; - 5E453FA219E6309600AB3A5D /* Chapter10_4.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Chapter10_4.cpp; sourceTree = ""; }; - 5E453FA319E6309600AB3A5D /* Chapter10_4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Chapter10_4.h; sourceTree = ""; }; - 5E5874DB19E8DCB0009744B7 /* Chapter10_7.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Chapter10_7.cpp; sourceTree = ""; }; - 5E5874DC19E8DCB0009744B7 /* Chapter10_7.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Chapter10_7.h; sourceTree = ""; }; - 5EAA122319E790B700B5D2BA /* Chapter10_5.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Chapter10_5.cpp; sourceTree = ""; }; - 5EAA122419E790B700B5D2BA /* Chapter10_5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Chapter10_5.h; sourceTree = ""; }; - 5EAA122719E7D1E400B5D2BA /* DrawNode3D.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DrawNode3D.cpp; sourceTree = ""; }; - 5EAA122819E7D1E400B5D2BA /* DrawNode3D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawNode3D.h; sourceTree = ""; }; - 5EAA122B19E7E69600B5D2BA /* Chapter10_6.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Chapter10_6.cpp; sourceTree = ""; }; - 5EAA122C19E7E69600B5D2BA /* Chapter10_6.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Chapter10_6.h; sourceTree = ""; }; + 5E38D2C419F0F3DD0099B433 /* Chapter9_9.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Chapter9_9.cpp; path = chapter9/Chapter9_9.cpp; sourceTree = ""; }; + 5E38D2C519F0F3DD0099B433 /* Chapter9_9.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Chapter9_9.h; path = chapter9/Chapter9_9.h; sourceTree = ""; }; + 5E38D2C819F0F3FF0099B433 /* sphere.c3b */ = {isa = PBXFileReference; lastKnownFileType = file; name = sphere.c3b; path = chapter9/sphere.c3b; sourceTree = ""; }; + 5E38D2C919F0F3FF0099B433 /* spheretex.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = spheretex.png; path = chapter9/spheretex.png; sourceTree = ""; }; + 5E4C83EA1A3EC4DA00F65FA9 /* plane.obj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = plane.obj; path = chapter9/plane.obj; sourceTree = ""; }; + 5E4C83ED1A3EC4F900F65FA9 /* planetex.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = planetex.png; path = chapter9/planetex.png; sourceTree = ""; }; 7E1526AE19D4DE890013F222 /* Blue_Front1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Blue_Front1.png; sourceTree = ""; }; - 7E1526AF19D4DE890013F222 /* HelloWorld.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = HelloWorld.png; sourceTree = ""; }; 7E1526B019D4DE890013F222 /* LightBlue_Front1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = LightBlue_Front1.png; sourceTree = ""; }; 7E1526B119D4DE890013F222 /* White_Front1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = White_Front1.png; sourceTree = ""; }; 7E1526B219D4DE890013F222 /* ZigzagForest_Square.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ZigzagForest_Square.png; sourceTree = ""; }; @@ -326,7 +863,103 @@ 7E1526C019D4E0020013F222 /* Marker Felt.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Marker Felt.ttf"; sourceTree = ""; }; 7E273C7E19D9CE460029CCC0 /* Chapter2Level1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Chapter2Level1.cpp; sourceTree = ""; }; 7E273C7F19D9CE460029CCC0 /* Chapter2Level1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Chapter2Level1.h; sourceTree = ""; }; - 7E4ED39E19DB4D78003A49C2 /* clouds_1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = clouds_1.png; sourceTree = ""; }; + 7E35329019F06ECB0080126B /* Blue_Back1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Blue_Back1.png; path = chapter4/Blue_Back1.png; sourceTree = ""; }; + 7E35329119F06ECB0080126B /* Blue_Back2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Blue_Back2.png; path = chapter4/Blue_Back2.png; sourceTree = ""; }; + 7E35329219F06ECB0080126B /* Blue_Back3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Blue_Back3.png; path = chapter4/Blue_Back3.png; sourceTree = ""; }; + 7E35329319F06ECB0080126B /* Blue_Front1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Blue_Front1.png; path = chapter4/Blue_Front1.png; sourceTree = ""; }; + 7E35329419F06ECB0080126B /* Blue_Front2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Blue_Front2.png; path = chapter4/Blue_Front2.png; sourceTree = ""; }; + 7E35329519F06ECB0080126B /* Blue_Front3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Blue_Front3.png; path = chapter4/Blue_Front3.png; sourceTree = ""; }; + 7E35329619F06ECB0080126B /* Blue_Left1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Blue_Left1.png; path = chapter4/Blue_Left1.png; sourceTree = ""; }; + 7E35329719F06ECB0080126B /* Blue_Left2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Blue_Left2.png; path = chapter4/Blue_Left2.png; sourceTree = ""; }; + 7E35329819F06ECB0080126B /* Blue_Left3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Blue_Left3.png; path = chapter4/Blue_Left3.png; sourceTree = ""; }; + 7E35329919F06ECB0080126B /* Blue_Right1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Blue_Right1.png; path = chapter4/Blue_Right1.png; sourceTree = ""; }; + 7E35329A19F06ECB0080126B /* Blue_Right2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Blue_Right2.png; path = chapter4/Blue_Right2.png; sourceTree = ""; }; + 7E35329B19F06ECB0080126B /* Blue_Right3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Blue_Right3.png; path = chapter4/Blue_Right3.png; sourceTree = ""; }; + 7E5367DA19EAD7F2005C3C64 /* arx.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = arx.png; path = chapter9/arx.png; sourceTree = ""; }; + 7E5367DB19EAD7F2005C3C64 /* axe.c3b */ = {isa = PBXFileReference; lastKnownFileType = file; name = axe.c3b; path = chapter9/axe.c3b; sourceTree = ""; }; + 7E5367DC19EAD7F2005C3C64 /* Blue_Front1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Blue_Front1.png; path = chapter9/Blue_Front1.png; sourceTree = ""; }; + 7E5367DD19EAD7F2005C3C64 /* body.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = body.png; path = chapter9/body.png; sourceTree = ""; }; + 7E5367DE19EAD7F2005C3C64 /* boss.c3b */ = {isa = PBXFileReference; lastKnownFileType = file; name = boss.c3b; path = chapter9/boss.c3b; sourceTree = ""; }; + 7E5367DF19EAD7F2005C3C64 /* boss.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = boss.png; path = chapter9/boss.png; sourceTree = ""; }; + 7E5367E019EAD7F2005C3C64 /* CloseNormal.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = CloseNormal.png; path = chapter9/CloseNormal.png; sourceTree = ""; }; + 7E5367E119EAD7F2005C3C64 /* CloseSelected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = CloseSelected.png; path = chapter9/CloseSelected.png; sourceTree = ""; }; + 7E5367E319EAD7F2005C3C64 /* Marker Felt.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Marker Felt.ttf"; sourceTree = ""; }; + 7E5367E419EAD7F2005C3C64 /* Girl_Face.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Girl_Face.png; path = chapter9/Girl_Face.png; sourceTree = ""; }; + 7E5367E519EAD7F2005C3C64 /* Girl_Glasses01.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Girl_Glasses01.png; path = chapter9/Girl_Glasses01.png; sourceTree = ""; }; + 7E5367E619EAD7F2005C3C64 /* Girl_Hair01.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Girl_Hair01.png; path = chapter9/Girl_Hair01.png; sourceTree = ""; }; + 7E5367E719EAD7F2005C3C64 /* Girl_Hair02.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Girl_Hair02.png; path = chapter9/Girl_Hair02.png; sourceTree = ""; }; + 7E5367E819EAD7F2005C3C64 /* Girl_Hand.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Girl_Hand.png; path = chapter9/Girl_Hand.png; sourceTree = ""; }; + 7E5367E919EAD7F2005C3C64 /* Girl_LowerBody01.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Girl_LowerBody01.png; path = chapter9/Girl_LowerBody01.png; sourceTree = ""; }; + 7E5367EA19EAD7F2005C3C64 /* Girl_LowerBody02.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Girl_LowerBody02.png; path = chapter9/Girl_LowerBody02.png; sourceTree = ""; }; + 7E5367EB19EAD7F2005C3C64 /* Girl_Shoes01.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Girl_Shoes01.png; path = chapter9/Girl_Shoes01.png; sourceTree = ""; }; + 7E5367EC19EAD7F2005C3C64 /* Girl_Shoes02.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Girl_Shoes02.png; path = chapter9/Girl_Shoes02.png; sourceTree = ""; }; + 7E5367ED19EAD7F2005C3C64 /* Girl_UpperBody01.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Girl_UpperBody01.png; path = chapter9/Girl_UpperBody01.png; sourceTree = ""; }; + 7E5367EE19EAD7F2005C3C64 /* Girl_UpperBody02.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Girl_UpperBody02.png; path = chapter9/Girl_UpperBody02.png; sourceTree = ""; }; + 7E5367EF19EAD7F2005C3C64 /* girl.c3b */ = {isa = PBXFileReference; lastKnownFileType = file; name = girl.c3b; path = chapter9/girl.c3b; sourceTree = ""; }; + 7E5367F019EAD7F2005C3C64 /* HelloWorld.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = HelloWorld.png; path = chapter9/HelloWorld.png; sourceTree = ""; }; + 7E5367F119EAD7F2005C3C64 /* monguger.tga */ = {isa = PBXFileReference; lastKnownFileType = file; name = monguger.tga; path = chapter9/monguger.tga; sourceTree = ""; }; + 7E5367F219EAD7F2005C3C64 /* orc.c3b */ = {isa = PBXFileReference; lastKnownFileType = file; name = orc.c3b; path = chapter9/orc.c3b; sourceTree = ""; }; + 7E5367F319EAD7F2005C3C64 /* ReskinGirl.c3b */ = {isa = PBXFileReference; lastKnownFileType = file; name = ReskinGirl.c3b; path = chapter9/ReskinGirl.c3b; sourceTree = ""; }; + 7E5367F419EAD7F2005C3C64 /* tortoise.c3b */ = {isa = PBXFileReference; lastKnownFileType = file; name = tortoise.c3b; path = chapter9/tortoise.c3b; sourceTree = ""; }; + 7E5367F519EAD7F2005C3C64 /* tortoise.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = tortoise.png; path = chapter9/tortoise.png; sourceTree = ""; }; + 7E5367F619EAD7F2005C3C64 /* Xie_01.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Xie_01.png; path = chapter9/Xie_01.png; sourceTree = ""; }; + 7E5367F719EAD7F2005C3C64 /* zhujue_jian.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = zhujue_jian.png; path = chapter9/zhujue_jian.png; sourceTree = ""; }; + 7E5367F819EAD7F2005C3C64 /* zhujue.c3b */ = {isa = PBXFileReference; lastKnownFileType = file; name = zhujue.c3b; path = chapter9/zhujue.c3b; sourceTree = ""; }; + 7E5367F919EAD7F2005C3C64 /* zhujue.c3t */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = zhujue.c3t; path = chapter9/zhujue.c3t; sourceTree = ""; }; + 7E5367FA19EAD7F2005C3C64 /* zhujue.FBX */ = {isa = PBXFileReference; lastKnownFileType = file; name = zhujue.FBX; path = chapter9/zhujue.FBX; sourceTree = ""; }; + 7E5367FB19EAD7F2005C3C64 /* zhujue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = zhujue.png; path = chapter9/zhujue.png; sourceTree = ""; }; + 7E53686B19EAD894005C3C64 /* AppDelegate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AppDelegate.cpp; path = chapter9/AppDelegate.cpp; sourceTree = ""; }; + 7E53686C19EAD894005C3C64 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = chapter9/AppDelegate.h; sourceTree = ""; }; + 7E53686D19EAD894005C3C64 /* Chapter9_1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Chapter9_1.cpp; path = chapter9/Chapter9_1.cpp; sourceTree = ""; }; + 7E53686E19EAD894005C3C64 /* Chapter9_1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Chapter9_1.h; path = chapter9/Chapter9_1.h; sourceTree = ""; }; + 7E53686F19EAD894005C3C64 /* Chapter9_2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Chapter9_2.cpp; path = chapter9/Chapter9_2.cpp; sourceTree = ""; }; + 7E53687019EAD894005C3C64 /* Chapter9_2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Chapter9_2.h; path = chapter9/Chapter9_2.h; sourceTree = ""; }; + 7E53687119EAD894005C3C64 /* Chapter9_3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Chapter9_3.cpp; path = chapter9/Chapter9_3.cpp; sourceTree = ""; }; + 7E53687219EAD894005C3C64 /* Chapter9_3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Chapter9_3.h; path = chapter9/Chapter9_3.h; sourceTree = ""; }; + 7E53687319EAD894005C3C64 /* Chapter9_4.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Chapter9_4.cpp; path = chapter9/Chapter9_4.cpp; sourceTree = ""; }; + 7E53687419EAD894005C3C64 /* Chapter9_4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Chapter9_4.h; path = chapter9/Chapter9_4.h; sourceTree = ""; }; + 7E53687519EAD894005C3C64 /* Chapter9_5.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Chapter9_5.cpp; path = chapter9/Chapter9_5.cpp; sourceTree = ""; }; + 7E53687619EAD894005C3C64 /* Chapter9_5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Chapter9_5.h; path = chapter9/Chapter9_5.h; sourceTree = ""; }; + 7E53687719EAD894005C3C64 /* Chapter9_6.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Chapter9_6.cpp; path = chapter9/Chapter9_6.cpp; sourceTree = ""; }; + 7E53687819EAD894005C3C64 /* Chapter9_6.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Chapter9_6.h; path = chapter9/Chapter9_6.h; sourceTree = ""; }; + 7E53687919EAD894005C3C64 /* Chapter9_7.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Chapter9_7.cpp; path = chapter9/Chapter9_7.cpp; sourceTree = ""; }; + 7E53687A19EAD894005C3C64 /* Chapter9_7.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Chapter9_7.h; path = chapter9/Chapter9_7.h; sourceTree = ""; }; + 7E53687B19EAD894005C3C64 /* Chapter9_8.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Chapter9_8.cpp; path = chapter9/Chapter9_8.cpp; sourceTree = ""; }; + 7E53687C19EAD894005C3C64 /* Chapter9_8.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Chapter9_8.h; path = chapter9/Chapter9_8.h; sourceTree = ""; }; + 7E53687D19EAD894005C3C64 /* Chapter9.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Chapter9.cpp; path = chapter9/Chapter9.cpp; sourceTree = ""; }; + 7E53687E19EAD894005C3C64 /* Chapter9.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Chapter9.h; path = chapter9/Chapter9.h; sourceTree = ""; }; + 7E53687F19EAD894005C3C64 /* DrawNode3D.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DrawNode3D.cpp; path = chapter9/DrawNode3D.cpp; sourceTree = ""; }; + 7E53688019EAD894005C3C64 /* DrawNode3D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DrawNode3D.h; path = chapter9/DrawNode3D.h; sourceTree = ""; }; + 7E5368DF19EC20DE005C3C64 /* Chapter 3 Mac.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 3 Mac.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7E53692019EC228B005C3C64 /* Chapter 4 iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 4 iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7E53694419EC22F4005C3C64 /* Chapter 4 Mac.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 4 Mac.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7E53694619EC234D005C3C64 /* AppDelegate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AppDelegate.cpp; path = chapter4/AppDelegate.cpp; sourceTree = ""; }; + 7E53694719EC234D005C3C64 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = chapter4/AppDelegate.h; sourceTree = ""; }; + 7E53694819EC234D005C3C64 /* Chapter4.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Chapter4.cpp; path = chapter4/Chapter4.cpp; sourceTree = ""; }; + 7E53694919EC234D005C3C64 /* Chapter4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Chapter4.h; path = chapter4/Chapter4.h; sourceTree = ""; }; + 7E914A6E1A1BC3F200C6B2D4 /* Chapter 5 iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 5 iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7E914A8B1A1BC40200C6B2D4 /* Chapter 5 Mac.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 5 Mac.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7E914A8E1A1BC8F500C6B2D4 /* AppDelegate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AppDelegate.cpp; sourceTree = ""; }; + 7E914A8F1A1BC8F500C6B2D4 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 7E914A901A1BC8F500C6B2D4 /* Chapter5.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Chapter5.cpp; sourceTree = ""; }; + 7E914A911A1BC8F500C6B2D4 /* Chapter5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Chapter5.h; sourceTree = ""; }; + 7E9571D119F1938B00F6AE44 /* Chapter 8 iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 8 iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7E9571FF19F196D200F6AE44 /* Chapter 8 Mac.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 8 Mac.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7E95722A19F197BA00F6AE44 /* Chapter 13 iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 13 iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7E95724319F197F500F6AE44 /* Chapter 13 Mac.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 13 Mac.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7E95724519F1983600F6AE44 /* AppDelegate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AppDelegate.cpp; path = chapter13/AppDelegate.cpp; sourceTree = ""; }; + 7E95724619F1983600F6AE44 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = chapter13/AppDelegate.h; sourceTree = ""; }; + 7E95724719F1983600F6AE44 /* Chapter13.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Chapter13.cpp; path = chapter13/Chapter13.cpp; sourceTree = ""; }; + 7E95724819F1983600F6AE44 /* Chapter13.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Chapter13.h; path = chapter13/Chapter13.h; sourceTree = ""; }; + 7E95724E19F1993300F6AE44 /* alert.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = alert.mp3; path = chapter13/alert.mp3; sourceTree = ""; }; + 7E95724F19F1993300F6AE44 /* music.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = music.mp3; path = chapter13/music.mp3; sourceTree = ""; }; + 7EBF317219E7803F00A7FBEA /* Chapter 3.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Chapter 3.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7EBF317519E7807500A7FBEA /* AppDelegate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AppDelegate.cpp; sourceTree = ""; }; + 7EBF317619E7807500A7FBEA /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 7EBF317E19E843F100A7FBEA /* Chapter3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Chapter3.cpp; sourceTree = ""; }; + 7EBF317F19E843F100A7FBEA /* Chapter3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Chapter3.h; sourceTree = ""; }; + 7EBF318119E8485600A7FBEA /* Chapter 3 iOS-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Chapter 3 iOS-Info.plist"; sourceTree = SOURCE_ROOT; }; + 7EC0CFC819ECD2FD00C41BDA /* dot.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = dot.png; sourceTree = ""; }; BF170DB012928DE900B8313A /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; BF170DB412928DE900B8313A /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; BF1C47EA1293683800B63C5D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; @@ -355,6 +988,78 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 296358E219F78D4F003732AB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 296358E319F78D4F003732AB /* libcocos2d iOS.a in Frameworks */, + 296358E419F78D4F003732AB /* CoreMotion.framework in Frameworks */, + 296358E519F78D4F003732AB /* Foundation.framework in Frameworks */, + 296358E619F78D4F003732AB /* UIKit.framework in Frameworks */, + 296358E719F78D4F003732AB /* CoreGraphics.framework in Frameworks */, + 296358E819F78D4F003732AB /* OpenGLES.framework in Frameworks */, + 296358E919F78D4F003732AB /* libz.dylib in Frameworks */, + 296358EA19F78D4F003732AB /* QuartzCore.framework in Frameworks */, + 296358EB19F78D4F003732AB /* OpenAL.framework in Frameworks */, + 296358EC19F78D4F003732AB /* AVFoundation.framework in Frameworks */, + 296358ED19F78D4F003732AB /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2963593319F78F74003732AB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 2963593419F78F74003732AB /* libcocos2d Mac.a in Frameworks */, + 2963593519F78F74003732AB /* libcurl.dylib in Frameworks */, + 2963593619F78F74003732AB /* libz.dylib in Frameworks */, + 2963593719F78F74003732AB /* IOKit.framework in Frameworks */, + 2963593819F78F74003732AB /* OpenGL.framework in Frameworks */, + 2963593919F78F74003732AB /* AppKit.framework in Frameworks */, + 2963593A19F78F74003732AB /* Foundation.framework in Frameworks */, + 2963593B19F78F74003732AB /* QuartzCore.framework in Frameworks */, + 2963593C19F78F74003732AB /* OpenAL.framework in Frameworks */, + 2963593D19F78F74003732AB /* AVFoundation.framework in Frameworks */, + 2963593E19F78F74003732AB /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3EE7F8DD19ED607500448914 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3EE7F8DE19ED607500448914 /* libcocos2d iOS.a in Frameworks */, + 3EE7F8DF19ED607500448914 /* CoreMotion.framework in Frameworks */, + 3EE7F8E019ED607500448914 /* Foundation.framework in Frameworks */, + 3EE7F8E119ED607500448914 /* UIKit.framework in Frameworks */, + 3EE7F8E219ED607500448914 /* CoreGraphics.framework in Frameworks */, + 3EE7F8E319ED607500448914 /* OpenGLES.framework in Frameworks */, + 3EE7F8E419ED607500448914 /* libz.dylib in Frameworks */, + 3EE7F8E519ED607500448914 /* QuartzCore.framework in Frameworks */, + 3EE7F8E619ED607500448914 /* OpenAL.framework in Frameworks */, + 3EE7F8E719ED607500448914 /* AVFoundation.framework in Frameworks */, + 3EE7F8E819ED607500448914 /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3EE7F8FE19ED607800448914 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3EE7F8FF19ED607800448914 /* libcocos2d Mac.a in Frameworks */, + 3EE7F90019ED607800448914 /* libcurl.dylib in Frameworks */, + 3EE7F90119ED607800448914 /* libz.dylib in Frameworks */, + 3EE7F90219ED607800448914 /* IOKit.framework in Frameworks */, + 3EE7F90319ED607800448914 /* OpenGL.framework in Frameworks */, + 3EE7F90419ED607800448914 /* AppKit.framework in Frameworks */, + 3EE7F90519ED607800448914 /* Foundation.framework in Frameworks */, + 3EE7F90619ED607800448914 /* QuartzCore.framework in Frameworks */, + 3EE7F90719ED607800448914 /* OpenAL.framework in Frameworks */, + 3EE7F90819ED607800448914 /* AVFoundation.framework in Frameworks */, + 3EE7F90919ED607800448914 /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 5087E75C17EB910900C73F5D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -409,12 +1114,193 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 7E5368D019EC20DE005C3C64 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E5368D119EC20DE005C3C64 /* libcocos2d Mac.a in Frameworks */, + 7E5368D219EC20DE005C3C64 /* libcurl.dylib in Frameworks */, + 7E5368D319EC20DE005C3C64 /* libz.dylib in Frameworks */, + 7E5368D419EC20DE005C3C64 /* IOKit.framework in Frameworks */, + 7E5368D519EC20DE005C3C64 /* OpenGL.framework in Frameworks */, + 7E5368D619EC20DE005C3C64 /* AppKit.framework in Frameworks */, + 7E5368D719EC20DE005C3C64 /* Foundation.framework in Frameworks */, + 7E5368D819EC20DE005C3C64 /* QuartzCore.framework in Frameworks */, + 7E5368D919EC20DE005C3C64 /* OpenAL.framework in Frameworks */, + 7E5368DA19EC20DE005C3C64 /* AVFoundation.framework in Frameworks */, + 7E5368DB19EC20DE005C3C64 /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E53691119EC228B005C3C64 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E53691219EC228B005C3C64 /* libcocos2d iOS.a in Frameworks */, + 7E53691319EC228B005C3C64 /* CoreMotion.framework in Frameworks */, + 7E53691419EC228B005C3C64 /* Foundation.framework in Frameworks */, + 7E53691519EC228B005C3C64 /* UIKit.framework in Frameworks */, + 7E53691619EC228B005C3C64 /* CoreGraphics.framework in Frameworks */, + 7E53691719EC228B005C3C64 /* OpenGLES.framework in Frameworks */, + 7E53691819EC228B005C3C64 /* libz.dylib in Frameworks */, + 7E53691919EC228B005C3C64 /* QuartzCore.framework in Frameworks */, + 7E53691A19EC228B005C3C64 /* OpenAL.framework in Frameworks */, + 7E53691B19EC228B005C3C64 /* AVFoundation.framework in Frameworks */, + 7E53691C19EC228B005C3C64 /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E53693519EC22F4005C3C64 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E53693619EC22F4005C3C64 /* libcocos2d Mac.a in Frameworks */, + 7E53693719EC22F4005C3C64 /* libcurl.dylib in Frameworks */, + 7E53693819EC22F4005C3C64 /* libz.dylib in Frameworks */, + 7E53693919EC22F4005C3C64 /* IOKit.framework in Frameworks */, + 7E53693A19EC22F4005C3C64 /* OpenGL.framework in Frameworks */, + 7E53693B19EC22F4005C3C64 /* AppKit.framework in Frameworks */, + 7E53693C19EC22F4005C3C64 /* Foundation.framework in Frameworks */, + 7E53693D19EC22F4005C3C64 /* QuartzCore.framework in Frameworks */, + 7E53693E19EC22F4005C3C64 /* OpenAL.framework in Frameworks */, + 7E53693F19EC22F4005C3C64 /* AVFoundation.framework in Frameworks */, + 7E53694019EC22F4005C3C64 /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E914A5F1A1BC3F200C6B2D4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E914A601A1BC3F200C6B2D4 /* libcocos2d iOS.a in Frameworks */, + 7E914A611A1BC3F200C6B2D4 /* CoreMotion.framework in Frameworks */, + 7E914A621A1BC3F200C6B2D4 /* Foundation.framework in Frameworks */, + 7E914A631A1BC3F200C6B2D4 /* UIKit.framework in Frameworks */, + 7E914A641A1BC3F200C6B2D4 /* CoreGraphics.framework in Frameworks */, + 7E914A651A1BC3F200C6B2D4 /* OpenGLES.framework in Frameworks */, + 7E914A661A1BC3F200C6B2D4 /* libz.dylib in Frameworks */, + 7E914A671A1BC3F200C6B2D4 /* QuartzCore.framework in Frameworks */, + 7E914A681A1BC3F200C6B2D4 /* OpenAL.framework in Frameworks */, + 7E914A691A1BC3F200C6B2D4 /* AVFoundation.framework in Frameworks */, + 7E914A6A1A1BC3F200C6B2D4 /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E914A7C1A1BC40200C6B2D4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E914A7D1A1BC40200C6B2D4 /* libcocos2d Mac.a in Frameworks */, + 7E914A7E1A1BC40200C6B2D4 /* libcurl.dylib in Frameworks */, + 7E914A7F1A1BC40200C6B2D4 /* libz.dylib in Frameworks */, + 7E914A801A1BC40200C6B2D4 /* IOKit.framework in Frameworks */, + 7E914A811A1BC40200C6B2D4 /* OpenGL.framework in Frameworks */, + 7E914A821A1BC40200C6B2D4 /* AppKit.framework in Frameworks */, + 7E914A831A1BC40200C6B2D4 /* Foundation.framework in Frameworks */, + 7E914A841A1BC40200C6B2D4 /* QuartzCore.framework in Frameworks */, + 7E914A851A1BC40200C6B2D4 /* OpenAL.framework in Frameworks */, + 7E914A861A1BC40200C6B2D4 /* AVFoundation.framework in Frameworks */, + 7E914A871A1BC40200C6B2D4 /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E9571C219F1938B00F6AE44 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E9571C319F1938B00F6AE44 /* libcocos2d iOS.a in Frameworks */, + 7E9571C419F1938B00F6AE44 /* CoreMotion.framework in Frameworks */, + 7E9571C519F1938B00F6AE44 /* Foundation.framework in Frameworks */, + 7E9571C619F1938B00F6AE44 /* UIKit.framework in Frameworks */, + 7E9571C719F1938B00F6AE44 /* CoreGraphics.framework in Frameworks */, + 7E9571C819F1938B00F6AE44 /* OpenGLES.framework in Frameworks */, + 7E9571C919F1938B00F6AE44 /* libz.dylib in Frameworks */, + 7E9571CA19F1938B00F6AE44 /* QuartzCore.framework in Frameworks */, + 7E9571CB19F1938B00F6AE44 /* OpenAL.framework in Frameworks */, + 7E9571CC19F1938B00F6AE44 /* AVFoundation.framework in Frameworks */, + 7E9571CD19F1938B00F6AE44 /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E9571F019F196D200F6AE44 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E9571F119F196D200F6AE44 /* libcocos2d Mac.a in Frameworks */, + 7E9571F219F196D200F6AE44 /* libcurl.dylib in Frameworks */, + 7E9571F319F196D200F6AE44 /* libz.dylib in Frameworks */, + 7E9571F419F196D200F6AE44 /* IOKit.framework in Frameworks */, + 7E9571F519F196D200F6AE44 /* OpenGL.framework in Frameworks */, + 7E9571F619F196D200F6AE44 /* AppKit.framework in Frameworks */, + 7E9571F719F196D200F6AE44 /* Foundation.framework in Frameworks */, + 7E9571F819F196D200F6AE44 /* QuartzCore.framework in Frameworks */, + 7E9571F919F196D200F6AE44 /* OpenAL.framework in Frameworks */, + 7E9571FA19F196D200F6AE44 /* AVFoundation.framework in Frameworks */, + 7E9571FB19F196D200F6AE44 /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E95721B19F197BA00F6AE44 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E95721C19F197BA00F6AE44 /* libcocos2d iOS.a in Frameworks */, + 7E95721D19F197BA00F6AE44 /* CoreMotion.framework in Frameworks */, + 7E95721E19F197BA00F6AE44 /* Foundation.framework in Frameworks */, + 7E95721F19F197BA00F6AE44 /* UIKit.framework in Frameworks */, + 7E95722019F197BA00F6AE44 /* CoreGraphics.framework in Frameworks */, + 7E95722119F197BA00F6AE44 /* OpenGLES.framework in Frameworks */, + 7E95722219F197BA00F6AE44 /* libz.dylib in Frameworks */, + 7E95722319F197BA00F6AE44 /* QuartzCore.framework in Frameworks */, + 7E95722419F197BA00F6AE44 /* OpenAL.framework in Frameworks */, + 7E95722519F197BA00F6AE44 /* AVFoundation.framework in Frameworks */, + 7E95722619F197BA00F6AE44 /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E95723419F197F500F6AE44 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E95723519F197F500F6AE44 /* libcocos2d Mac.a in Frameworks */, + 7E95723619F197F500F6AE44 /* libcurl.dylib in Frameworks */, + 7E95723719F197F500F6AE44 /* libz.dylib in Frameworks */, + 7E95723819F197F500F6AE44 /* IOKit.framework in Frameworks */, + 7E95723919F197F500F6AE44 /* OpenGL.framework in Frameworks */, + 7E95723A19F197F500F6AE44 /* AppKit.framework in Frameworks */, + 7E95723B19F197F500F6AE44 /* Foundation.framework in Frameworks */, + 7E95723C19F197F500F6AE44 /* QuartzCore.framework in Frameworks */, + 7E95723D19F197F500F6AE44 /* OpenAL.framework in Frameworks */, + 7E95723E19F197F500F6AE44 /* AVFoundation.framework in Frameworks */, + 7E95723F19F197F500F6AE44 /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7EBF316319E7803F00A7FBEA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7EBF316419E7803F00A7FBEA /* libcocos2d iOS.a in Frameworks */, + 7EBF316519E7803F00A7FBEA /* CoreMotion.framework in Frameworks */, + 7EBF316619E7803F00A7FBEA /* Foundation.framework in Frameworks */, + 7EBF316719E7803F00A7FBEA /* UIKit.framework in Frameworks */, + 7EBF316819E7803F00A7FBEA /* CoreGraphics.framework in Frameworks */, + 7EBF316919E7803F00A7FBEA /* OpenGLES.framework in Frameworks */, + 7EBF316A19E7803F00A7FBEA /* libz.dylib in Frameworks */, + 7EBF316B19E7803F00A7FBEA /* QuartzCore.framework in Frameworks */, + 7EBF316C19E7803F00A7FBEA /* OpenAL.framework in Frameworks */, + 7EBF316D19E7803F00A7FBEA /* AVFoundation.framework in Frameworks */, + 7EBF316E19E7803F00A7FBEA /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 080E96DDFE201D6D7F000001 /* ios */ = { isa = PBXGroup; children = ( + 7EBF318119E8485600A7FBEA /* Chapter 3 iOS-Info.plist */, 5087E77117EB970100C73F5D /* Icons */, 503AE0FA17EB989F00D1A890 /* AppController.h */, 503AE0FB17EB989F00D1A890 /* AppController.mm */, @@ -430,14 +1316,66 @@ 19C28FACFE9D520D11CA2CBB /* Products */ = { isa = PBXGroup; children = ( - 1D6058910D05DD3D006BFB54 /* Programmers Guide iOS.app */, - 5087E76F17EB910900C73F5D /* Programmers Guide Mac.app */, - 50BA59DF19D4992C0070A133 /* Chapter 2 iOS copy.app */, - 50BA59FD19D499360070A133 /* Chapter 2 Mac copy.app */, + 1D6058910D05DD3D006BFB54 /* Chapter 2.app */, + 5087E76F17EB910900C73F5D /* Chapter 2 Mac.app */, + 50BA59DF19D4992C0070A133 /* Chapter 9 iOS.app */, + 50BA59FD19D499360070A133 /* Chapter 9 Mac.app */, + 7EBF317219E7803F00A7FBEA /* Chapter 3.app */, + 7E5368DF19EC20DE005C3C64 /* Chapter 3 Mac.app */, + 7E53692019EC228B005C3C64 /* Chapter 4 iOS.app */, + 7E53694419EC22F4005C3C64 /* Chapter 4 Mac.app */, + 3EE7F8EC19ED607500448914 /* Chapter 12 iOS.app */, + 3EE7F90D19ED607800448914 /* Chapter 12 Mac.app */, + 7E9571D119F1938B00F6AE44 /* Chapter 8 iOS.app */, + 7E9571FF19F196D200F6AE44 /* Chapter 8 Mac.app */, + 7E95722A19F197BA00F6AE44 /* Chapter 13 iOS.app */, + 7E95724319F197F500F6AE44 /* Chapter 13 Mac.app */, + 296358F119F78D4F003732AB /* Chapter 6 iOS.app */, + 2963594219F78F74003732AB /* Chapter 6 Mac.app */, + 7E914A6E1A1BC3F200C6B2D4 /* Chapter 5 iOS.app */, + 7E914A8B1A1BC40200C6B2D4 /* Chapter 5 Mac.app */, ); name = Products; sourceTree = ""; }; + 296358F319F78D6F003732AB /* chapter6 */ = { + isa = PBXGroup; + children = ( + 296358F419F78D81003732AB /* AppDelegate.cpp */, + 296358F519F78D81003732AB /* AppDelegate.h */, + 296358F619F78D81003732AB /* Chapter6.cpp */, + 296358F719F78D81003732AB /* Chapter6.h */, + ); + name = chapter6; + sourceTree = ""; + }; + 296358FC19F78ED4003732AB /* chapter6 */ = { + isa = PBXGroup; + children = ( + 296358FD19F78ED4003732AB /* fonts */, + 2963590219F78ED4003732AB /* leftNormal.png */, + 2963590319F78ED4003732AB /* leftSelected.png */, + 2963590419F78ED4003732AB /* menuItemSpriteNormal.png */, + 2963590519F78ED4003732AB /* menuItemSpriteSelected.png */, + 2963590619F78ED4003732AB /* restartNormal.png */, + 2963590719F78ED4003732AB /* restartSelected.png */, + 2963590819F78ED4003732AB /* rightNormal.png */, + 2963590919F78ED4003732AB /* rightSelected.png */, + ); + path = chapter6; + sourceTree = ""; + }; + 296358FD19F78ED4003732AB /* fonts */ = { + isa = PBXGroup; + children = ( + 296358FE19F78ED4003732AB /* arial.ttf */, + 296358FF19F78ED4003732AB /* bitmapFontTest.fnt */, + 2963590019F78ED4003732AB /* bitmapFontTest.png */, + 2963590119F78ED4003732AB /* labelatlasimg.png */, + ); + path = fonts; + sourceTree = ""; + }; 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { isa = PBXGroup; children = ( @@ -448,8 +1386,6 @@ 080E96DDFE201D6D7F000001 /* ios */, 503AE10617EB990700D1A890 /* mac */, 19C28FACFE9D520D11CA2CBB /* Products */, - 50BA59E019D4992C0070A133 /* Chapter 2 iOS copy-Info.plist */, - 50BA59FE19D499360070A133 /* Chapter 2 Mac copy-Info.plist */, ); name = CustomTemplate; sourceTree = ""; @@ -476,6 +1412,17 @@ name = Frameworks; sourceTree = ""; }; + 3EE7F90F19ED60DF00448914 /* chapter12 */ = { + isa = PBXGroup; + children = ( + 3EE7F91019ED60DF00448914 /* AppDelegate.cpp */, + 3EE7F91119ED60DF00448914 /* AppDelegate.h */, + 3EE7F91219ED60DF00448914 /* Chapter12.cpp */, + 3EE7F91319ED60DF00448914 /* Chapter12.h */, + ); + path = chapter12; + sourceTree = ""; + }; 503AE0F517EB97AB00D1A890 /* Icons */ = { isa = PBXGroup; children = ( @@ -534,7 +1481,14 @@ isa = PBXGroup; children = ( 50BA599919D493310070A133 /* chapter2 */, - 50BA59FF19D49A2F0070A133 /* chapter10 */, + 7EBF317419E7807500A7FBEA /* chapter3 */, + 7E53689C19EC20C8005C3C64 /* chapter4 */, + 7E914A8D1A1BC8F500C6B2D4 /* chapter5 */, + 296358F319F78D6F003732AB /* chapter6 */, + 7E95720119F1972600F6AE44 /* chapter8 */, + 7E53686A19EAD87E005C3C64 /* chapter9 */, + 3EE7F90F19ED60DF00448914 /* chapter12 */, + 7E95719D19F1884800F6AE44 /* chapter13 */, ); name = src; path = ../src; @@ -556,99 +1510,203 @@ 50BA59A419D498F00070A133 /* chapter2 */ = { isa = PBXGroup; children = ( - 7E4ED39E19DB4D78003A49C2 /* clouds_1.png */, 7E1526AE19D4DE890013F222 /* Blue_Front1.png */, - 7E1526AF19D4DE890013F222 /* HelloWorld.png */, 7E1526B019D4DE890013F222 /* LightBlue_Front1.png */, 7E1526B119D4DE890013F222 /* White_Front1.png */, 7E1526B219D4DE890013F222 /* ZigzagForest_Square.png */, 7E1526B319D4DE890013F222 /* ZigzagGrass_Mud_Round.png */, - 50BA59A719D498F00070A133 /* fonts */, ); path = chapter2; sourceTree = ""; }; - 50BA59A719D498F00070A133 /* fonts */ = { + 50C48A8B19D48B48008185B1 /* res */ = { + isa = PBXGroup; + children = ( + 296358FC19F78ED4003732AB /* chapter6 */, + 7EC0CFC819ECD2FD00C41BDA /* dot.png */, + 50BA59A419D498F00070A133 /* chapter2 */, + 7E53689719EB4016005C3C64 /* chapter3 */, + 7E35328F19F06EB40080126B /* chapter4 */, + 7E1526C019D4E0020013F222 /* Marker Felt.ttf */, + 7E5367D919EAD7DC005C3C64 /* chapter9 */, + 3EE7F91819ED60F200448914 /* chapter12 */, + 7E95724D19F1991E00F6AE44 /* chapter13 */, + ); + name = res; + path = ../res; + sourceTree = ""; + }; + 7E35328F19F06EB40080126B /* chapter4 */ = { isa = PBXGroup; children = ( - 50BA59A819D498F00070A133 /* Marker Felt.ttf */, + 7E35329019F06ECB0080126B /* Blue_Back1.png */, + 7E35329119F06ECB0080126B /* Blue_Back2.png */, + 7E35329219F06ECB0080126B /* Blue_Back3.png */, + 7E35329319F06ECB0080126B /* Blue_Front1.png */, + 7E35329419F06ECB0080126B /* Blue_Front2.png */, + 7E35329519F06ECB0080126B /* Blue_Front3.png */, + 7E35329619F06ECB0080126B /* Blue_Left1.png */, + 7E35329719F06ECB0080126B /* Blue_Left2.png */, + 7E35329819F06ECB0080126B /* Blue_Left3.png */, + 7E35329919F06ECB0080126B /* Blue_Right1.png */, + 7E35329A19F06ECB0080126B /* Blue_Right2.png */, + 7E35329B19F06ECB0080126B /* Blue_Right3.png */, ); - path = fonts; + name = chapter4; sourceTree = ""; }; - 50BA59FF19D49A2F0070A133 /* chapter10 */ = { + 7E5367D919EAD7DC005C3C64 /* chapter9 */ = { isa = PBXGroup; children = ( - 5E453FA219E6309600AB3A5D /* Chapter10_4.cpp */, - 5E453FA319E6309600AB3A5D /* Chapter10_4.h */, - 5EAA122B19E7E69600B5D2BA /* Chapter10_6.cpp */, - 5EAA122C19E7E69600B5D2BA /* Chapter10_6.h */, - 5E5874DB19E8DCB0009744B7 /* Chapter10_7.cpp */, - 5E5874DC19E8DCB0009744B7 /* Chapter10_7.h */, - 5EAA122319E790B700B5D2BA /* Chapter10_5.cpp */, - 5EAA122719E7D1E400B5D2BA /* DrawNode3D.cpp */, - 5EAA122819E7D1E400B5D2BA /* DrawNode3D.h */, - 5EAA122419E790B700B5D2BA /* Chapter10_5.h */, - 5E453F7419E62AD000AB3A5D /* Chapter10_3.cpp */, - 5E453F7519E62AD000AB3A5D /* Chapter10_3.h */, - 5E453F6A19E5423D00AB3A5D /* Chapter10_2.cpp */, - 5E453F6B19E5423D00AB3A5D /* Chapter10_2.h */, - 5E453F5C19E5178500AB3A5D /* Chapter10_1.cpp */, - 5E453F5D19E5178500AB3A5D /* Chapter10_1.h */, - 50BA5A0019D49A2F0070A133 /* AppDelegate.cpp */, - 50BA5A0119D49A2F0070A133 /* AppDelegate.h */, - 50BA5A0219D49A2F0070A133 /* Chapter10.cpp */, - 50BA5A0319D49A2F0070A133 /* Chapter10.h */, - ); - path = chapter10; + 5E38D2C819F0F3FF0099B433 /* sphere.c3b */, + 5E38D2C919F0F3FF0099B433 /* spheretex.png */, + 7E5367DA19EAD7F2005C3C64 /* arx.png */, + 7E5367DB19EAD7F2005C3C64 /* axe.c3b */, + 5E4C83ED1A3EC4F900F65FA9 /* planetex.png */, + 7E5367DC19EAD7F2005C3C64 /* Blue_Front1.png */, + 7E5367DD19EAD7F2005C3C64 /* body.png */, + 7E5367DE19EAD7F2005C3C64 /* boss.c3b */, + 7E5367DF19EAD7F2005C3C64 /* boss.png */, + 7E5367E019EAD7F2005C3C64 /* CloseNormal.png */, + 7E5367E119EAD7F2005C3C64 /* CloseSelected.png */, + 7E5367E219EAD7F2005C3C64 /* fonts */, + 7E5367E419EAD7F2005C3C64 /* Girl_Face.png */, + 7E5367E519EAD7F2005C3C64 /* Girl_Glasses01.png */, + 7E5367E619EAD7F2005C3C64 /* Girl_Hair01.png */, + 5E4C83EA1A3EC4DA00F65FA9 /* plane.obj */, + 7E5367E719EAD7F2005C3C64 /* Girl_Hair02.png */, + 7E5367E819EAD7F2005C3C64 /* Girl_Hand.png */, + 7E5367E919EAD7F2005C3C64 /* Girl_LowerBody01.png */, + 7E5367EA19EAD7F2005C3C64 /* Girl_LowerBody02.png */, + 7E5367EB19EAD7F2005C3C64 /* Girl_Shoes01.png */, + 7E5367EC19EAD7F2005C3C64 /* Girl_Shoes02.png */, + 7E5367ED19EAD7F2005C3C64 /* Girl_UpperBody01.png */, + 7E5367EE19EAD7F2005C3C64 /* Girl_UpperBody02.png */, + 7E5367EF19EAD7F2005C3C64 /* girl.c3b */, + 7E5367F019EAD7F2005C3C64 /* HelloWorld.png */, + 7E5367F119EAD7F2005C3C64 /* monguger.tga */, + 7E5367F219EAD7F2005C3C64 /* orc.c3b */, + 7E5367F319EAD7F2005C3C64 /* ReskinGirl.c3b */, + 7E5367F419EAD7F2005C3C64 /* tortoise.c3b */, + 7E5367F519EAD7F2005C3C64 /* tortoise.png */, + 7E5367F619EAD7F2005C3C64 /* Xie_01.png */, + 7E5367F719EAD7F2005C3C64 /* zhujue_jian.png */, + 7E5367F819EAD7F2005C3C64 /* zhujue.c3b */, + 7E5367F919EAD7F2005C3C64 /* zhujue.c3t */, + 7E5367FA19EAD7F2005C3C64 /* zhujue.FBX */, + 7E5367FB19EAD7F2005C3C64 /* zhujue.png */, + ); + name = chapter9; sourceTree = ""; }; - 50BA5A0819D49A3F0070A133 /* chapter10 */ = { + 7E5367E219EAD7F2005C3C64 /* fonts */ = { isa = PBXGroup; children = ( - 5E453F7E19E62EB700AB3A5D /* Girl_Face.png */, - 5E453F7F19E62EB700AB3A5D /* Girl_Glasses01.png */, - 5E453F8019E62EB700AB3A5D /* Girl_Hair01.png */, - 5E453F8119E62EB700AB3A5D /* Girl_Hair02.png */, - 5E453F8219E62EB700AB3A5D /* Girl_Hand.png */, - 5E453F8319E62EB700AB3A5D /* Girl_LowerBody01.png */, - 5E453F8419E62EB700AB3A5D /* Girl_LowerBody02.png */, - 5E453F8519E62EB700AB3A5D /* Girl_Shoes01.png */, - 5E453F8619E62EB700AB3A5D /* Girl_Shoes02.png */, - 5E453F8719E62EB700AB3A5D /* Girl_UpperBody01.png */, - 5E453F8819E62EB700AB3A5D /* Girl_UpperBody02.png */, - 5E453F8919E62EB700AB3A5D /* ReskinGirl.c3b */, - 5E453F6E19E5452600AB3A5D /* monguger.tga */, - 5E453F7819E62CAA00AB3A5D /* arx.png */, - 5E453F7919E62CAA00AB3A5D /* axe.c3b */, - 5E453F6F19E5452600AB3A5D /* orc.c3b */, - 5E453F6219E5359600AB3A5D /* boss.c3b */, - 5E453F6319E5359600AB3A5D /* boss.png */, - 50BA5A0919D49A3F0070A133 /* CloseNormal.png */, - 50BA5A0A19D49A3F0070A133 /* CloseSelected.png */, - 50BA5A0B19D49A3F0070A133 /* fonts */, - 50BA5A0D19D49A3F0070A133 /* HelloWorld.png */, - ); - path = chapter10; + 7E5367E319EAD7F2005C3C64 /* Marker Felt.ttf */, + ); + name = fonts; + path = chapter9/fonts; sourceTree = ""; }; - 50BA5A0B19D49A3F0070A133 /* fonts */ = { + 7E53686A19EAD87E005C3C64 /* chapter9 */ = { isa = PBXGroup; children = ( - 50BA5A0C19D49A3F0070A133 /* Marker Felt.ttf */, + 7E53686B19EAD894005C3C64 /* AppDelegate.cpp */, + 7E53686C19EAD894005C3C64 /* AppDelegate.h */, + 7E53687D19EAD894005C3C64 /* Chapter9.cpp */, + 7E53687E19EAD894005C3C64 /* Chapter9.h */, + 7E53686D19EAD894005C3C64 /* Chapter9_1.cpp */, + 7E53686E19EAD894005C3C64 /* Chapter9_1.h */, + 7E53686F19EAD894005C3C64 /* Chapter9_2.cpp */, + 7E53687019EAD894005C3C64 /* Chapter9_2.h */, + 7E53687119EAD894005C3C64 /* Chapter9_3.cpp */, + 7E53687219EAD894005C3C64 /* Chapter9_3.h */, + 7E53687319EAD894005C3C64 /* Chapter9_4.cpp */, + 7E53687419EAD894005C3C64 /* Chapter9_4.h */, + 7E53687519EAD894005C3C64 /* Chapter9_5.cpp */, + 7E53687619EAD894005C3C64 /* Chapter9_5.h */, + 7E53687719EAD894005C3C64 /* Chapter9_6.cpp */, + 7E53687819EAD894005C3C64 /* Chapter9_6.h */, + 7E53687919EAD894005C3C64 /* Chapter9_7.cpp */, + 7E53687A19EAD894005C3C64 /* Chapter9_7.h */, + 7E53687B19EAD894005C3C64 /* Chapter9_8.cpp */, + 7E53687C19EAD894005C3C64 /* Chapter9_8.h */, + 5E38D2C419F0F3DD0099B433 /* Chapter9_9.cpp */, + 5E38D2C519F0F3DD0099B433 /* Chapter9_9.h */, + 7E53687F19EAD894005C3C64 /* DrawNode3D.cpp */, + 7E53688019EAD894005C3C64 /* DrawNode3D.h */, ); - path = fonts; + name = chapter9; sourceTree = ""; }; - 50C48A8B19D48B48008185B1 /* res */ = { + 7E53689719EB4016005C3C64 /* chapter3 */ = { isa = PBXGroup; children = ( - 7E1526C019D4E0020013F222 /* Marker Felt.ttf */, - 50BA59A419D498F00070A133 /* chapter2 */, - 50BA5A0819D49A3F0070A133 /* chapter10 */, + 50A5DBBD19EC441300082E51 /* sprites.plist */, + 50A5DBBE19EC441300082E51 /* sprites.pvr.ccz */, ); - name = res; - path = ../res; + name = chapter3; + path = ../proj.ios_mac; + sourceTree = ""; + }; + 7E53689C19EC20C8005C3C64 /* chapter4 */ = { + isa = PBXGroup; + children = ( + 7E53694619EC234D005C3C64 /* AppDelegate.cpp */, + 7E53694719EC234D005C3C64 /* AppDelegate.h */, + 7E53694819EC234D005C3C64 /* Chapter4.cpp */, + 7E53694919EC234D005C3C64 /* Chapter4.h */, + ); + name = chapter4; + sourceTree = ""; + }; + 7E914A8D1A1BC8F500C6B2D4 /* chapter5 */ = { + isa = PBXGroup; + children = ( + 7E914A8E1A1BC8F500C6B2D4 /* AppDelegate.cpp */, + 7E914A8F1A1BC8F500C6B2D4 /* AppDelegate.h */, + 7E914A901A1BC8F500C6B2D4 /* Chapter5.cpp */, + 7E914A911A1BC8F500C6B2D4 /* Chapter5.h */, + ); + path = chapter5; + sourceTree = ""; + }; + 7E95719D19F1884800F6AE44 /* chapter13 */ = { + isa = PBXGroup; + children = ( + 7E95724519F1983600F6AE44 /* AppDelegate.cpp */, + 7E95724619F1983600F6AE44 /* AppDelegate.h */, + 7E95724719F1983600F6AE44 /* Chapter13.cpp */, + 7E95724819F1983600F6AE44 /* Chapter13.h */, + ); + name = chapter13; + sourceTree = ""; + }; + 7E95720119F1972600F6AE44 /* chapter8 */ = { + isa = PBXGroup; + children = ( + ); + name = chapter8; + sourceTree = ""; + }; + 7E95724D19F1991E00F6AE44 /* chapter13 */ = { + isa = PBXGroup; + children = ( + 7E95724E19F1993300F6AE44 /* alert.mp3 */, + 7E95724F19F1993300F6AE44 /* music.mp3 */, + ); + name = chapter13; + sourceTree = ""; + }; + 7EBF317419E7807500A7FBEA /* chapter3 */ = { + isa = PBXGroup; + children = ( + 7EBF317519E7807500A7FBEA /* AppDelegate.cpp */, + 7EBF317619E7807500A7FBEA /* AppDelegate.h */, + 7EBF317E19E843F100A7FBEA /* Chapter3.cpp */, + 7EBF317F19E843F100A7FBEA /* Chapter3.h */, + ); + path = chapter3; sourceTree = ""; }; /* End PBXGroup section */ @@ -669,66 +1727,318 @@ ); name = "Chapter 2 iOS"; productName = iphone; - productReference = 1D6058910D05DD3D006BFB54 /* Programmers Guide iOS.app */; + productReference = 1D6058910D05DD3D006BFB54 /* Chapter 2.app */; productType = "com.apple.product-type.application"; }; - 5087E73D17EB910900C73F5D /* Chapter 2 Mac */ = { + 296358B819F78D4F003732AB /* Chapter 6 iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 5087E76C17EB910900C73F5D /* Build configuration list for PBXNativeTarget "Chapter 2 Mac" */; + buildConfigurationList = 296358EE19F78D4F003732AB /* Build configuration list for PBXNativeTarget "Chapter 6 iOS" */; buildPhases = ( - 5087E74817EB910900C73F5D /* Resources */, - 5087E75617EB910900C73F5D /* Sources */, - 5087E75C17EB910900C73F5D /* Frameworks */, + 296358BB19F78D4F003732AB /* Resources */, + 296358DC19F78D4F003732AB /* Sources */, + 296358E219F78D4F003732AB /* Frameworks */, ); buildRules = ( ); dependencies = ( - 50BA599719D492FA0070A133 /* PBXTargetDependency */, + 296358B919F78D4F003732AB /* PBXTargetDependency */, ); - name = "Chapter 2 Mac"; + name = "Chapter 6 iOS"; productName = iphone; - productReference = 5087E76F17EB910900C73F5D /* Programmers Guide Mac.app */; + productReference = 296358F119F78D4F003732AB /* Chapter 6 iOS.app */; productType = "com.apple.product-type.application"; }; - 50BA59B219D4992C0070A133 /* Chapter 10 iOS */ = { + 2963591619F78F74003732AB /* Chapter 6 Mac */ = { isa = PBXNativeTarget; - buildConfigurationList = 50BA59DC19D4992C0070A133 /* Build configuration list for PBXNativeTarget "Chapter 10 iOS" */; + buildConfigurationList = 2963593F19F78F74003732AB /* Build configuration list for PBXNativeTarget "Chapter 6 Mac" */; buildPhases = ( - 50BA59B519D4992C0070A133 /* Resources */, - 50BA59CA19D4992C0070A133 /* Sources */, - 50BA59D019D4992C0070A133 /* Frameworks */, + 2963591919F78F74003732AB /* Resources */, + 2963592E19F78F74003732AB /* Sources */, + 2963593319F78F74003732AB /* Frameworks */, ); buildRules = ( ); dependencies = ( - 50BA59B319D4992C0070A133 /* PBXTargetDependency */, + 2963591719F78F74003732AB /* PBXTargetDependency */, ); - name = "Chapter 10 iOS"; + name = "Chapter 6 Mac"; productName = iphone; - productReference = 50BA59DF19D4992C0070A133 /* Chapter 2 iOS copy.app */; + productReference = 2963594219F78F74003732AB /* Chapter 6 Mac.app */; productType = "com.apple.product-type.application"; }; - 50BA59E119D499360070A133 /* Chapter 10 Mac */ = { + 3EE7F8BC19ED607500448914 /* Chapter 12 iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 50BA59FA19D499360070A133 /* Build configuration list for PBXNativeTarget "Chapter 10 Mac" */; + buildConfigurationList = 3EE7F8E919ED607500448914 /* Build configuration list for PBXNativeTarget "Chapter 12 iOS" */; buildPhases = ( - 50BA59E419D499360070A133 /* Resources */, - 50BA59EA19D499360070A133 /* Sources */, - 50BA59EE19D499360070A133 /* Frameworks */, + 3EE7F8BF19ED607500448914 /* Resources */, + 3EE7F8D619ED607500448914 /* Sources */, + 3EE7F8DD19ED607500448914 /* Frameworks */, ); buildRules = ( ); dependencies = ( - 50BA59E219D499360070A133 /* PBXTargetDependency */, + 3EE7F8BD19ED607500448914 /* PBXTargetDependency */, ); - name = "Chapter 10 Mac"; + name = "Chapter 12 iOS"; productName = iphone; - productReference = 50BA59FD19D499360070A133 /* Chapter 2 Mac copy.app */; + productReference = 3EE7F8EC19ED607500448914 /* Chapter 12 iOS.app */; productType = "com.apple.product-type.application"; }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ + 3EE7F8EE19ED607800448914 /* Chapter 12 Mac */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3EE7F90A19ED607800448914 /* Build configuration list for PBXNativeTarget "Chapter 12 Mac" */; + buildPhases = ( + 3EE7F8F119ED607800448914 /* Resources */, + 3EE7F8F919ED607800448914 /* Sources */, + 3EE7F8FE19ED607800448914 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 3EE7F8EF19ED607800448914 /* PBXTargetDependency */, + ); + name = "Chapter 12 Mac"; + productName = iphone; + productReference = 3EE7F90D19ED607800448914 /* Chapter 12 Mac.app */; + productType = "com.apple.product-type.application"; + }; + 5087E73D17EB910900C73F5D /* Chapter 2 Mac */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5087E76C17EB910900C73F5D /* Build configuration list for PBXNativeTarget "Chapter 2 Mac" */; + buildPhases = ( + 5087E74817EB910900C73F5D /* Resources */, + 5087E75617EB910900C73F5D /* Sources */, + 5087E75C17EB910900C73F5D /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 50BA599719D492FA0070A133 /* PBXTargetDependency */, + ); + name = "Chapter 2 Mac"; + productName = iphone; + productReference = 5087E76F17EB910900C73F5D /* Chapter 2 Mac.app */; + productType = "com.apple.product-type.application"; + }; + 50BA59B219D4992C0070A133 /* Chapter 9 iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 50BA59DC19D4992C0070A133 /* Build configuration list for PBXNativeTarget "Chapter 9 iOS" */; + buildPhases = ( + 50BA59B519D4992C0070A133 /* Resources */, + 50BA59CA19D4992C0070A133 /* Sources */, + 50BA59D019D4992C0070A133 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 50BA59B319D4992C0070A133 /* PBXTargetDependency */, + ); + name = "Chapter 9 iOS"; + productName = iphone; + productReference = 50BA59DF19D4992C0070A133 /* Chapter 9 iOS.app */; + productType = "com.apple.product-type.application"; + }; + 50BA59E119D499360070A133 /* Chapter 9 Mac */ = { + isa = PBXNativeTarget; + buildConfigurationList = 50BA59FA19D499360070A133 /* Build configuration list for PBXNativeTarget "Chapter 9 Mac" */; + buildPhases = ( + 50BA59E419D499360070A133 /* Resources */, + 50BA59EA19D499360070A133 /* Sources */, + 50BA59EE19D499360070A133 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 50BA59E219D499360070A133 /* PBXTargetDependency */, + ); + name = "Chapter 9 Mac"; + productName = iphone; + productReference = 50BA59FD19D499360070A133 /* Chapter 9 Mac.app */; + productType = "com.apple.product-type.application"; + }; + 7E53689D19EC20DE005C3C64 /* Chapter 3 Mac */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7E5368DC19EC20DE005C3C64 /* Build configuration list for PBXNativeTarget "Chapter 3 Mac" */; + buildPhases = ( + 7E5368A019EC20DE005C3C64 /* Resources */, + 7E5368C319EC20DE005C3C64 /* Sources */, + 7E5368D019EC20DE005C3C64 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 7E53689E19EC20DE005C3C64 /* PBXTargetDependency */, + ); + name = "Chapter 3 Mac"; + productName = iphone; + productReference = 7E5368DF19EC20DE005C3C64 /* Chapter 3 Mac.app */; + productType = "com.apple.product-type.application"; + }; + 7E5368EE19EC228B005C3C64 /* Chapter 4 iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7E53691D19EC228B005C3C64 /* Build configuration list for PBXNativeTarget "Chapter 4 iOS" */; + buildPhases = ( + 7E5368F119EC228B005C3C64 /* Resources */, + 7E53690B19EC228B005C3C64 /* Sources */, + 7E53691119EC228B005C3C64 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 7E5368EF19EC228B005C3C64 /* PBXTargetDependency */, + ); + name = "Chapter 4 iOS"; + productName = iphone; + productReference = 7E53692019EC228B005C3C64 /* Chapter 4 iOS.app */; + productType = "com.apple.product-type.application"; + }; + 7E53692219EC22F4005C3C64 /* Chapter 4 Mac */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7E53694119EC22F4005C3C64 /* Build configuration list for PBXNativeTarget "Chapter 4 Mac" */; + buildPhases = ( + 7E53692519EC22F4005C3C64 /* Resources */, + 7E53692F19EC22F4005C3C64 /* Sources */, + 7E53693519EC22F4005C3C64 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 7E53692319EC22F4005C3C64 /* PBXTargetDependency */, + ); + name = "Chapter 4 Mac"; + productName = iphone; + productReference = 7E53694419EC22F4005C3C64 /* Chapter 4 Mac.app */; + productType = "com.apple.product-type.application"; + }; + 7E914A421A1BC3F200C6B2D4 /* Chapter 5 iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7E914A6B1A1BC3F200C6B2D4 /* Build configuration list for PBXNativeTarget "Chapter 5 iOS" */; + buildPhases = ( + 7E914A451A1BC3F200C6B2D4 /* Resources */, + 7E914A591A1BC3F200C6B2D4 /* Sources */, + 7E914A5F1A1BC3F200C6B2D4 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 7E914A431A1BC3F200C6B2D4 /* PBXTargetDependency */, + ); + name = "Chapter 5 iOS"; + productName = iphone; + productReference = 7E914A6E1A1BC3F200C6B2D4 /* Chapter 5 iOS.app */; + productType = "com.apple.product-type.application"; + }; + 7E914A701A1BC40200C6B2D4 /* Chapter 5 Mac */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7E914A881A1BC40200C6B2D4 /* Build configuration list for PBXNativeTarget "Chapter 5 Mac" */; + buildPhases = ( + 7E914A731A1BC40200C6B2D4 /* Resources */, + 7E914A781A1BC40200C6B2D4 /* Sources */, + 7E914A7C1A1BC40200C6B2D4 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 7E914A711A1BC40200C6B2D4 /* PBXTargetDependency */, + ); + name = "Chapter 5 Mac"; + productName = iphone; + productReference = 7E914A8B1A1BC40200C6B2D4 /* Chapter 5 Mac.app */; + productType = "com.apple.product-type.application"; + }; + 7E95719E19F1938B00F6AE44 /* Chapter 8 iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7E9571CE19F1938B00F6AE44 /* Build configuration list for PBXNativeTarget "Chapter 8 iOS" */; + buildPhases = ( + 7E9571A119F1938B00F6AE44 /* Resources */, + 7E9571BC19F1938B00F6AE44 /* Sources */, + 7E9571C219F1938B00F6AE44 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 7E95719F19F1938B00F6AE44 /* PBXTargetDependency */, + ); + name = "Chapter 8 iOS"; + productName = iphone; + productReference = 7E9571D119F1938B00F6AE44 /* Chapter 8 iOS.app */; + productType = "com.apple.product-type.application"; + }; + 7E9571D319F196D200F6AE44 /* Chapter 8 Mac */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7E9571FC19F196D200F6AE44 /* Build configuration list for PBXNativeTarget "Chapter 8 Mac" */; + buildPhases = ( + 7E9571D619F196D200F6AE44 /* Resources */, + 7E9571EB19F196D200F6AE44 /* Sources */, + 7E9571F019F196D200F6AE44 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 7E9571D419F196D200F6AE44 /* PBXTargetDependency */, + ); + name = "Chapter 8 Mac"; + productName = iphone; + productReference = 7E9571FF19F196D200F6AE44 /* Chapter 8 Mac.app */; + productType = "com.apple.product-type.application"; + }; + 7E95720219F197BA00F6AE44 /* Chapter 13 iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7E95722719F197BA00F6AE44 /* Build configuration list for PBXNativeTarget "Chapter 13 iOS" */; + buildPhases = ( + 7E95720519F197BA00F6AE44 /* Resources */, + 7E95721719F197BA00F6AE44 /* Sources */, + 7E95721B19F197BA00F6AE44 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 7E95720319F197BA00F6AE44 /* PBXTargetDependency */, + ); + name = "Chapter 13 iOS"; + productName = iphone; + productReference = 7E95722A19F197BA00F6AE44 /* Chapter 13 iOS.app */; + productType = "com.apple.product-type.application"; + }; + 7E95722C19F197F500F6AE44 /* Chapter 13 Mac */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7E95724019F197F500F6AE44 /* Build configuration list for PBXNativeTarget "Chapter 13 Mac" */; + buildPhases = ( + 7E95722F19F197F500F6AE44 /* Resources */, + 7E95723219F197F500F6AE44 /* Sources */, + 7E95723419F197F500F6AE44 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 7E95722D19F197F500F6AE44 /* PBXTargetDependency */, + ); + name = "Chapter 13 Mac"; + productName = iphone; + productReference = 7E95724319F197F500F6AE44 /* Chapter 13 Mac.app */; + productType = "com.apple.product-type.application"; + }; + 7EBF313F19E7803F00A7FBEA /* Chapter 3 iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7EBF316F19E7803F00A7FBEA /* Build configuration list for PBXNativeTarget "Chapter 3 iOS" */; + buildPhases = ( + 7EBF314219E7803F00A7FBEA /* Resources */, + 7EBF315C19E7803F00A7FBEA /* Sources */, + 7EBF316319E7803F00A7FBEA /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 7EBF314019E7803F00A7FBEA /* PBXTargetDependency */, + ); + name = "Chapter 3 iOS"; + productName = iphone; + productReference = 7EBF317219E7803F00A7FBEA /* Chapter 3.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { @@ -761,8 +2071,22 @@ targets = ( 1D6058900D05DD3D006BFB54 /* Chapter 2 iOS */, 5087E73D17EB910900C73F5D /* Chapter 2 Mac */, - 50BA59B219D4992C0070A133 /* Chapter 10 iOS */, - 50BA59E119D499360070A133 /* Chapter 10 Mac */, + 7EBF313F19E7803F00A7FBEA /* Chapter 3 iOS */, + 7E53689D19EC20DE005C3C64 /* Chapter 3 Mac */, + 7E5368EE19EC228B005C3C64 /* Chapter 4 iOS */, + 7E53692219EC22F4005C3C64 /* Chapter 4 Mac */, + 7E914A421A1BC3F200C6B2D4 /* Chapter 5 iOS */, + 7E914A701A1BC40200C6B2D4 /* Chapter 5 Mac */, + 296358B819F78D4F003732AB /* Chapter 6 iOS */, + 2963591619F78F74003732AB /* Chapter 6 Mac */, + 7E95719E19F1938B00F6AE44 /* Chapter 8 iOS */, + 7E9571D319F196D200F6AE44 /* Chapter 8 Mac */, + 50BA59B219D4992C0070A133 /* Chapter 9 iOS */, + 50BA59E119D499360070A133 /* Chapter 9 Mac */, + 3EE7F8BC19ED607500448914 /* Chapter 12 iOS */, + 3EE7F8EE19ED607800448914 /* Chapter 12 Mac */, + 7E95720219F197BA00F6AE44 /* Chapter 13 iOS */, + 7E95722C19F197F500F6AE44 /* Chapter 13 Mac */, ); }; /* End PBXProject section */ @@ -790,7 +2114,6 @@ buildActionMask = 2147483647; files = ( 5087E78117EB970100C73F5D /* Icon-120.png in Resources */, - 7E1526B619D4DE890013F222 /* HelloWorld.png in Resources */, 7E1526B419D4DE890013F222 /* Blue_Front1.png in Resources */, 5087E78617EB970100C73F5D /* Icon-76.png in Resources */, 5087E77F17EB970100C73F5D /* Default@2x.png in Resources */, @@ -801,13 +2124,11 @@ 7E1526BC19D4DE890013F222 /* ZigzagForest_Square.png in Resources */, 50EF62A317ECD613001EB2F8 /* Icon-50.png in Resources */, 5087E78017EB970100C73F5D /* Icon-114.png in Resources */, - 50BA59AE19D498F00070A133 /* Marker Felt.ttf in Resources */, 50EF62A217ECD613001EB2F8 /* Icon-29.png in Resources */, 50EF629617ECD46A001EB2F8 /* Icon-40.png in Resources */, 5087E78217EB970100C73F5D /* Icon-144.png in Resources */, 7E1526C119D4E0020013F222 /* Marker Felt.ttf in Resources */, 50EF629817ECD46A001EB2F8 /* Icon-80.png in Resources */, - 7E4ED39F19DB4D78003A49C2 /* clouds_1.png in Resources */, 7E1526B819D4DE890013F222 /* LightBlue_Front1.png in Resources */, 7E1526BE19D4DE890013F222 /* ZigzagGrass_Mud_Round.png in Resources */, 5087E78417EB970100C73F5D /* Icon-57.png in Resources */, @@ -817,14 +2138,103 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 296358BB19F78D4F003732AB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2963590B19F78ED4003732AB /* bitmapFontTest.fnt in Resources */, + 296358BC19F78D4F003732AB /* Icon-120.png in Resources */, + 296358BE19F78D4F003732AB /* Icon-76.png in Resources */, + 296358BF19F78D4F003732AB /* Default@2x.png in Resources */, + 296358C019F78D4F003732AB /* Icon-100.png in Resources */, + 296358C319F78D4F003732AB /* Icon-152.png in Resources */, + 296358C519F78D4F003732AB /* Default-568h@2x.png in Resources */, + 296358C619F78D4F003732AB /* Icon-72.png in Resources */, + 296358CB19F78D4F003732AB /* Icon-50.png in Resources */, + 296358CC19F78D4F003732AB /* Marker Felt.ttf in Resources */, + 296358CD19F78D4F003732AB /* Icon-114.png in Resources */, + 2963591519F78ED4003732AB /* rightSelected.png in Resources */, + 296358CE19F78D4F003732AB /* Icon-29.png in Resources */, + 2963591419F78ED4003732AB /* rightNormal.png in Resources */, + 296358CF19F78D4F003732AB /* Icon-40.png in Resources */, + 296358D019F78D4F003732AB /* Icon-144.png in Resources */, + 296358D119F78D4F003732AB /* Icon-80.png in Resources */, + 2963590F19F78ED4003732AB /* leftSelected.png in Resources */, + 2963591319F78ED4003732AB /* restartSelected.png in Resources */, + 2963591019F78ED4003732AB /* menuItemSpriteNormal.png in Resources */, + 296358D519F78D4F003732AB /* Icon-57.png in Resources */, + 2963591119F78ED4003732AB /* menuItemSpriteSelected.png in Resources */, + 2963590A19F78ED4003732AB /* arial.ttf in Resources */, + 2963590D19F78ED4003732AB /* labelatlasimg.png in Resources */, + 2963590C19F78ED4003732AB /* bitmapFontTest.png in Resources */, + 296358D919F78D4F003732AB /* Default.png in Resources */, + 2963590E19F78ED4003732AB /* leftNormal.png in Resources */, + 296358DA19F78D4F003732AB /* Icon-58.png in Resources */, + 2963591219F78ED4003732AB /* restartNormal.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2963591919F78F74003732AB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2963594819F78FC4003732AB /* arial.ttf in Resources */, + 2963594919F78FC4003732AB /* bitmapFontTest.fnt in Resources */, + 2963594A19F78FC4003732AB /* bitmapFontTest.png in Resources */, + 2963594B19F78FC4003732AB /* labelatlasimg.png in Resources */, + 2963594C19F78FC4003732AB /* leftNormal.png in Resources */, + 2963594D19F78FC4003732AB /* leftSelected.png in Resources */, + 2963594E19F78FC4003732AB /* menuItemSpriteNormal.png in Resources */, + 2963594F19F78FC4003732AB /* menuItemSpriteSelected.png in Resources */, + 2963595019F78FC4003732AB /* restartNormal.png in Resources */, + 2963595119F78FC4003732AB /* restartSelected.png in Resources */, + 2963595219F78FC4003732AB /* rightNormal.png in Resources */, + 2963595319F78FC4003732AB /* rightSelected.png in Resources */, + 2963592B19F78F74003732AB /* Icon.icns in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3EE7F8BF19ED607500448914 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3EE7F8C019ED607500448914 /* Icon-120.png in Resources */, + 3EE7F8C219ED607500448914 /* Icon-76.png in Resources */, + 3EE7F8C319ED607500448914 /* Default@2x.png in Resources */, + 3EE7F8C419ED607500448914 /* Icon-100.png in Resources */, + 3EE7F8C519ED607500448914 /* Icon-152.png in Resources */, + 3EE7F8C619ED607500448914 /* Default-568h@2x.png in Resources */, + 3EE7F8C719ED607500448914 /* Icon-72.png in Resources */, + 3EE7F8C919ED607500448914 /* Icon-50.png in Resources */, + 3EE7F8CA19ED607500448914 /* Icon-114.png in Resources */, + 3EE7F91919ED60F200448914 /* chapter12 in Resources */, + 3EE7F8CB19ED607500448914 /* Icon-29.png in Resources */, + 3EE7F8CC19ED607500448914 /* Icon-40.png in Resources */, + 3EE7F8CD19ED607500448914 /* Icon-144.png in Resources */, + 3EE7F8CE19ED607500448914 /* Marker Felt.ttf in Resources */, + 3EE7F8CF19ED607500448914 /* Icon-80.png in Resources */, + 3EE7F8D219ED607500448914 /* Icon-57.png in Resources */, + 3EE7F8D419ED607500448914 /* Default.png in Resources */, + 3EE7F8D519ED607500448914 /* Icon-58.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3EE7F8F119ED607800448914 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3EE7F91A19ED60F200448914 /* chapter12 in Resources */, + 3EE7F8F219ED607800448914 /* Marker Felt.ttf in Resources */, + 3EE7F8F819ED607800448914 /* Icon.icns in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 5087E74817EB910900C73F5D /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 50BA59AF19D498F00070A133 /* Marker Felt.ttf in Resources */, 7E1526C219D4E0020013F222 /* Marker Felt.ttf in Resources */, 7E1526B919D4DE890013F222 /* LightBlue_Front1.png in Resources */, - 7E1526B719D4DE890013F222 /* HelloWorld.png in Resources */, 7E1526BD19D4DE890013F222 /* ZigzagForest_Square.png in Resources */, 7E1526BF19D4DE890013F222 /* ZigzagGrass_Mud_Round.png in Resources */, 7E1526BB19D4DE890013F222 /* White_Front1.png in Resources */, @@ -837,44 +2247,59 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5E453F6619E5359600AB3A5D /* boss.png in Resources */, + 7E53681219EAD7F2005C3C64 /* Girl_Hair01.png in Resources */, + 7E53682619EAD7F2005C3C64 /* HelloWorld.png in Resources */, + 7E53682819EAD7F2005C3C64 /* monguger.tga in Resources */, + 7E53680619EAD7F2005C3C64 /* boss.png in Resources */, 50BA59B619D4992C0070A133 /* Icon-120.png in Resources */, + 7E53680219EAD7F2005C3C64 /* body.png in Resources */, 50BA59B719D4992C0070A133 /* Icon-76.png in Resources */, + 7E53680419EAD7F2005C3C64 /* boss.c3b in Resources */, 50BA59B819D4992C0070A133 /* Default@2x.png in Resources */, - 5E453F6419E5359600AB3A5D /* boss.c3b in Resources */, - 5E453F8C19E62EB700AB3A5D /* Girl_Glasses01.png in Resources */, - 5E453F8A19E62EB700AB3A5D /* Girl_Face.png in Resources */, - 5E453F7019E5452600AB3A5D /* monguger.tga in Resources */, - 5E453F9219E62EB700AB3A5D /* Girl_Hand.png in Resources */, + 5E38D2CA19F0F3FF0099B433 /* sphere.c3b in Resources */, + 7E53683619EAD7F2005C3C64 /* zhujue.c3b in Resources */, + 7E5367FE19EAD7F2005C3C64 /* axe.c3b in Resources */, + 7E53680019EAD7F2005C3C64 /* Blue_Front1.png in Resources */, + 7E5367FC19EAD7F2005C3C64 /* arx.png in Resources */, + 7E53681619EAD7F2005C3C64 /* Girl_Hand.png in Resources */, + 7E53680C19EAD7F2005C3C64 /* Marker Felt.ttf in Resources */, + 7E53681019EAD7F2005C3C64 /* Girl_Glasses01.png in Resources */, + 7E53681A19EAD7F2005C3C64 /* Girl_LowerBody02.png in Resources */, + 7E53680E19EAD7F2005C3C64 /* Girl_Face.png in Resources */, + 5E4C83EE1A3EC4F900F65FA9 /* planetex.png in Resources */, 50BA59B919D4992C0070A133 /* Icon-100.png in Resources */, + 7E53683A19EAD7F2005C3C64 /* zhujue.FBX in Resources */, + 7E53680819EAD7F2005C3C64 /* CloseNormal.png in Resources */, + 7E53680A19EAD7F2005C3C64 /* CloseSelected.png in Resources */, 50BA59BA19D4992C0070A133 /* Icon-152.png in Resources */, - 5E453F9819E62EB700AB3A5D /* Girl_Shoes01.png in Resources */, - 50BA5A1419D49A3F0070A133 /* HelloWorld.png in Resources */, - 5E453F9419E62EB700AB3A5D /* Girl_LowerBody01.png in Resources */, - 5E453F7219E5452600AB3A5D /* orc.c3b in Resources */, - 5E453F7A19E62CAA00AB3A5D /* arx.png in Resources */, - 50BA5A1019D49A3F0070A133 /* CloseSelected.png in Resources */, - 5E453F8E19E62EB700AB3A5D /* Girl_Hair01.png in Resources */, + 7E53681819EAD7F2005C3C64 /* Girl_LowerBody01.png in Resources */, 50BA59BD19D4992C0070A133 /* Default-568h@2x.png in Resources */, - 5E453F9E19E62EB700AB3A5D /* Girl_UpperBody02.png in Resources */, + 7E53683819EAD7F2005C3C64 /* zhujue.c3t in Resources */, + 5E38D2CC19F0F3FF0099B433 /* spheretex.png in Resources */, 50BA59BE19D4992C0070A133 /* Icon-72.png in Resources */, + 7E53681C19EAD7F2005C3C64 /* Girl_Shoes01.png in Resources */, + 5E4C83EB1A3EC4DA00F65FA9 /* plane.obj in Resources */, + 7E53682A19EAD7F2005C3C64 /* orc.c3b in Resources */, + 7E53681419EAD7F2005C3C64 /* Girl_Hair02.png in Resources */, + 7E53681E19EAD7F2005C3C64 /* Girl_Shoes02.png in Resources */, 50BA59BF19D4992C0070A133 /* Icon-50.png in Resources */, + 7E53682019EAD7F2005C3C64 /* Girl_UpperBody01.png in Resources */, + 7E53683419EAD7F2005C3C64 /* zhujue_jian.png in Resources */, 50BA59C019D4992C0070A133 /* Icon-114.png in Resources */, - 5E453F9619E62EB700AB3A5D /* Girl_LowerBody02.png in Resources */, - 5E453F9C19E62EB700AB3A5D /* Girl_UpperBody01.png in Resources */, - 50BA5A1219D49A3F0070A133 /* Marker Felt.ttf in Resources */, - 5E453F7C19E62CAA00AB3A5D /* axe.c3b in Resources */, + 7E53683219EAD7F2005C3C64 /* Xie_01.png in Resources */, 50BA59C219D4992C0070A133 /* Icon-29.png in Resources */, 50BA59C319D4992C0070A133 /* Icon-40.png in Resources */, 50BA59C419D4992C0070A133 /* Icon-144.png in Resources */, 50BA59C519D4992C0070A133 /* Icon-80.png in Resources */, - 5E453F9A19E62EB700AB3A5D /* Girl_Shoes02.png in Resources */, + 7E53682219EAD7F2005C3C64 /* Girl_UpperBody02.png in Resources */, 50BA59C619D4992C0070A133 /* Icon-57.png in Resources */, + 7E53683019EAD7F2005C3C64 /* tortoise.png in Resources */, 50BA59C719D4992C0070A133 /* Default.png in Resources */, - 5E453FA019E62EB700AB3A5D /* ReskinGirl.c3b in Resources */, - 50BA5A0E19D49A3F0070A133 /* CloseNormal.png in Resources */, + 7E53683C19EAD7F2005C3C64 /* zhujue.png in Resources */, + 7E53682419EAD7F2005C3C64 /* girl.c3b in Resources */, + 7E53682C19EAD7F2005C3C64 /* ReskinGirl.c3b in Resources */, 50BA59C919D4992C0070A133 /* Icon-58.png in Resources */, - 5E453F9019E62EB700AB3A5D /* Girl_Hair02.png in Resources */, + 7E53682E19EAD7F2005C3C64 /* tortoise.c3b in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -882,29 +2307,263 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5E453F9519E62EB700AB3A5D /* Girl_LowerBody01.png in Resources */, - 5E453F8F19E62EB700AB3A5D /* Girl_Hair01.png in Resources */, - 50BA5A1519D49A3F0070A133 /* HelloWorld.png in Resources */, - 50BA5A1319D49A3F0070A133 /* Marker Felt.ttf in Resources */, - 5E453F9B19E62EB700AB3A5D /* Girl_Shoes02.png in Resources */, - 5E453F9D19E62EB700AB3A5D /* Girl_UpperBody01.png in Resources */, - 5E453F7119E5452600AB3A5D /* monguger.tga in Resources */, - 5E453F8D19E62EB700AB3A5D /* Girl_Glasses01.png in Resources */, - 5E453F7319E5452600AB3A5D /* orc.c3b in Resources */, + 5E38D2CD19F0F3FF0099B433 /* spheretex.png in Resources */, + 7E53683519EAD7F2005C3C64 /* zhujue_jian.png in Resources */, + 7E53682B19EAD7F2005C3C64 /* orc.c3b in Resources */, + 7E53681B19EAD7F2005C3C64 /* Girl_LowerBody02.png in Resources */, + 7E53681D19EAD7F2005C3C64 /* Girl_Shoes01.png in Resources */, + 7E53683B19EAD7F2005C3C64 /* zhujue.FBX in Resources */, + 5E4C83EC1A3EC4DA00F65FA9 /* plane.obj in Resources */, + 7E53682919EAD7F2005C3C64 /* monguger.tga in Resources */, + 7E53682319EAD7F2005C3C64 /* Girl_UpperBody02.png in Resources */, + 7E5367FF19EAD7F2005C3C64 /* axe.c3b in Resources */, + 7E53682D19EAD7F2005C3C64 /* ReskinGirl.c3b in Resources */, + 5E38D2CB19F0F3FF0099B433 /* sphere.c3b in Resources */, + 7E53681119EAD7F2005C3C64 /* Girl_Glasses01.png in Resources */, + 7E53683D19EAD7F2005C3C64 /* zhujue.png in Resources */, + 5E4C83EF1A3EC4F900F65FA9 /* planetex.png in Resources */, + 7E53680919EAD7F2005C3C64 /* CloseNormal.png in Resources */, + 7E53681319EAD7F2005C3C64 /* Girl_Hair01.png in Resources */, + 7E53680319EAD7F2005C3C64 /* body.png in Resources */, 50BA59E719D499360070A133 /* Icon.icns in Resources */, - 5E453F7B19E62CAA00AB3A5D /* arx.png in Resources */, - 5E453FA119E62EB700AB3A5D /* ReskinGirl.c3b in Resources */, - 5E453F9319E62EB700AB3A5D /* Girl_Hand.png in Resources */, - 5E453F6519E5359600AB3A5D /* boss.c3b in Resources */, - 50BA5A0F19D49A3F0070A133 /* CloseNormal.png in Resources */, - 5E453F9F19E62EB700AB3A5D /* Girl_UpperBody02.png in Resources */, - 5E453F8B19E62EB700AB3A5D /* Girl_Face.png in Resources */, - 5E453F7D19E62CAA00AB3A5D /* axe.c3b in Resources */, - 50BA5A1119D49A3F0070A133 /* CloseSelected.png in Resources */, - 5E453F9719E62EB700AB3A5D /* Girl_LowerBody02.png in Resources */, - 5E453F6719E5359600AB3A5D /* boss.png in Resources */, - 5E453F9919E62EB700AB3A5D /* Girl_Shoes01.png in Resources */, - 5E453F9119E62EB700AB3A5D /* Girl_Hair02.png in Resources */, + 7E53682719EAD7F2005C3C64 /* HelloWorld.png in Resources */, + 7E53680D19EAD7F2005C3C64 /* Marker Felt.ttf in Resources */, + 7E53683719EAD7F2005C3C64 /* zhujue.c3b in Resources */, + 7E53682F19EAD7F2005C3C64 /* tortoise.c3b in Resources */, + 7E53680519EAD7F2005C3C64 /* boss.c3b in Resources */, + 7E53680B19EAD7F2005C3C64 /* CloseSelected.png in Resources */, + 7E53682119EAD7F2005C3C64 /* Girl_UpperBody01.png in Resources */, + 7E5367FD19EAD7F2005C3C64 /* arx.png in Resources */, + 7E53682519EAD7F2005C3C64 /* girl.c3b in Resources */, + 7E53681719EAD7F2005C3C64 /* Girl_Hand.png in Resources */, + 7E53683319EAD7F2005C3C64 /* Xie_01.png in Resources */, + 7E53680119EAD7F2005C3C64 /* Blue_Front1.png in Resources */, + 7E53681919EAD7F2005C3C64 /* Girl_LowerBody01.png in Resources */, + 7E53681519EAD7F2005C3C64 /* Girl_Hair02.png in Resources */, + 7E53683119EAD7F2005C3C64 /* tortoise.png in Resources */, + 7E53680719EAD7F2005C3C64 /* boss.png in Resources */, + 7E53683919EAD7F2005C3C64 /* zhujue.c3t in Resources */, + 7E53681F19EAD7F2005C3C64 /* Girl_Shoes02.png in Resources */, + 7E53680F19EAD7F2005C3C64 /* Girl_Face.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E5368A019EC20DE005C3C64 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E5368E519EC2159005C3C64 /* Blue_Front1.png in Resources */, + 50A5DBC019EC441300082E51 /* sprites.plist in Resources */, + 7E5368E619EC2159005C3C64 /* LightBlue_Front1.png in Resources */, + 7EC0CFCC19ECD4BE00C41BDA /* dot.png in Resources */, + 7E5368E719EC2159005C3C64 /* White_Front1.png in Resources */, + 7E5368E819EC2159005C3C64 /* ZigzagForest_Square.png in Resources */, + 7E5368E919EC2159005C3C64 /* ZigzagGrass_Mud_Round.png in Resources */, + 7E5368E219EC213B005C3C64 /* Icon.icns in Resources */, + 7E5368E119EC2128005C3C64 /* Marker Felt.ttf in Resources */, + 50A5DBC219EC441300082E51 /* sprites.pvr.ccz in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E5368F119EC228B005C3C64 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E5368F219EC228B005C3C64 /* Icon-120.png in Resources */, + 7E5368F419EC228B005C3C64 /* Blue_Front1.png in Resources */, + 7E5368F519EC228B005C3C64 /* Icon-76.png in Resources */, + 7E5368F719EC228B005C3C64 /* Default@2x.png in Resources */, + 7E5368F819EC228B005C3C64 /* Icon-100.png in Resources */, + 7E3532A619F06ECB0080126B /* Blue_Front3.png in Resources */, + 7E35329C19F06ECB0080126B /* Blue_Back1.png in Resources */, + 7E5368F919EC228B005C3C64 /* Icon-152.png in Resources */, + 7E3532A019F06ECB0080126B /* Blue_Back3.png in Resources */, + 7E5368FA19EC228B005C3C64 /* Default-568h@2x.png in Resources */, + 7E5368FB19EC228B005C3C64 /* Icon-72.png in Resources */, + 7EC0CFCD19ECE10A00C41BDA /* dot.png in Resources */, + 7E5368FC19EC228B005C3C64 /* ZigzagForest_Square.png in Resources */, + 7E3532AA19F06ECB0080126B /* Blue_Left2.png in Resources */, + 7E3532B019F06ECB0080126B /* Blue_Right2.png in Resources */, + 7E5368FD19EC228B005C3C64 /* Icon-50.png in Resources */, + 7E5368FE19EC228B005C3C64 /* Marker Felt.ttf in Resources */, + 7E5368FF19EC228B005C3C64 /* Icon-114.png in Resources */, + 7E53690019EC228B005C3C64 /* Icon-29.png in Resources */, + 7E53690119EC228B005C3C64 /* Icon-40.png in Resources */, + 7E53690219EC228B005C3C64 /* Icon-144.png in Resources */, + 7E53690319EC228B005C3C64 /* Icon-80.png in Resources */, + 7E3532A219F06ECB0080126B /* Blue_Front1.png in Resources */, + 7E3532A419F06ECB0080126B /* Blue_Front2.png in Resources */, + 7E3532A819F06ECB0080126B /* Blue_Left1.png in Resources */, + 7E53690619EC228B005C3C64 /* Icon-57.png in Resources */, + 7E3532B219F06ECB0080126B /* Blue_Right3.png in Resources */, + 7E35329E19F06ECB0080126B /* Blue_Back2.png in Resources */, + 7E3532AE19F06ECB0080126B /* Blue_Right1.png in Resources */, + 7E53690919EC228B005C3C64 /* Default.png in Resources */, + 7E53690A19EC228B005C3C64 /* Icon-58.png in Resources */, + 7E3532AC19F06ECB0080126B /* Blue_Left3.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E53692519EC22F4005C3C64 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E53692819EC22F4005C3C64 /* Blue_Front1.png in Resources */, + 7EC0CFCE19ECE10B00C41BDA /* dot.png in Resources */, + 7E35329D19F06ECB0080126B /* Blue_Back1.png in Resources */, + 7E53692919EC22F4005C3C64 /* LightBlue_Front1.png in Resources */, + 7E3532B119F06ECB0080126B /* Blue_Right2.png in Resources */, + 7E3532A519F06ECB0080126B /* Blue_Front2.png in Resources */, + 7E3532AB19F06ECB0080126B /* Blue_Left2.png in Resources */, + 7E3532A119F06ECB0080126B /* Blue_Back3.png in Resources */, + 7E53692A19EC22F4005C3C64 /* White_Front1.png in Resources */, + 7E3532AF19F06ECB0080126B /* Blue_Right1.png in Resources */, + 7E3532AD19F06ECB0080126B /* Blue_Left3.png in Resources */, + 7E35329F19F06ECB0080126B /* Blue_Back2.png in Resources */, + 7E3532A319F06ECB0080126B /* Blue_Front1.png in Resources */, + 7E53692B19EC22F4005C3C64 /* ZigzagForest_Square.png in Resources */, + 7E3532B319F06ECB0080126B /* Blue_Right3.png in Resources */, + 7E3532A919F06ECB0080126B /* Blue_Left1.png in Resources */, + 7E53692C19EC22F4005C3C64 /* ZigzagGrass_Mud_Round.png in Resources */, + 7E53692D19EC22F4005C3C64 /* Icon.icns in Resources */, + 7E53692E19EC22F4005C3C64 /* Marker Felt.ttf in Resources */, + 7E3532A719F06ECB0080126B /* Blue_Front3.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E914A451A1BC3F200C6B2D4 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E914A461A1BC3F200C6B2D4 /* Icon-120.png in Resources */, + 7E914A471A1BC3F200C6B2D4 /* Icon-76.png in Resources */, + 7E914A481A1BC3F200C6B2D4 /* Default@2x.png in Resources */, + 7E914A4A1A1BC3F200C6B2D4 /* Icon-100.png in Resources */, + 7E914A4B1A1BC3F200C6B2D4 /* Icon-152.png in Resources */, + 7E914A4C1A1BC3F200C6B2D4 /* Default-568h@2x.png in Resources */, + 7E914A4D1A1BC3F200C6B2D4 /* Icon-72.png in Resources */, + 7E914A4E1A1BC3F200C6B2D4 /* Icon-50.png in Resources */, + 7E914A4F1A1BC3F200C6B2D4 /* Marker Felt.ttf in Resources */, + 7E914A501A1BC3F200C6B2D4 /* Icon-114.png in Resources */, + 7E914A511A1BC3F200C6B2D4 /* Icon-29.png in Resources */, + 7E914A531A1BC3F200C6B2D4 /* Icon-40.png in Resources */, + 7E914A541A1BC3F200C6B2D4 /* Icon-144.png in Resources */, + 7E914A551A1BC3F200C6B2D4 /* Icon-80.png in Resources */, + 7E914A561A1BC3F200C6B2D4 /* Icon-57.png in Resources */, + 7E914A571A1BC3F200C6B2D4 /* Default.png in Resources */, + 7E914A581A1BC3F200C6B2D4 /* Icon-58.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E914A731A1BC40200C6B2D4 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E914A751A1BC40200C6B2D4 /* Icon.icns in Resources */, + 7E914A761A1BC40200C6B2D4 /* Marker Felt.ttf in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E9571A119F1938B00F6AE44 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E9571A219F1938B00F6AE44 /* Icon-120.png in Resources */, + 7E9571A519F1938B00F6AE44 /* Icon-76.png in Resources */, + 7E9571A719F1938B00F6AE44 /* Default@2x.png in Resources */, + 7E9571A819F1938B00F6AE44 /* Icon-100.png in Resources */, + 7E9571A919F1938B00F6AE44 /* Icon-152.png in Resources */, + 7E9571AA19F1938B00F6AE44 /* Default-568h@2x.png in Resources */, + 7E9571AB19F1938B00F6AE44 /* Icon-72.png in Resources */, + 7E9571AD19F1938B00F6AE44 /* Icon-50.png in Resources */, + 7E9571AE19F1938B00F6AE44 /* Marker Felt.ttf in Resources */, + 7E9571AF19F1938B00F6AE44 /* Icon-114.png in Resources */, + 7E9571B019F1938B00F6AE44 /* Icon-29.png in Resources */, + 7E9571B119F1938B00F6AE44 /* Icon-40.png in Resources */, + 7E9571B219F1938B00F6AE44 /* Icon-144.png in Resources */, + 7E9571B319F1938B00F6AE44 /* Icon-80.png in Resources */, + 7E9571B619F1938B00F6AE44 /* Icon-57.png in Resources */, + 7E9571BA19F1938B00F6AE44 /* Default.png in Resources */, + 7E9571BB19F1938B00F6AE44 /* Icon-58.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E9571D619F196D200F6AE44 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E9571E819F196D200F6AE44 /* Icon.icns in Resources */, + 7E9571E919F196D200F6AE44 /* Marker Felt.ttf in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E95720519F197BA00F6AE44 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E95720619F197BA00F6AE44 /* Icon-120.png in Resources */, + 7E95720719F197BA00F6AE44 /* Icon-76.png in Resources */, + 7E95720819F197BA00F6AE44 /* Default@2x.png in Resources */, + 7E95725219F1993300F6AE44 /* music.mp3 in Resources */, + 7E95720919F197BA00F6AE44 /* Icon-100.png in Resources */, + 7E95720A19F197BA00F6AE44 /* Icon-152.png in Resources */, + 7E95720B19F197BA00F6AE44 /* Default-568h@2x.png in Resources */, + 7E95720C19F197BA00F6AE44 /* Icon-72.png in Resources */, + 7E95720D19F197BA00F6AE44 /* Icon-50.png in Resources */, + 7E95720E19F197BA00F6AE44 /* Marker Felt.ttf in Resources */, + 7E95720F19F197BA00F6AE44 /* Icon-114.png in Resources */, + 7E95721019F197BA00F6AE44 /* Icon-29.png in Resources */, + 7E95725019F1993300F6AE44 /* alert.mp3 in Resources */, + 7E95721119F197BA00F6AE44 /* Icon-40.png in Resources */, + 7E95721219F197BA00F6AE44 /* Icon-144.png in Resources */, + 7E95721319F197BA00F6AE44 /* Icon-80.png in Resources */, + 7E95721419F197BA00F6AE44 /* Icon-57.png in Resources */, + 7E95721519F197BA00F6AE44 /* Default.png in Resources */, + 7E95721619F197BA00F6AE44 /* Icon-58.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E95722F19F197F500F6AE44 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E95725319F1993300F6AE44 /* music.mp3 in Resources */, + 7E95723019F197F500F6AE44 /* Icon.icns in Resources */, + 7E95723119F197F500F6AE44 /* Marker Felt.ttf in Resources */, + 7E95725119F1993300F6AE44 /* alert.mp3 in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7EBF314219E7803F00A7FBEA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7EBF314319E7803F00A7FBEA /* Icon-120.png in Resources */, + 50A5DBBF19EC441300082E51 /* sprites.plist in Resources */, + 7EBF314519E7803F00A7FBEA /* Blue_Front1.png in Resources */, + 7EBF314619E7803F00A7FBEA /* Icon-76.png in Resources */, + 7EBF318219E8485600A7FBEA /* Chapter 3 iOS-Info.plist in Resources */, + 7EBF314719E7803F00A7FBEA /* Default@2x.png in Resources */, + 7EBF314819E7803F00A7FBEA /* Icon-100.png in Resources */, + 7EBF314919E7803F00A7FBEA /* Icon-152.png in Resources */, + 7EBF314A19E7803F00A7FBEA /* Default-568h@2x.png in Resources */, + 7EBF314B19E7803F00A7FBEA /* Icon-72.png in Resources */, + 7EBF314C19E7803F00A7FBEA /* ZigzagForest_Square.png in Resources */, + 7EBF314D19E7803F00A7FBEA /* Icon-50.png in Resources */, + 7EBF318319E84A1F00A7FBEA /* Marker Felt.ttf in Resources */, + 7EBF314E19E7803F00A7FBEA /* Icon-114.png in Resources */, + 7EBF315019E7803F00A7FBEA /* Icon-29.png in Resources */, + 7EBF315119E7803F00A7FBEA /* Icon-40.png in Resources */, + 7EBF315219E7803F00A7FBEA /* Icon-144.png in Resources */, + 7EBF315419E7803F00A7FBEA /* Icon-80.png in Resources */, + 7EBF315619E7803F00A7FBEA /* LightBlue_Front1.png in Resources */, + 7EBF315719E7803F00A7FBEA /* ZigzagGrass_Mud_Round.png in Resources */, + 7EBF315819E7803F00A7FBEA /* Icon-57.png in Resources */, + 7EC0CFCB19ECD4BD00C41BDA /* dot.png in Resources */, + 50A5DBC119EC441300082E51 /* sprites.pvr.ccz in Resources */, + 7EBF315919E7803F00A7FBEA /* White_Front1.png in Resources */, + 7EBF315A19E7803F00A7FBEA /* Default.png in Resources */, + 7EBF315B19E7803F00A7FBEA /* Icon-58.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -924,82 +2583,1089 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 5087E75617EB910900C73F5D /* Sources */ = { + 296358DC19F78D4F003732AB /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 50BA599F19D493310070A133 /* AppDelegate.cpp in Sources */, - 7E273C8119D9CE460029CCC0 /* Chapter2Level1.cpp in Sources */, - 503AE10517EB98FF00D1A890 /* main.cpp in Sources */, - 50BA59A119D493310070A133 /* Chapter2.cpp in Sources */, + 296358DE19F78D4F003732AB /* AppController.mm in Sources */, + 296358F819F78D81003732AB /* AppDelegate.cpp in Sources */, + 296358F919F78D81003732AB /* Chapter6.cpp in Sources */, + 296358E019F78D4F003732AB /* RootViewController.mm in Sources */, + 296358E119F78D4F003732AB /* main.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 50BA59CA19D4992C0070A133 /* Sources */ = { + 2963592E19F78F74003732AB /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 50BA5A0419D49A2F0070A133 /* AppDelegate.cpp in Sources */, - 5E453F6C19E5423D00AB3A5D /* Chapter10_2.cpp in Sources */, - 5EAA122519E790B700B5D2BA /* Chapter10_5.cpp in Sources */, - 5E453F7619E62AD000AB3A5D /* Chapter10_3.cpp in Sources */, - 5E5874DD19E8DCB0009744B7 /* Chapter10_7.cpp in Sources */, - 50BA5A0619D49A2F0070A133 /* Chapter10.cpp in Sources */, - 50BA59CD19D4992C0070A133 /* AppController.mm in Sources */, - 5E453F5E19E5178500AB3A5D /* Chapter10_1.cpp in Sources */, - 5EAA122919E7D1E400B5D2BA /* DrawNode3D.cpp in Sources */, - 5E453FA419E6309600AB3A5D /* Chapter10_4.cpp in Sources */, - 5EAA122D19E7E69600B5D2BA /* Chapter10_6.cpp in Sources */, - 50BA59CE19D4992C0070A133 /* RootViewController.mm in Sources */, - 50BA59CF19D4992C0070A133 /* main.m in Sources */, + 2963594419F78F9D003732AB /* AppDelegate.cpp in Sources */, + 2963594519F78F9D003732AB /* AppDelegate.h in Sources */, + 2963594619F78F9D003732AB /* Chapter6.cpp in Sources */, + 2963594719F78F9D003732AB /* Chapter6.h in Sources */, + 2963593219F78F74003732AB /* main.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 50BA59EA19D499360070A133 /* Sources */ = { + 3EE7F8D619ED607500448914 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5E5874DE19E8DCB0009744B7 /* Chapter10_7.cpp in Sources */, - 5EAA122A19E7D1E400B5D2BA /* DrawNode3D.cpp in Sources */, - 5EAA122E19E7E69600B5D2BA /* Chapter10_6.cpp in Sources */, - 5E453F7719E62AD000AB3A5D /* Chapter10_3.cpp in Sources */, - 5E453F6D19E5423D00AB3A5D /* Chapter10_2.cpp in Sources */, - 5E453FA519E6309600AB3A5D /* Chapter10_4.cpp in Sources */, - 50BA5A0519D49A2F0070A133 /* AppDelegate.cpp in Sources */, - 5EAA122619E790B700B5D2BA /* Chapter10_5.cpp in Sources */, - 5E453F5F19E5178500AB3A5D /* Chapter10_1.cpp in Sources */, - 50BA59EC19D499360070A133 /* main.cpp in Sources */, - 50BA5A0719D49A2F0070A133 /* Chapter10.cpp in Sources */, + 3EE7F91619ED60DF00448914 /* Chapter12.cpp in Sources */, + 3EE7F8D919ED607500448914 /* AppController.mm in Sources */, + 3EE7F91419ED60DF00448914 /* AppDelegate.cpp in Sources */, + 3EE7F8DB19ED607500448914 /* RootViewController.mm in Sources */, + 3EE7F8DC19ED607500448914 /* main.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ + 3EE7F8F919ED607800448914 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3EE7F91719ED60DF00448914 /* Chapter12.cpp in Sources */, + 3EE7F91519ED60DF00448914 /* AppDelegate.cpp in Sources */, + 3EE7F8FC19ED607800448914 /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5087E75617EB910900C73F5D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 50BA599F19D493310070A133 /* AppDelegate.cpp in Sources */, + 7E273C8119D9CE460029CCC0 /* Chapter2Level1.cpp in Sources */, + 503AE10517EB98FF00D1A890 /* main.cpp in Sources */, + 50BA59A119D493310070A133 /* Chapter2.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 50BA59CA19D4992C0070A133 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E53689519EAD894005C3C64 /* DrawNode3D.cpp in Sources */, + 7E53688B19EAD894005C3C64 /* Chapter9_5.cpp in Sources */, + 7E53688F19EAD894005C3C64 /* Chapter9_7.cpp in Sources */, + 7E53688519EAD894005C3C64 /* Chapter9_2.cpp in Sources */, + 7E53688119EAD894005C3C64 /* AppDelegate.cpp in Sources */, + 7E53688919EAD894005C3C64 /* Chapter9_4.cpp in Sources */, + 7E53688319EAD894005C3C64 /* Chapter9_1.cpp in Sources */, + 7E53689119EAD894005C3C64 /* Chapter9_8.cpp in Sources */, + 7E53689319EAD894005C3C64 /* Chapter9.cpp in Sources */, + 7E53688719EAD894005C3C64 /* Chapter9_3.cpp in Sources */, + 7E53688D19EAD894005C3C64 /* Chapter9_6.cpp in Sources */, + 5E38D2C619F0F3DD0099B433 /* Chapter9_9.cpp in Sources */, + 50BA59CD19D4992C0070A133 /* AppController.mm in Sources */, + 50BA59CE19D4992C0070A133 /* RootViewController.mm in Sources */, + 50BA59CF19D4992C0070A133 /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 50BA59EA19D499360070A133 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E53688619EAD894005C3C64 /* Chapter9_2.cpp in Sources */, + 7E53688819EAD894005C3C64 /* Chapter9_3.cpp in Sources */, + 7E53688C19EAD894005C3C64 /* Chapter9_5.cpp in Sources */, + 7E53688219EAD894005C3C64 /* AppDelegate.cpp in Sources */, + 7E53689019EAD894005C3C64 /* Chapter9_7.cpp in Sources */, + 7E53688E19EAD894005C3C64 /* Chapter9_6.cpp in Sources */, + 7E53689619EAD894005C3C64 /* DrawNode3D.cpp in Sources */, + 7E53689219EAD894005C3C64 /* Chapter9_8.cpp in Sources */, + 5E38D2C719F0F3DD0099B433 /* Chapter9_9.cpp in Sources */, + 7E53688419EAD894005C3C64 /* Chapter9_1.cpp in Sources */, + 7E53689419EAD894005C3C64 /* Chapter9.cpp in Sources */, + 7E53688A19EAD894005C3C64 /* Chapter9_4.cpp in Sources */, + 50BA59EC19D499360070A133 /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E5368C319EC20DE005C3C64 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E5368EA19EC217B005C3C64 /* AppDelegate.cpp in Sources */, + 7E5368EB19EC217B005C3C64 /* AppDelegate.h in Sources */, + 7E5368EC19EC217B005C3C64 /* Chapter3.cpp in Sources */, + 7E5368ED19EC217B005C3C64 /* Chapter3.h in Sources */, + 7E5368CF19EC20DE005C3C64 /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E53690B19EC228B005C3C64 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E53694C19EC234D005C3C64 /* Chapter4.cpp in Sources */, + 7E53690E19EC228B005C3C64 /* AppController.mm in Sources */, + 7E53694A19EC234D005C3C64 /* AppDelegate.cpp in Sources */, + 7E53690F19EC228B005C3C64 /* RootViewController.mm in Sources */, + 7E53691019EC228B005C3C64 /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E53692F19EC22F4005C3C64 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E53694B19EC234D005C3C64 /* AppDelegate.cpp in Sources */, + 7E53694D19EC234D005C3C64 /* Chapter4.cpp in Sources */, + 7E53693119EC22F4005C3C64 /* AppDelegate.h in Sources */, + 7E53693419EC22F4005C3C64 /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E914A591A1BC3F200C6B2D4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E914A921A1BC8F500C6B2D4 /* AppDelegate.cpp in Sources */, + 7E914A5B1A1BC3F200C6B2D4 /* AppController.mm in Sources */, + 7E914A5C1A1BC3F200C6B2D4 /* RootViewController.mm in Sources */, + 7E914A941A1BC8F500C6B2D4 /* Chapter5.cpp in Sources */, + 7E914A5E1A1BC3F200C6B2D4 /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E914A781A1BC40200C6B2D4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E914A951A1BC8F500C6B2D4 /* Chapter5.cpp in Sources */, + 7E914A931A1BC8F500C6B2D4 /* AppDelegate.cpp in Sources */, + 7E914A7B1A1BC40200C6B2D4 /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E9571BC19F1938B00F6AE44 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E9571BF19F1938B00F6AE44 /* AppController.mm in Sources */, + 7E9571C019F1938B00F6AE44 /* RootViewController.mm in Sources */, + 7E9571C119F1938B00F6AE44 /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E9571EB19F196D200F6AE44 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E9571EF19F196D200F6AE44 /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E95721719F197BA00F6AE44 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E95724919F1983600F6AE44 /* AppDelegate.cpp in Sources */, + 7E95721819F197BA00F6AE44 /* AppController.mm in Sources */, + 7E95721919F197BA00F6AE44 /* RootViewController.mm in Sources */, + 7E95724B19F1983600F6AE44 /* Chapter13.cpp in Sources */, + 7E95721A19F197BA00F6AE44 /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7E95723219F197F500F6AE44 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E95724C19F1983600F6AE44 /* Chapter13.cpp in Sources */, + 7E95724A19F1983600F6AE44 /* AppDelegate.cpp in Sources */, + 7E95723319F197F500F6AE44 /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7EBF315C19E7803F00A7FBEA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7EBF317B19E7807500A7FBEA /* AppDelegate.cpp in Sources */, + 7EBF318019E843F100A7FBEA /* Chapter3.cpp in Sources */, + 7EBF315F19E7803F00A7FBEA /* AppController.mm in Sources */, + 7EBF316119E7803F00A7FBEA /* RootViewController.mm in Sources */, + 7EBF316219E7803F00A7FBEA /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 296358B919F78D4F003732AB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d iOS"; + targetProxy = 296358BA19F78D4F003732AB /* PBXContainerItemProxy */; + }; + 2963591719F78F74003732AB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d Mac"; + targetProxy = 2963591819F78F74003732AB /* PBXContainerItemProxy */; + }; + 3EE7F8BD19ED607500448914 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d iOS"; + targetProxy = 3EE7F8BE19ED607500448914 /* PBXContainerItemProxy */; + }; + 3EE7F8EF19ED607800448914 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d Mac"; + targetProxy = 3EE7F8F019ED607800448914 /* PBXContainerItemProxy */; + }; 50BA599519D492F50070A133 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "libcocos2d iOS"; targetProxy = 50BA599419D492F50070A133 /* PBXContainerItemProxy */; }; - 50BA599719D492FA0070A133 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "libcocos2d Mac"; - targetProxy = 50BA599619D492FA0070A133 /* PBXContainerItemProxy */; + 50BA599719D492FA0070A133 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d Mac"; + targetProxy = 50BA599619D492FA0070A133 /* PBXContainerItemProxy */; + }; + 50BA59B319D4992C0070A133 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d iOS"; + targetProxy = 50BA59B419D4992C0070A133 /* PBXContainerItemProxy */; + }; + 50BA59E219D499360070A133 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d Mac"; + targetProxy = 50BA59E319D499360070A133 /* PBXContainerItemProxy */; + }; + 7E53689E19EC20DE005C3C64 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d Mac"; + targetProxy = 7E53689F19EC20DE005C3C64 /* PBXContainerItemProxy */; + }; + 7E5368EF19EC228B005C3C64 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d iOS"; + targetProxy = 7E5368F019EC228B005C3C64 /* PBXContainerItemProxy */; + }; + 7E53692319EC22F4005C3C64 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d Mac"; + targetProxy = 7E53692419EC22F4005C3C64 /* PBXContainerItemProxy */; + }; + 7E914A431A1BC3F200C6B2D4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d iOS"; + targetProxy = 7E914A441A1BC3F200C6B2D4 /* PBXContainerItemProxy */; + }; + 7E914A711A1BC40200C6B2D4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d Mac"; + targetProxy = 7E914A721A1BC40200C6B2D4 /* PBXContainerItemProxy */; + }; + 7E95719F19F1938B00F6AE44 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d iOS"; + targetProxy = 7E9571A019F1938B00F6AE44 /* PBXContainerItemProxy */; + }; + 7E9571D419F196D200F6AE44 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d Mac"; + targetProxy = 7E9571D519F196D200F6AE44 /* PBXContainerItemProxy */; + }; + 7E95720319F197BA00F6AE44 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d iOS"; + targetProxy = 7E95720419F197BA00F6AE44 /* PBXContainerItemProxy */; + }; + 7E95722D19F197F500F6AE44 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d Mac"; + targetProxy = 7E95722E19F197F500F6AE44 /* PBXContainerItemProxy */; + }; + 7EBF314019E7803F00A7FBEA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libcocos2d iOS"; + targetProxy = 7EBF314119E7803F00A7FBEA /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 1D6058940D05DD3E006BFB54 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_IPHONE, + "COCOS2D_DEBUG=1", + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", + ); + INFOPLIST_FILE = "iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 2"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 1D6058950D05DD3E006BFB54 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_IPHONE, + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", + ); + INFOPLIST_FILE = "iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 2"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; + }; + 296358EF19F78D4F003732AB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_IPHONE, + "COCOS2D_DEBUG=1", + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", + ); + INFOPLIST_FILE = "iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 6 iOS"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 296358F019F78D4F003732AB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_IPHONE, + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", + ); + INFOPLIST_FILE = "iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 6 iOS"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; + }; + 2963594019F78F74003732AB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_DYNAMIC_NO_PIC = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_MAC, + "COCOS2D_DEBUG=1", + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", + "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", + ); + INFOPLIST_FILE = "Mac-Info.plist"; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 6 Mac"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 2963594119F78F74003732AB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_MAC, + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", + "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", + ); + INFOPLIST_FILE = "Mac-Info.plist"; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 6 Mac"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; + }; + 3EE7F8EA19ED607500448914 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_IPHONE, + "COCOS2D_DEBUG=1", + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", + ); + INFOPLIST_FILE = "iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 12 iOS"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 3EE7F8EB19ED607500448914 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_IPHONE, + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", + ); + INFOPLIST_FILE = "iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 12 iOS"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; + }; + 3EE7F90B19ED607800448914 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_DYNAMIC_NO_PIC = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_MAC, + "COCOS2D_DEBUG=1", + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", + "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", + ); + INFOPLIST_FILE = "Mac-Info.plist"; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 12 Mac"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 3EE7F90C19ED607800448914 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_MAC, + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", + "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", + ); + INFOPLIST_FILE = "Mac-Info.plist"; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 12 Mac"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; + }; + 5087E76D17EB910900C73F5D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_DYNAMIC_NO_PIC = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_MAC, + "COCOS2D_DEBUG=1", + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", + "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", + ); + INFOPLIST_FILE = "Mac-Info.plist"; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 2 Mac"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 5087E76E17EB910900C73F5D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_MAC, + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", + "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", + ); + INFOPLIST_FILE = "Mac-Info.plist"; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 2 Mac"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; + }; + 50BA59DD19D4992C0070A133 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_IPHONE, + "COCOS2D_DEBUG=1", + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", + ); + INFOPLIST_FILE = "iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 9 iOS"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 50BA59DE19D4992C0070A133 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_IPHONE, + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", + ); + INFOPLIST_FILE = "iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 9 iOS"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; + }; + 50BA59FB19D499360070A133 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_DYNAMIC_NO_PIC = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_MAC, + "COCOS2D_DEBUG=1", + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", + "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", + ); + INFOPLIST_FILE = "Mac-Info.plist"; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 9 Mac"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 50BA59FC19D499360070A133 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_MAC, + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", + "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", + ); + INFOPLIST_FILE = "Mac-Info.plist"; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 9 Mac"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; + }; + 7E5368DD19EC20DE005C3C64 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_DYNAMIC_NO_PIC = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_MAC, + "COCOS2D_DEBUG=1", + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", + "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", + ); + INFOPLIST_FILE = "Mac-Info.plist"; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 3 Mac"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 7E5368DE19EC20DE005C3C64 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_MAC, + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", + "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", + ); + INFOPLIST_FILE = "Mac-Info.plist"; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 3 Mac"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; + }; + 7E53691E19EC228B005C3C64 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_IPHONE, + "COCOS2D_DEBUG=1", + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", + ); + INFOPLIST_FILE = "iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 4 iOS"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 7E53691F19EC228B005C3C64 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_IPHONE, + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", + ); + INFOPLIST_FILE = "iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 4 iOS"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; + }; + 7E53694219EC22F4005C3C64 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_DYNAMIC_NO_PIC = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_MAC, + "COCOS2D_DEBUG=1", + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", + "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", + ); + INFOPLIST_FILE = "Mac-Info.plist"; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 4 Mac"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 7E53694319EC22F4005C3C64 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_MAC, + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", + "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", + ); + INFOPLIST_FILE = "Mac-Info.plist"; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 4 Mac"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; + }; + 7E914A6C1A1BC3F200C6B2D4 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_IPHONE, + "COCOS2D_DEBUG=1", + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", + ); + INFOPLIST_FILE = "iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 5 iOS"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 7E914A6D1A1BC3F200C6B2D4 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_IPHONE, + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", + ); + INFOPLIST_FILE = "iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 5 iOS"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; }; - 50BA59B319D4992C0070A133 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "libcocos2d iOS"; - targetProxy = 50BA59B419D4992C0070A133 /* PBXContainerItemProxy */; + 7E914A891A1BC40200C6B2D4 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_DYNAMIC_NO_PIC = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_MAC, + "COCOS2D_DEBUG=1", + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", + "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", + ); + INFOPLIST_FILE = "Mac-Info.plist"; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 5 Mac"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; }; - 50BA59E219D499360070A133 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "libcocos2d Mac"; - targetProxy = 50BA59E319D499360070A133 /* PBXContainerItemProxy */; + 7E914A8A1A1BC40200C6B2D4 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = mac/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_MAC, + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", + "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", + ); + INFOPLIST_FILE = "Mac-Info.plist"; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 5 Mac"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 1D6058940D05DD3E006BFB54 /* Debug */ = { + 7E9571CF19F1938B00F6AE44 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; @@ -1021,17 +3687,17 @@ "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", ); - INFOPLIST_FILE = ios/Info.plist; + INFOPLIST_FILE = "iOS-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 5.0; LIBRARY_SEARCH_PATHS = ""; - PRODUCT_NAME = "Programmers Guide iOS"; + PRODUCT_NAME = "Chapter 8 iOS"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; USER_HEADER_SEARCH_PATHS = ""; }; name = Debug; }; - 1D6058950D05DD3E006BFB54 /* Release */ = { + 7E9571D019F1938B00F6AE44 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; @@ -1051,17 +3717,17 @@ "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", ); - INFOPLIST_FILE = ios/Info.plist; + INFOPLIST_FILE = "iOS-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 5.0; LIBRARY_SEARCH_PATHS = ""; - PRODUCT_NAME = "Programmers Guide iOS"; + PRODUCT_NAME = "Chapter 8 iOS"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; USER_HEADER_SEARCH_PATHS = ""; }; name = Release; }; - 5087E76D17EB910900C73F5D /* Debug */ = { + 7E9571FD19F196D200F6AE44 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; @@ -1084,14 +3750,14 @@ "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", ); - INFOPLIST_FILE = mac/Info.plist; + INFOPLIST_FILE = "Mac-Info.plist"; LIBRARY_SEARCH_PATHS = ""; - PRODUCT_NAME = "Programmers Guide Mac"; + PRODUCT_NAME = "Chapter 8 Mac"; USER_HEADER_SEARCH_PATHS = ""; }; name = Debug; }; - 5087E76E17EB910900C73F5D /* Release */ = { + 7E9571FE19F196D200F6AE44 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; @@ -1112,14 +3778,14 @@ "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", ); - INFOPLIST_FILE = mac/Info.plist; + INFOPLIST_FILE = "Mac-Info.plist"; LIBRARY_SEARCH_PATHS = ""; - PRODUCT_NAME = "Programmers Guide Mac"; + PRODUCT_NAME = "Chapter 8 Mac"; USER_HEADER_SEARCH_PATHS = ""; }; name = Release; }; - 50BA59DD19D4992C0070A133 /* Debug */ = { + 7E95722819F197BA00F6AE44 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; @@ -1141,17 +3807,17 @@ "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", ); - INFOPLIST_FILE = "Chapter 2 iOS copy-Info.plist"; + INFOPLIST_FILE = "iOS-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 5.0; LIBRARY_SEARCH_PATHS = ""; - PRODUCT_NAME = "Chapter 2 iOS copy"; + PRODUCT_NAME = "Chapter 13 iOS"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; USER_HEADER_SEARCH_PATHS = ""; }; name = Debug; }; - 50BA59DE19D4992C0070A133 /* Release */ = { + 7E95722919F197BA00F6AE44 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; @@ -1171,17 +3837,17 @@ "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", ); - INFOPLIST_FILE = "Chapter 2 iOS copy-Info.plist"; + INFOPLIST_FILE = "iOS-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 5.0; LIBRARY_SEARCH_PATHS = ""; - PRODUCT_NAME = "Chapter 2 iOS copy"; + PRODUCT_NAME = "Chapter 13 iOS"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; USER_HEADER_SEARCH_PATHS = ""; }; name = Release; }; - 50BA59FB19D499360070A133 /* Debug */ = { + 7E95724119F197F500F6AE44 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; @@ -1204,14 +3870,14 @@ "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", ); - INFOPLIST_FILE = "Chapter 2 Mac copy-Info.plist"; + INFOPLIST_FILE = "Mac-Info.plist"; LIBRARY_SEARCH_PATHS = ""; - PRODUCT_NAME = "Chapter 2 Mac copy"; + PRODUCT_NAME = "Chapter 13 Mac"; USER_HEADER_SEARCH_PATHS = ""; }; name = Debug; }; - 50BA59FC19D499360070A133 /* Release */ = { + 7E95724219F197F500F6AE44 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; @@ -1232,9 +3898,71 @@ "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/mac", "$(SRCROOT)/../libs/cocos2d-x/external/glfw3/include/mac", ); - INFOPLIST_FILE = "Chapter 2 Mac copy-Info.plist"; + INFOPLIST_FILE = "Mac-Info.plist"; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 13 Mac"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; + }; + 7EBF317019E7803F00A7FBEA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_IPHONE, + "COCOS2D_DEBUG=1", + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", + ); + INFOPLIST_FILE = "iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LIBRARY_SEARCH_PATHS = ""; + PRODUCT_NAME = "Chapter 3"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 7EBF317119E7803F00A7FBEA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMPRESS_PNG_FILES = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ios/Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + USE_FILE32API, + CC_TARGET_OS_IPHONE, + "CC_ENABLE_CHIPMUNK_INTEGRATION=1", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios", + "$(SRCROOT)/../libs/cocos2d-x/cocos/platform/ios/Simulation", + ); + INFOPLIST_FILE = "iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; LIBRARY_SEARCH_PATHS = ""; - PRODUCT_NAME = "Chapter 2 Mac copy"; + PRODUCT_NAME = "Chapter 3"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; USER_HEADER_SEARCH_PATHS = ""; }; name = Release; @@ -1292,6 +4020,42 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 296358EE19F78D4F003732AB /* Build configuration list for PBXNativeTarget "Chapter 6 iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 296358EF19F78D4F003732AB /* Debug */, + 296358F019F78D4F003732AB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 2963593F19F78F74003732AB /* Build configuration list for PBXNativeTarget "Chapter 6 Mac" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2963594019F78F74003732AB /* Debug */, + 2963594119F78F74003732AB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 3EE7F8E919ED607500448914 /* Build configuration list for PBXNativeTarget "Chapter 12 iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3EE7F8EA19ED607500448914 /* Debug */, + 3EE7F8EB19ED607500448914 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 3EE7F90A19ED607800448914 /* Build configuration list for PBXNativeTarget "Chapter 12 Mac" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3EE7F90B19ED607800448914 /* Debug */, + 3EE7F90C19ED607800448914 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; 5087E76C17EB910900C73F5D /* Build configuration list for PBXNativeTarget "Chapter 2 Mac" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -1301,7 +4065,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - 50BA59DC19D4992C0070A133 /* Build configuration list for PBXNativeTarget "Chapter 10 iOS" */ = { + 50BA59DC19D4992C0070A133 /* Build configuration list for PBXNativeTarget "Chapter 9 iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( 50BA59DD19D4992C0070A133 /* Debug */, @@ -1310,7 +4074,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - 50BA59FA19D499360070A133 /* Build configuration list for PBXNativeTarget "Chapter 10 Mac" */ = { + 50BA59FA19D499360070A133 /* Build configuration list for PBXNativeTarget "Chapter 9 Mac" */ = { isa = XCConfigurationList; buildConfigurations = ( 50BA59FB19D499360070A133 /* Debug */, @@ -1319,6 +4083,96 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 7E5368DC19EC20DE005C3C64 /* Build configuration list for PBXNativeTarget "Chapter 3 Mac" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7E5368DD19EC20DE005C3C64 /* Debug */, + 7E5368DE19EC20DE005C3C64 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 7E53691D19EC228B005C3C64 /* Build configuration list for PBXNativeTarget "Chapter 4 iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7E53691E19EC228B005C3C64 /* Debug */, + 7E53691F19EC228B005C3C64 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 7E53694119EC22F4005C3C64 /* Build configuration list for PBXNativeTarget "Chapter 4 Mac" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7E53694219EC22F4005C3C64 /* Debug */, + 7E53694319EC22F4005C3C64 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 7E914A6B1A1BC3F200C6B2D4 /* Build configuration list for PBXNativeTarget "Chapter 5 iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7E914A6C1A1BC3F200C6B2D4 /* Debug */, + 7E914A6D1A1BC3F200C6B2D4 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 7E914A881A1BC40200C6B2D4 /* Build configuration list for PBXNativeTarget "Chapter 5 Mac" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7E914A891A1BC40200C6B2D4 /* Debug */, + 7E914A8A1A1BC40200C6B2D4 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 7E9571CE19F1938B00F6AE44 /* Build configuration list for PBXNativeTarget "Chapter 8 iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7E9571CF19F1938B00F6AE44 /* Debug */, + 7E9571D019F1938B00F6AE44 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 7E9571FC19F196D200F6AE44 /* Build configuration list for PBXNativeTarget "Chapter 8 Mac" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7E9571FD19F196D200F6AE44 /* Debug */, + 7E9571FE19F196D200F6AE44 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 7E95722719F197BA00F6AE44 /* Build configuration list for PBXNativeTarget "Chapter 13 iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7E95722819F197BA00F6AE44 /* Debug */, + 7E95722919F197BA00F6AE44 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 7E95724019F197F500F6AE44 /* Build configuration list for PBXNativeTarget "Chapter 13 Mac" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7E95724119F197F500F6AE44 /* Debug */, + 7E95724219F197F500F6AE44 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 7EBF316F19E7803F00A7FBEA /* Build configuration list for PBXNativeTarget "Chapter 3 iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7EBF317019E7803F00A7FBEA /* Debug */, + 7EBF317119E7803F00A7FBEA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Programmers Guide" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/proj.ios_mac/Programmers Guide.xcodeproj/project.xcworkspace/xcshareddata/Chapter 2.xccheckout b/proj.ios_mac/Programmers Guide.xcodeproj/project.xcworkspace/xcshareddata/Chapter 2.xccheckout deleted file mode 100644 index 560fcdb..0000000 --- a/proj.ios_mac/Programmers Guide.xcodeproj/project.xcworkspace/xcshareddata/Chapter 2.xccheckout +++ /dev/null @@ -1,53 +0,0 @@ - - - - - IDESourceControlProjectFavoriteDictionaryKey - - IDESourceControlProjectIdentifier - A8B26FE7-FC9A-46BE-8726-729AD7E8BF60 - IDESourceControlProjectName - Chapter 2 - IDESourceControlProjectOriginsDictionary - - 54123B1436506F41A7C586AC3F460149AC886820 - https://github.com/chukong/programmers-guide-samples.git - 852ED3691A47A99B0D19C820A500AE9772B2A44E - https://github.com/cocos2d/cocos2d-x.git - - IDESourceControlProjectPath - chapter2/proj.ios_mac/Chapter 2.xcodeproj - IDESourceControlProjectRelativeInstallPathDictionary - - 54123B1436506F41A7C586AC3F460149AC886820 - ../../../.. - 852ED3691A47A99B0D19C820A500AE9772B2A44E - ../../../..libs/cocos2d-x - - IDESourceControlProjectURL - https://github.com/chukong/programmers-guide-samples.git - IDESourceControlProjectVersion - 111 - IDESourceControlProjectWCCIdentifier - 54123B1436506F41A7C586AC3F460149AC886820 - IDESourceControlProjectWCConfigurations - - - IDESourceControlRepositoryExtensionIdentifierKey - public.vcs.git - IDESourceControlWCCIdentifierKey - 852ED3691A47A99B0D19C820A500AE9772B2A44E - IDESourceControlWCCName - cocos2d-x - - - IDESourceControlRepositoryExtensionIdentifierKey - public.vcs.git - IDESourceControlWCCIdentifierKey - 54123B1436506F41A7C586AC3F460149AC886820 - IDESourceControlWCCName - programmers-guide-samples - - - - diff --git a/proj.ios_mac/Programmers Guide.xcodeproj/project.xcworkspace/xcshareddata/Programmers Guide.xccheckout b/proj.ios_mac/Programmers Guide.xcodeproj/project.xcworkspace/xcshareddata/Programmers Guide.xccheckout deleted file mode 100644 index 4821d09..0000000 --- a/proj.ios_mac/Programmers Guide.xcodeproj/project.xcworkspace/xcshareddata/Programmers Guide.xccheckout +++ /dev/null @@ -1,53 +0,0 @@ - - - - - IDESourceControlProjectFavoriteDictionaryKey - - IDESourceControlProjectIdentifier - F1C8E6BF-BD45-45C4-85D1-CF982452D767 - IDESourceControlProjectName - Programmers Guide - IDESourceControlProjectOriginsDictionary - - 54123B1436506F41A7C586AC3F460149AC886820 - https://github.com/chukong/programmers-guide-samples.git - 852ED3691A47A99B0D19C820A500AE9772B2A44E - https://github.com/cocos2d/cocos2d-x.git - - IDESourceControlProjectPath - proj.ios_mac/Programmers Guide.xcodeproj - IDESourceControlProjectRelativeInstallPathDictionary - - 54123B1436506F41A7C586AC3F460149AC886820 - ../../.. - 852ED3691A47A99B0D19C820A500AE9772B2A44E - ../../..libs/cocos2d-x - - IDESourceControlProjectURL - https://github.com/chukong/programmers-guide-samples.git - IDESourceControlProjectVersion - 111 - IDESourceControlProjectWCCIdentifier - 54123B1436506F41A7C586AC3F460149AC886820 - IDESourceControlProjectWCConfigurations - - - IDESourceControlRepositoryExtensionIdentifierKey - public.vcs.git - IDESourceControlWCCIdentifierKey - 852ED3691A47A99B0D19C820A500AE9772B2A44E - IDESourceControlWCCName - cocos2d-x - - - IDESourceControlRepositoryExtensionIdentifierKey - public.vcs.git - IDESourceControlWCCIdentifierKey - 54123B1436506F41A7C586AC3F460149AC886820 - IDESourceControlWCCName - programmers-guide-samples - - - - diff --git a/proj.ios_mac/Programmers Guide.xcodeproj/project.xcworkspace/xcshareddata/chapter2.xccheckout b/proj.ios_mac/Programmers Guide.xcodeproj/project.xcworkspace/xcshareddata/chapter2.xccheckout deleted file mode 100644 index 210d218..0000000 --- a/proj.ios_mac/Programmers Guide.xcodeproj/project.xcworkspace/xcshareddata/chapter2.xccheckout +++ /dev/null @@ -1,41 +0,0 @@ - - - - - IDESourceControlProjectFavoriteDictionaryKey - - IDESourceControlProjectIdentifier - 95619BA6-C404-4ADD-904D-24D30F8859D1 - IDESourceControlProjectName - chapter2 - IDESourceControlProjectOriginsDictionary - - 54123B1436506F41A7C586AC3F460149AC886820 - https://github.com/chukong/programmers-guide-samples.git - - IDESourceControlProjectPath - chapter2/proj.ios_mac/chapter2.xcodeproj - IDESourceControlProjectRelativeInstallPathDictionary - - 54123B1436506F41A7C586AC3F460149AC886820 - ../../../.. - - IDESourceControlProjectURL - https://github.com/chukong/programmers-guide-samples.git - IDESourceControlProjectVersion - 111 - IDESourceControlProjectWCCIdentifier - 54123B1436506F41A7C586AC3F460149AC886820 - IDESourceControlProjectWCConfigurations - - - IDESourceControlRepositoryExtensionIdentifierKey - public.vcs.git - IDESourceControlWCCIdentifierKey - 54123B1436506F41A7C586AC3F460149AC886820 - IDESourceControlWCCName - programmers-guide-samples - - - - diff --git a/proj.ios_mac/Chapter 2 iOS copy-Info.plist b/proj.ios_mac/iOS-Info.plist similarity index 97% rename from proj.ios_mac/Chapter 2 iOS copy-Info.plist rename to proj.ios_mac/iOS-Info.plist index f8e4d38..a846c9a 100644 --- a/proj.ios_mac/Chapter 2 iOS copy-Info.plist +++ b/proj.ios_mac/iOS-Info.plist @@ -42,7 +42,7 @@ Icon-144.png CFBundleIdentifier - org.cocos2dx.chapter2 + org.cocos2dx.${PRODUCT_NAME} CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/proj.ios_mac/sprites.plist b/proj.ios_mac/sprites.plist new file mode 100644 index 0000000..f56e7de --- /dev/null +++ b/proj.ios_mac/sprites.plist @@ -0,0 +1,87 @@ + + + + + frames + + Blue_Front1.png + + frame + {{2,2},{65,81}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{65,81}} + sourceSize + {65,81} + + LightBlue_Front1.png + + frame + {{2,168},{65,79}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{65,79}} + sourceSize + {65,79} + + White_Front1.png + + frame + {{2,85},{65,81}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{65,81}} + sourceSize + {65,81} + + ZigzagForest_Square.png + + frame + {{2,249},{64,64}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{64,64}} + sourceSize + {64,64} + + ZigzagGrass_Mud_Round.png + + frame + {{2,315},{64,64}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{64,64}} + sourceSize + {64,64} + + + metadata + + format + 2 + realTextureFileName + sprites.pvr.ccz + size + {69,382} + smartupdate + $TexturePacker:SmartUpdate:2e01155d20cb55cd5bbd4eb50d43ff39:7b8b6ec505808c571e2013b70cd6adf9:65190eda994a633aa977088176b54359$ + textureFileName + sprites.pvr.ccz + + + diff --git a/proj.ios_mac/sprites.pvr.ccz b/proj.ios_mac/sprites.pvr.ccz new file mode 100644 index 0000000..77b1da5 Binary files /dev/null and b/proj.ios_mac/sprites.pvr.ccz differ diff --git a/res/chapter12/LightBlueSprite.png b/res/chapter12/LightBlueSprite.png new file mode 100644 index 0000000..0333223 Binary files /dev/null and b/res/chapter12/LightBlueSprite.png differ diff --git a/res/chapter12/blueSprite.png b/res/chapter12/blueSprite.png new file mode 100644 index 0000000..029ff5d Binary files /dev/null and b/res/chapter12/blueSprite.png differ diff --git a/res/chapter12/fonts/arial.ttf b/res/chapter12/fonts/arial.ttf new file mode 100644 index 0000000..abc899c Binary files /dev/null and b/res/chapter12/fonts/arial.ttf differ diff --git a/res/chapter12/leftNormal.png b/res/chapter12/leftNormal.png new file mode 100644 index 0000000..a3c16ad Binary files /dev/null and b/res/chapter12/leftNormal.png differ diff --git a/res/chapter12/leftSelected.png b/res/chapter12/leftSelected.png new file mode 100644 index 0000000..ffa527c Binary files /dev/null and b/res/chapter12/leftSelected.png differ diff --git a/res/chapter12/restartNormal.png b/res/chapter12/restartNormal.png new file mode 100644 index 0000000..6b51dc4 Binary files /dev/null and b/res/chapter12/restartNormal.png differ diff --git a/res/chapter12/restartSelected.png b/res/chapter12/restartSelected.png new file mode 100644 index 0000000..ef1f2b4 Binary files /dev/null and b/res/chapter12/restartSelected.png differ diff --git a/res/chapter12/rightNormal.png b/res/chapter12/rightNormal.png new file mode 100644 index 0000000..606181f Binary files /dev/null and b/res/chapter12/rightNormal.png differ diff --git a/res/chapter12/rightSelected.png b/res/chapter12/rightSelected.png new file mode 100644 index 0000000..8cd548b Binary files /dev/null and b/res/chapter12/rightSelected.png differ diff --git a/res/chapter12/whiteSprite.png b/res/chapter12/whiteSprite.png new file mode 100644 index 0000000..e5fd586 Binary files /dev/null and b/res/chapter12/whiteSprite.png differ diff --git a/res/chapter13/alert.mp3 b/res/chapter13/alert.mp3 new file mode 100644 index 0000000..1ef4fee Binary files /dev/null and b/res/chapter13/alert.mp3 differ diff --git a/res/chapter13/music.mp3 b/res/chapter13/music.mp3 new file mode 100644 index 0000000..d7aa90b Binary files /dev/null and b/res/chapter13/music.mp3 differ diff --git a/res/chapter2/CloseNormal.png b/res/chapter2/CloseNormal.png deleted file mode 100644 index 5657a13..0000000 Binary files a/res/chapter2/CloseNormal.png and /dev/null differ diff --git a/res/chapter2/CloseSelected.png b/res/chapter2/CloseSelected.png deleted file mode 100644 index e4c82da..0000000 Binary files a/res/chapter2/CloseSelected.png and /dev/null differ diff --git a/res/chapter2/HelloWorld.png b/res/chapter2/HelloWorld.png deleted file mode 100644 index 5fe89fb..0000000 Binary files a/res/chapter2/HelloWorld.png and /dev/null differ diff --git a/res/chapter2/clouds_1.png b/res/chapter2/clouds_1.png deleted file mode 100755 index 7ab3f01..0000000 Binary files a/res/chapter2/clouds_1.png and /dev/null differ diff --git a/res/chapter2/fonts/Marker Felt.ttf b/res/chapter2/fonts/Marker Felt.ttf deleted file mode 100644 index 3752ef3..0000000 Binary files a/res/chapter2/fonts/Marker Felt.ttf and /dev/null differ diff --git a/res/chapter3/sprites.plist b/res/chapter3/sprites.plist new file mode 100644 index 0000000..f56e7de --- /dev/null +++ b/res/chapter3/sprites.plist @@ -0,0 +1,87 @@ + + + + + frames + + Blue_Front1.png + + frame + {{2,2},{65,81}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{65,81}} + sourceSize + {65,81} + + LightBlue_Front1.png + + frame + {{2,168},{65,79}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{65,79}} + sourceSize + {65,79} + + White_Front1.png + + frame + {{2,85},{65,81}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{65,81}} + sourceSize + {65,81} + + ZigzagForest_Square.png + + frame + {{2,249},{64,64}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{64,64}} + sourceSize + {64,64} + + ZigzagGrass_Mud_Round.png + + frame + {{2,315},{64,64}} + offset + {0,0} + rotated + + sourceColorRect + {{0,0},{64,64}} + sourceSize + {64,64} + + + metadata + + format + 2 + realTextureFileName + sprites.pvr.ccz + size + {69,382} + smartupdate + $TexturePacker:SmartUpdate:2e01155d20cb55cd5bbd4eb50d43ff39:7b8b6ec505808c571e2013b70cd6adf9:65190eda994a633aa977088176b54359$ + textureFileName + sprites.pvr.ccz + + + diff --git a/res/chapter3/sprites.pvr.ccz b/res/chapter3/sprites.pvr.ccz new file mode 100644 index 0000000..77b1da5 Binary files /dev/null and b/res/chapter3/sprites.pvr.ccz differ diff --git a/res/chapter4/Blue_Back1.png b/res/chapter4/Blue_Back1.png new file mode 100755 index 0000000..ce9521c Binary files /dev/null and b/res/chapter4/Blue_Back1.png differ diff --git a/res/chapter4/Blue_Back2.png b/res/chapter4/Blue_Back2.png new file mode 100755 index 0000000..7b2bc0b Binary files /dev/null and b/res/chapter4/Blue_Back2.png differ diff --git a/res/chapter4/Blue_Back3.png b/res/chapter4/Blue_Back3.png new file mode 100755 index 0000000..3fa6b3f Binary files /dev/null and b/res/chapter4/Blue_Back3.png differ diff --git a/res/chapter4/Blue_Front1.png b/res/chapter4/Blue_Front1.png new file mode 100755 index 0000000..ae9d653 Binary files /dev/null and b/res/chapter4/Blue_Front1.png differ diff --git a/res/chapter4/Blue_Front2.png b/res/chapter4/Blue_Front2.png new file mode 100755 index 0000000..48de6f1 Binary files /dev/null and b/res/chapter4/Blue_Front2.png differ diff --git a/res/chapter4/Blue_Front3.png b/res/chapter4/Blue_Front3.png new file mode 100755 index 0000000..93369d5 Binary files /dev/null and b/res/chapter4/Blue_Front3.png differ diff --git a/res/chapter4/Blue_Left1.png b/res/chapter4/Blue_Left1.png new file mode 100755 index 0000000..7c1604d Binary files /dev/null and b/res/chapter4/Blue_Left1.png differ diff --git a/res/chapter4/Blue_Left2.png b/res/chapter4/Blue_Left2.png new file mode 100755 index 0000000..ad5c8f4 Binary files /dev/null and b/res/chapter4/Blue_Left2.png differ diff --git a/res/chapter4/Blue_Left3.png b/res/chapter4/Blue_Left3.png new file mode 100755 index 0000000..62cbee8 Binary files /dev/null and b/res/chapter4/Blue_Left3.png differ diff --git a/res/chapter4/Blue_Right1.png b/res/chapter4/Blue_Right1.png new file mode 100755 index 0000000..5d5d2ae Binary files /dev/null and b/res/chapter4/Blue_Right1.png differ diff --git a/res/chapter4/Blue_Right2.png b/res/chapter4/Blue_Right2.png new file mode 100755 index 0000000..ed52a30 Binary files /dev/null and b/res/chapter4/Blue_Right2.png differ diff --git a/res/chapter4/Blue_Right3.png b/res/chapter4/Blue_Right3.png new file mode 100755 index 0000000..48fedaa Binary files /dev/null and b/res/chapter4/Blue_Right3.png differ diff --git a/res/chapter6/fonts/arial.ttf b/res/chapter6/fonts/arial.ttf new file mode 100644 index 0000000..abc899c Binary files /dev/null and b/res/chapter6/fonts/arial.ttf differ diff --git a/res/chapter6/fonts/bitmapFontTest.fnt b/res/chapter6/fonts/bitmapFontTest.fnt new file mode 100755 index 0000000..7190f52 --- /dev/null +++ b/res/chapter6/fonts/bitmapFontTest.fnt @@ -0,0 +1,100 @@ +info face="ArtistampMedium" size=48 bold=1 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 +common lineHeight=52 base=26 scaleW=256 scaleH=512 pages=1 packed=0 +page id=0 file="bitmapFontTest.png" +chars count=94 +char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=44 xadvance=14 page=0 chnl=0 +char id=94 x=0 y=0 width=51 height=49 xoffset=1 yoffset=3 xadvance=51 page=0 chnl=0 +char id=95 x=51 y=0 width=82 height=48 xoffset=2 yoffset=4 xadvance=84 page=0 chnl=0 +char id=41 x=133 y=0 width=14 height=46 xoffset=1 yoffset=3 xadvance=13 page=0 chnl=0 +char id=40 x=147 y=0 width=16 height=46 xoffset=1 yoffset=3 xadvance=12 page=0 chnl=0 +char id=126 x=163 y=0 width=30 height=42 xoffset=2 yoffset=6 xadvance=31 page=0 chnl=0 +char id=47 x=193 y=0 width=24 height=42 xoffset=0 yoffset=6 xadvance=19 page=0 chnl=0 +char id=37 x=217 y=0 width=32 height=38 xoffset=1 yoffset=10 xadvance=31 page=0 chnl=0 +char id=36 x=0 y=49 width=22 height=38 xoffset=-1 yoffset=10 xadvance=18 page=0 chnl=0 +char id=93 x=22 y=49 width=11 height=38 xoffset=1 yoffset=8 xadvance=11 page=0 chnl=0 +char id=91 x=33 y=49 width=12 height=38 xoffset=1 yoffset=6 xadvance=8 page=0 chnl=0 +char id=84 x=45 y=49 width=29 height=38 xoffset=0 yoffset=8 xadvance=27 page=0 chnl=0 +char id=63 x=74 y=49 width=21 height=37 xoffset=1 yoffset=7 xadvance=20 page=0 chnl=0 +char id=122 x=95 y=49 width=24 height=37 xoffset=1 yoffset=9 xadvance=23 page=0 chnl=0 +char id=116 x=119 y=49 width=29 height=37 xoffset=0 yoffset=7 xadvance=26 page=0 chnl=0 +char id=113 x=148 y=49 width=29 height=37 xoffset=1 yoffset=9 xadvance=28 page=0 chnl=0 +char id=102 x=177 y=49 width=27 height=37 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0 +char id=101 x=204 y=49 width=27 height=37 xoffset=1 yoffset=9 xadvance=26 page=0 chnl=0 +char id=98 x=0 y=87 width=30 height=37 xoffset=1 yoffset=6 xadvance=28 page=0 chnl=0 +char id=87 x=30 y=87 width=44 height=37 xoffset=0 yoffset=8 xadvance=42 page=0 chnl=0 +char id=81 x=74 y=87 width=29 height=37 xoffset=1 yoffset=8 xadvance=29 page=0 chnl=0 +char id=74 x=103 y=87 width=25 height=37 xoffset=0 yoffset=7 xadvance=23 page=0 chnl=0 +char id=70 x=128 y=87 width=27 height=37 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0 +char id=69 x=155 y=87 width=28 height=37 xoffset=1 yoffset=10 xadvance=27 page=0 chnl=0 +char id=66 x=183 y=87 width=30 height=37 xoffset=1 yoffset=7 xadvance=29 page=0 chnl=0 +char id=65 x=213 y=87 width=30 height=37 xoffset=0 yoffset=8 xadvance=29 page=0 chnl=0 +char id=38 x=0 y=124 width=32 height=36 xoffset=0 yoffset=7 xadvance=29 page=0 chnl=0 +char id=64 x=32 y=124 width=40 height=36 xoffset=0 yoffset=10 xadvance=33 page=0 chnl=0 +char id=57 x=72 y=124 width=21 height=36 xoffset=1 yoffset=9 xadvance=20 page=0 chnl=0 +char id=56 x=93 y=124 width=21 height=36 xoffset=1 yoffset=7 xadvance=20 page=0 chnl=0 +char id=55 x=114 y=124 width=21 height=36 xoffset=1 yoffset=9 xadvance=20 page=0 chnl=0 +char id=54 x=135 y=124 width=21 height=36 xoffset=1 yoffset=9 xadvance=20 page=0 chnl=0 +char id=53 x=156 y=124 width=21 height=36 xoffset=1 yoffset=10 xadvance=20 page=0 chnl=0 +char id=52 x=177 y=124 width=21 height=36 xoffset=1 yoffset=7 xadvance=21 page=0 chnl=0 +char id=51 x=198 y=124 width=21 height=36 xoffset=1 yoffset=9 xadvance=20 page=0 chnl=0 +char id=50 x=219 y=124 width=22 height=36 xoffset=1 yoffset=11 xadvance=21 page=0 chnl=0 +char id=120 x=0 y=160 width=31 height=36 xoffset=0 yoffset=8 xadvance=28 page=0 chnl=0 +char id=119 x=31 y=160 width=46 height=36 xoffset=0 yoffset=10 xadvance=39 page=0 chnl=0 +char id=117 x=77 y=160 width=29 height=36 xoffset=1 yoffset=10 xadvance=27 page=0 chnl=0 +char id=115 x=106 y=160 width=26 height=36 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0 +char id=114 x=132 y=160 width=29 height=36 xoffset=1 yoffset=9 xadvance=28 page=0 chnl=0 +char id=110 x=161 y=160 width=29 height=36 xoffset=1 yoffset=9 xadvance=28 page=0 chnl=0 +char id=109 x=190 y=160 width=38 height=36 xoffset=1 yoffset=9 xadvance=37 page=0 chnl=0 +char id=108 x=0 y=196 width=29 height=36 xoffset=0 yoffset=7 xadvance=24 page=0 chnl=0 +char id=106 x=29 y=196 width=24 height=36 xoffset=1 yoffset=8 xadvance=22 page=0 chnl=0 +char id=104 x=53 y=196 width=31 height=36 xoffset=1 yoffset=9 xadvance=30 page=0 chnl=0 +char id=100 x=84 y=196 width=29 height=36 xoffset=1 yoffset=9 xadvance=27 page=0 chnl=0 +char id=99 x=113 y=196 width=27 height=36 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0 +char id=97 x=140 y=196 width=31 height=36 xoffset=0 yoffset=8 xadvance=29 page=0 chnl=0 +char id=90 x=171 y=196 width=25 height=36 xoffset=1 yoffset=8 xadvance=24 page=0 chnl=0 +char id=89 x=196 y=196 width=30 height=36 xoffset=0 yoffset=9 xadvance=28 page=0 chnl=0 +char id=88 x=0 y=232 width=31 height=36 xoffset=0 yoffset=10 xadvance=28 page=0 chnl=0 +char id=85 x=31 y=232 width=29 height=36 xoffset=1 yoffset=9 xadvance=27 page=0 chnl=0 +char id=83 x=60 y=232 width=26 height=36 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0 +char id=82 x=86 y=232 width=30 height=36 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0 +char id=79 x=116 y=232 width=29 height=36 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0 +char id=78 x=145 y=232 width=30 height=36 xoffset=1 yoffset=10 xadvance=29 page=0 chnl=0 +char id=77 x=175 y=232 width=39 height=36 xoffset=1 yoffset=10 xadvance=38 page=0 chnl=0 +char id=76 x=214 y=232 width=29 height=36 xoffset=0 yoffset=8 xadvance=24 page=0 chnl=0 +char id=75 x=0 y=268 width=29 height=36 xoffset=1 yoffset=8 xadvance=27 page=0 chnl=0 +char id=72 x=29 y=268 width=30 height=36 xoffset=1 yoffset=9 xadvance=29 page=0 chnl=0 +char id=71 x=59 y=268 width=30 height=36 xoffset=1 yoffset=9 xadvance=29 page=0 chnl=0 +char id=68 x=89 y=268 width=29 height=36 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0 +char id=67 x=118 y=268 width=27 height=36 xoffset=1 yoffset=9 xadvance=25 page=0 chnl=0 +char id=92 x=145 y=268 width=37 height=35 xoffset=1 yoffset=9 xadvance=37 page=0 chnl=0 +char id=33 x=182 y=268 width=9 height=35 xoffset=2 yoffset=10 xadvance=10 page=0 chnl=0 +char id=48 x=191 y=268 width=21 height=35 xoffset=2 yoffset=10 xadvance=21 page=0 chnl=0 +char id=49 x=212 y=268 width=14 height=35 xoffset=1 yoffset=9 xadvance=13 page=0 chnl=0 +char id=121 x=0 y=304 width=30 height=35 xoffset=0 yoffset=11 xadvance=27 page=0 chnl=0 +char id=118 x=30 y=304 width=29 height=35 xoffset=0 yoffset=9 xadvance=26 page=0 chnl=0 +char id=112 x=59 y=304 width=26 height=35 xoffset=1 yoffset=9 xadvance=24 page=0 chnl=0 +char id=111 x=85 y=304 width=29 height=35 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0 +char id=107 x=114 y=304 width=29 height=35 xoffset=1 yoffset=9 xadvance=27 page=0 chnl=0 +char id=105 x=143 y=304 width=15 height=35 xoffset=1 yoffset=10 xadvance=14 page=0 chnl=0 +char id=103 x=158 y=304 width=30 height=35 xoffset=1 yoffset=9 xadvance=29 page=0 chnl=0 +char id=86 x=188 y=304 width=29 height=35 xoffset=0 yoffset=8 xadvance=26 page=0 chnl=0 +char id=80 x=217 y=304 width=26 height=35 xoffset=1 yoffset=11 xadvance=24 page=0 chnl=0 +char id=73 x=0 y=339 width=14 height=35 xoffset=1 yoffset=10 xadvance=13 page=0 chnl=0 +char id=35 x=14 y=339 width=27 height=34 xoffset=0 yoffset=12 xadvance=22 page=0 chnl=0 +char id=59 x=41 y=339 width=10 height=32 xoffset=2 yoffset=19 xadvance=10 page=0 chnl=0 +char id=124 x=51 y=339 width=17 height=28 xoffset=1 yoffset=14 xadvance=16 page=0 chnl=0 +char id=125 x=68 y=339 width=17 height=28 xoffset=1 yoffset=17 xadvance=15 page=0 chnl=0 +char id=123 x=85 y=339 width=17 height=28 xoffset=1 yoffset=17 xadvance=15 page=0 chnl=0 +char id=42 x=102 y=339 width=29 height=27 xoffset=0 yoffset=12 xadvance=26 page=0 chnl=0 +char id=60 x=131 y=339 width=66 height=26 xoffset=1 yoffset=17 xadvance=65 page=0 chnl=0 +char id=58 x=197 y=339 width=9 height=26 xoffset=2 yoffset=19 xadvance=10 page=0 chnl=0 +char id=62 x=0 y=374 width=66 height=25 xoffset=1 yoffset=17 xadvance=66 page=0 chnl=0 +char id=43 x=66 y=374 width=22 height=20 xoffset=0 yoffset=15 xadvance=19 page=0 chnl=0 +char id=44 x=88 y=374 width=8 height=16 xoffset=2 yoffset=34 xadvance=9 page=0 chnl=0 +char id=34 x=96 y=374 width=16 height=15 xoffset=0 yoffset=10 xadvance=14 page=0 chnl=0 +char id=39 x=112 y=374 width=8 height=13 xoffset=1 yoffset=10 xadvance=7 page=0 chnl=0 +char id=61 x=120 y=374 width=15 height=10 xoffset=2 yoffset=22 xadvance=16 page=0 chnl=0 +char id=46 x=135 y=374 width=10 height=9 xoffset=2 yoffset=35 xadvance=10 page=0 chnl=0 +char id=96 x=145 y=374 width=12 height=8 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0 +char id=45 x=157 y=374 width=15 height=5 xoffset=2 yoffset=23 xadvance=16 page=0 chnl=0 +kernings count=-1 diff --git a/res/chapter6/fonts/bitmapFontTest.png b/res/chapter6/fonts/bitmapFontTest.png new file mode 100755 index 0000000..112328f Binary files /dev/null and b/res/chapter6/fonts/bitmapFontTest.png differ diff --git a/res/chapter6/fonts/labelatlasimg.png b/res/chapter6/fonts/labelatlasimg.png new file mode 100644 index 0000000..51805a1 Binary files /dev/null and b/res/chapter6/fonts/labelatlasimg.png differ diff --git a/res/chapter6/leftNormal.png b/res/chapter6/leftNormal.png new file mode 100644 index 0000000..a3c16ad Binary files /dev/null and b/res/chapter6/leftNormal.png differ diff --git a/res/chapter6/leftSelected.png b/res/chapter6/leftSelected.png new file mode 100644 index 0000000..ffa527c Binary files /dev/null and b/res/chapter6/leftSelected.png differ diff --git a/res/chapter6/menuItemSpriteNormal.png b/res/chapter6/menuItemSpriteNormal.png new file mode 100644 index 0000000..54ade0d Binary files /dev/null and b/res/chapter6/menuItemSpriteNormal.png differ diff --git a/res/chapter6/menuItemSpriteSelected.png b/res/chapter6/menuItemSpriteSelected.png new file mode 100644 index 0000000..ca78a26 Binary files /dev/null and b/res/chapter6/menuItemSpriteSelected.png differ diff --git a/res/chapter6/restartNormal.png b/res/chapter6/restartNormal.png new file mode 100644 index 0000000..6b51dc4 Binary files /dev/null and b/res/chapter6/restartNormal.png differ diff --git a/res/chapter6/restartSelected.png b/res/chapter6/restartSelected.png new file mode 100644 index 0000000..ef1f2b4 Binary files /dev/null and b/res/chapter6/restartSelected.png differ diff --git a/res/chapter6/rightNormal.png b/res/chapter6/rightNormal.png new file mode 100644 index 0000000..606181f Binary files /dev/null and b/res/chapter6/rightNormal.png differ diff --git a/res/chapter6/rightSelected.png b/res/chapter6/rightSelected.png new file mode 100644 index 0000000..8cd548b Binary files /dev/null and b/res/chapter6/rightSelected.png differ diff --git a/res/chapter9/Blue_Front1.png b/res/chapter9/Blue_Front1.png new file mode 100755 index 0000000..029ff5d Binary files /dev/null and b/res/chapter9/Blue_Front1.png differ diff --git a/res/chapter10/CloseNormal.png b/res/chapter9/CloseNormal.png similarity index 100% rename from res/chapter10/CloseNormal.png rename to res/chapter9/CloseNormal.png diff --git a/res/chapter10/CloseSelected.png b/res/chapter9/CloseSelected.png similarity index 100% rename from res/chapter10/CloseSelected.png rename to res/chapter9/CloseSelected.png diff --git a/res/chapter10/Girl_Face.png b/res/chapter9/Girl_Face.png similarity index 100% rename from res/chapter10/Girl_Face.png rename to res/chapter9/Girl_Face.png diff --git a/res/chapter10/Girl_Glasses01.png b/res/chapter9/Girl_Glasses01.png similarity index 100% rename from res/chapter10/Girl_Glasses01.png rename to res/chapter9/Girl_Glasses01.png diff --git a/res/chapter10/Girl_Hair01.png b/res/chapter9/Girl_Hair01.png similarity index 100% rename from res/chapter10/Girl_Hair01.png rename to res/chapter9/Girl_Hair01.png diff --git a/res/chapter10/Girl_Hair02.png b/res/chapter9/Girl_Hair02.png similarity index 100% rename from res/chapter10/Girl_Hair02.png rename to res/chapter9/Girl_Hair02.png diff --git a/res/chapter10/Girl_Hand.png b/res/chapter9/Girl_Hand.png similarity index 100% rename from res/chapter10/Girl_Hand.png rename to res/chapter9/Girl_Hand.png diff --git a/res/chapter10/Girl_LowerBody01.png b/res/chapter9/Girl_LowerBody01.png similarity index 100% rename from res/chapter10/Girl_LowerBody01.png rename to res/chapter9/Girl_LowerBody01.png diff --git a/res/chapter10/Girl_LowerBody02.png b/res/chapter9/Girl_LowerBody02.png similarity index 100% rename from res/chapter10/Girl_LowerBody02.png rename to res/chapter9/Girl_LowerBody02.png diff --git a/res/chapter10/Girl_Shoes01.png b/res/chapter9/Girl_Shoes01.png similarity index 100% rename from res/chapter10/Girl_Shoes01.png rename to res/chapter9/Girl_Shoes01.png diff --git a/res/chapter10/Girl_Shoes02.png b/res/chapter9/Girl_Shoes02.png similarity index 100% rename from res/chapter10/Girl_Shoes02.png rename to res/chapter9/Girl_Shoes02.png diff --git a/res/chapter10/Girl_UpperBody01.png b/res/chapter9/Girl_UpperBody01.png similarity index 100% rename from res/chapter10/Girl_UpperBody01.png rename to res/chapter9/Girl_UpperBody01.png diff --git a/res/chapter10/Girl_UpperBody02.png b/res/chapter9/Girl_UpperBody02.png similarity index 100% rename from res/chapter10/Girl_UpperBody02.png rename to res/chapter9/Girl_UpperBody02.png diff --git a/res/chapter10/HelloWorld.png b/res/chapter9/HelloWorld.png similarity index 100% rename from res/chapter10/HelloWorld.png rename to res/chapter9/HelloWorld.png diff --git a/res/chapter10/ReskinGirl.c3b b/res/chapter9/ReskinGirl.c3b similarity index 100% rename from res/chapter10/ReskinGirl.c3b rename to res/chapter9/ReskinGirl.c3b diff --git a/res/chapter10/Xie_01.png b/res/chapter9/Xie_01.png similarity index 100% rename from res/chapter10/Xie_01.png rename to res/chapter9/Xie_01.png diff --git a/res/chapter10/arx.png b/res/chapter9/arx.png similarity index 100% rename from res/chapter10/arx.png rename to res/chapter9/arx.png diff --git a/res/chapter10/axe.c3b b/res/chapter9/axe.c3b similarity index 100% rename from res/chapter10/axe.c3b rename to res/chapter9/axe.c3b diff --git a/res/chapter10/body.png b/res/chapter9/body.png similarity index 100% rename from res/chapter10/body.png rename to res/chapter9/body.png diff --git a/res/chapter10/boss.c3b b/res/chapter9/boss.c3b similarity index 100% rename from res/chapter10/boss.c3b rename to res/chapter9/boss.c3b diff --git a/res/chapter10/boss.png b/res/chapter9/boss.png similarity index 100% rename from res/chapter10/boss.png rename to res/chapter9/boss.png diff --git a/res/chapter10/fonts/Marker Felt.ttf b/res/chapter9/fonts/Marker Felt.ttf similarity index 100% rename from res/chapter10/fonts/Marker Felt.ttf rename to res/chapter9/fonts/Marker Felt.ttf diff --git a/res/chapter10/girl.c3b b/res/chapter9/girl.c3b similarity index 100% rename from res/chapter10/girl.c3b rename to res/chapter9/girl.c3b diff --git a/res/chapter10/monguger.tga b/res/chapter9/monguger.tga similarity index 100% rename from res/chapter10/monguger.tga rename to res/chapter9/monguger.tga diff --git a/res/chapter10/orc.c3b b/res/chapter9/orc.c3b similarity index 100% rename from res/chapter10/orc.c3b rename to res/chapter9/orc.c3b diff --git a/res/chapter9/plane.obj b/res/chapter9/plane.obj new file mode 100644 index 0000000..011dab6 --- /dev/null +++ b/res/chapter9/plane.obj @@ -0,0 +1,103 @@ +# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware +# ´´½¨µÄÎļþ:15.12.2014 14:36:22 + +mtllib plane.mtl + +# +# object Plane001 +# + +v -12.5000 0.0000 12.5000 +v -6.2500 0.0000 12.5000 +v -6.2500 0.0000 6.2500 +v -12.5000 0.0000 6.2500 +v 0.0000 0.0000 12.5000 +v 0.0000 0.0000 6.2500 +v 6.2500 0.0000 12.5000 +v 6.2500 0.0000 6.2500 +v 12.5000 0.0000 12.5000 +v 12.5000 0.0000 6.2500 +v -6.2500 0.0000 -0.0000 +v -12.5000 0.0000 -0.0000 +v 0.0000 0.0000 -0.0000 +v 6.2500 0.0000 -0.0000 +v 12.5000 0.0000 -0.0000 +v -6.2500 0.0000 -6.2500 +v -12.5000 0.0000 -6.2500 +v 0.0000 0.0000 -6.2500 +v 6.2500 0.0000 -6.2500 +v 12.5000 0.0000 -6.2500 +v -6.2500 0.0000 -12.5000 +v -12.5000 0.0000 -12.5000 +v 0.0000 0.0000 -12.5000 +v 6.2500 0.0000 -12.5000 +v 12.5000 0.0000 -12.5000 +# 25 vertices + +vn 0.0000 1.0000 -0.0000 +# 1 vertex normals + +vt 0.0000 0.0000 0.0000 +vt 0.2500 0.0000 0.0000 +vt 0.2500 0.2500 0.0000 +vt 0.0000 0.2500 0.0000 +vt 0.5000 0.0000 0.0000 +vt 0.5000 0.2500 0.0000 +vt 0.7500 0.0000 0.0000 +vt 0.7500 0.2500 0.0000 +vt 1.0000 0.0000 0.0000 +vt 1.0000 0.2500 0.0000 +vt 0.2500 0.5000 0.0000 +vt 0.0000 0.5000 0.0000 +vt 0.5000 0.5000 0.0000 +vt 0.7500 0.5000 0.0000 +vt 1.0000 0.5000 0.0000 +vt 0.2500 0.7500 0.0000 +vt 0.0000 0.7500 0.0000 +vt 0.5000 0.7500 0.0000 +vt 0.7500 0.7500 0.0000 +vt 1.0000 0.7500 0.0000 +vt 0.2500 1.0000 0.0000 +vt 0.0000 1.0000 0.0000 +vt 0.5000 1.0000 0.0000 +vt 0.7500 1.0000 0.0000 +vt 1.0000 1.0000 0.0000 +# 25 texture coords + +g Plane001 +usemtl 01___Default +s 1 +f 1/1/1 2/2/1 3/3/1 +f 3/3/1 4/4/1 1/1/1 +f 2/2/1 5/5/1 6/6/1 +f 6/6/1 3/3/1 2/2/1 +f 5/5/1 7/7/1 8/8/1 +f 8/8/1 6/6/1 5/5/1 +f 7/7/1 9/9/1 10/10/1 +f 10/10/1 8/8/1 7/7/1 +f 4/4/1 3/3/1 11/11/1 +f 11/11/1 12/12/1 4/4/1 +f 3/3/1 6/6/1 13/13/1 +f 13/13/1 11/11/1 3/3/1 +f 6/6/1 8/8/1 14/14/1 +f 14/14/1 13/13/1 6/6/1 +f 8/8/1 10/10/1 15/15/1 +f 15/15/1 14/14/1 8/8/1 +f 12/12/1 11/11/1 16/16/1 +f 16/16/1 17/17/1 12/12/1 +f 11/11/1 13/13/1 18/18/1 +f 18/18/1 16/16/1 11/11/1 +f 13/13/1 14/14/1 19/19/1 +f 19/19/1 18/18/1 13/13/1 +f 14/14/1 15/15/1 20/20/1 +f 20/20/1 19/19/1 14/14/1 +f 17/17/1 16/16/1 21/21/1 +f 21/21/1 22/22/1 17/17/1 +f 16/16/1 18/18/1 23/23/1 +f 23/23/1 21/21/1 16/16/1 +f 18/18/1 19/19/1 24/24/1 +f 24/24/1 23/23/1 18/18/1 +f 19/19/1 20/20/1 25/25/1 +f 25/25/1 24/24/1 19/19/1 +# 32 faces + diff --git a/res/chapter9/planetex.png b/res/chapter9/planetex.png new file mode 100644 index 0000000..39ebb79 Binary files /dev/null and b/res/chapter9/planetex.png differ diff --git a/res/chapter9/sphere.c3b b/res/chapter9/sphere.c3b new file mode 100755 index 0000000..3969dd7 Binary files /dev/null and b/res/chapter9/sphere.c3b differ diff --git a/res/chapter9/spheretex.png b/res/chapter9/spheretex.png new file mode 100755 index 0000000..94eed4b Binary files /dev/null and b/res/chapter9/spheretex.png differ diff --git a/res/chapter10/tortoise.c3b b/res/chapter9/tortoise.c3b similarity index 100% rename from res/chapter10/tortoise.c3b rename to res/chapter9/tortoise.c3b diff --git a/res/chapter10/tortoise.png b/res/chapter9/tortoise.png similarity index 100% rename from res/chapter10/tortoise.png rename to res/chapter9/tortoise.png diff --git a/res/chapter10/zhujue.FBX b/res/chapter9/zhujue.FBX similarity index 100% rename from res/chapter10/zhujue.FBX rename to res/chapter9/zhujue.FBX diff --git a/res/chapter10/zhujue.c3b b/res/chapter9/zhujue.c3b similarity index 100% rename from res/chapter10/zhujue.c3b rename to res/chapter9/zhujue.c3b diff --git a/res/chapter10/zhujue.c3t b/res/chapter9/zhujue.c3t similarity index 100% rename from res/chapter10/zhujue.c3t rename to res/chapter9/zhujue.c3t diff --git a/res/chapter10/zhujue.png b/res/chapter9/zhujue.png similarity index 100% rename from res/chapter10/zhujue.png rename to res/chapter9/zhujue.png diff --git a/res/chapter10/zhujue_jian.png b/res/chapter9/zhujue_jian.png similarity index 100% rename from res/chapter10/zhujue_jian.png rename to res/chapter9/zhujue_jian.png diff --git a/res/dot.png b/res/dot.png new file mode 100644 index 0000000..d479dbd Binary files /dev/null and b/res/dot.png differ diff --git a/src/chapter10/Chapter10_1.h b/src/chapter10/Chapter10_1.h deleted file mode 100644 index d590706..0000000 --- a/src/chapter10/Chapter10_1.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef __CHAPTER_10_1_H__ -#define __CHAPTER_10_1_H__ - -#include "cocos2d.h" - -USING_NS_CC; - -class Chapter10_1 : public Ref -{ - public: - static cocos2d::Scene* createScene(); -}; - -#endif // __CHAPTER_10_1_H__ diff --git a/src/chapter10/Chapter10_4.h b/src/chapter10/Chapter10_4.h deleted file mode 100644 index 8f11a47..0000000 --- a/src/chapter10/Chapter10_4.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef __CHAPTER_10_4_H__ -#define __CHAPTER_10_4_H__ - -#include "cocos2d.h" - -USING_NS_CC; - -class Chapter10_4 : public Ref -{ - public: - static cocos2d::Scene* createScene(); -}; - -#endif // __CHAPTER_10_3_H__ diff --git a/src/chapter12/AppDelegate.cpp b/src/chapter12/AppDelegate.cpp new file mode 100644 index 0000000..e481921 --- /dev/null +++ b/src/chapter12/AppDelegate.cpp @@ -0,0 +1,55 @@ +#include "AppDelegate.h" +#include "Chapter12.h" + +USING_NS_CC; + +AppDelegate::AppDelegate() { + +} + +AppDelegate::~AppDelegate() +{ +} + +//if you want a different context,just modify the value of glContextAttrs +//it will takes effect on all platforms +void AppDelegate::initGLContextAttrs() +{ + //set OpenGL context attributions,now can only set six attributions: + //red,green,blue,alpha,depth,stencil + GLContextAttrs glContextAttrs = {8, 8, 8, 8, 24, 8}; + + GLView::setGLContextAttrs(glContextAttrs); +} + +bool AppDelegate::applicationDidFinishLaunching() { + // initialize director + auto director = Director::getInstance(); + auto glview = director->getOpenGLView(); + + if(!glview) { + glview = GLViewImpl::create("My Game"); + director->setOpenGLView(glview); + } + /*glview->setFrameSize(480,320); + director->setContentScaleFactor(2.0f); + glview->setDesignResolutionSize(480, 320, ResolutionPolicy::SHOW_ALL);*/ + + FileUtils::getInstance()->addSearchPath("chapter12"); + + // create a scene. it's an autorelease object + auto scene = Chapter12::createScene(); + director->runWithScene(scene); + + return true; +} + +// This function will be called when the app is inactive. When comes a phone call,it's be invoked too +void AppDelegate::applicationDidEnterBackground() { + Director::getInstance()->stopAnimation(); +} + +// this function will be called when the app is active again +void AppDelegate::applicationWillEnterForeground() { + Director::getInstance()->startAnimation(); +} diff --git a/src/chapter10/AppDelegate.h b/src/chapter12/AppDelegate.h similarity index 100% rename from src/chapter10/AppDelegate.h rename to src/chapter12/AppDelegate.h diff --git a/src/chapter12/Chapter12.cpp b/src/chapter12/Chapter12.cpp new file mode 100644 index 0000000..7592a8f --- /dev/null +++ b/src/chapter12/Chapter12.cpp @@ -0,0 +1,436 @@ +#include "Chapter12.h" + +USING_NS_CC; + +static Size s_visibleSize; +static Vec2 s_origin; +static Vec2 s_centre; +static Scene* s_currScene; +static const int DRAG_BODYS_TAG = 0x80; + +//===================================================================================== +bool PhysicsDemoCorrelationToSprite::init() +{ + if (PhysicsDemo::init()) { + //create a static PhysicsBody + auto physicsBody = PhysicsBody::createBox(Size(65.0f , 81.0f ),PhysicsMaterial(0.1f, 1.0f, 0.0f)); + physicsBody->setDynamic(false); + + //create a sprite + auto sprite = Sprite::create("whiteSprite.png"); + sprite->setPosition(s_centre); + addChild(sprite); + + //make physicsBody associated with sprite + sprite->setPhysicsBody(physicsBody); + + //add five dynamic body + for (int i = 0; i < 5; ++i) + { + physicsBody = PhysicsBody::createBox(Size(65.0f , 81.0f ),PhysicsMaterial(0.1f, 1.0f, 0.0f)); + //set the body isn't affected by the physics world's gravitational force + physicsBody->setGravityEnable(false); + //set initial velocity of physicsBody + physicsBody->setVelocity(Vec2(cocos2d::random(-500,500),cocos2d::random(-500,500))); + physicsBody->setTag(DRAG_BODYS_TAG); + + sprite = Sprite::create("blueSprite.png"); + sprite->setPosition(Vec2(s_centre.x + cocos2d::random(-300 ,300 ),s_centre.y + cocos2d::random(-300 ,300 ))); + sprite->setPhysicsBody(physicsBody); + addChild(sprite); + } + + return true; + } + + return false; +} + +std::string PhysicsDemoCorrelationToSprite::subtitle() const +{ + return "Make body correlation to sprite.Please drag the sprites."; +} + +//===================================================================================== +bool PhysicsDemoCollisionFiltering::init() +{ + if (PhysicsDemo::init()) { + auto sprite1 = addSpriteAtPosition(Vec2(s_centre.x - 150 ,s_centre.y)); + sprite1->getPhysicsBody()->setCategoryBitmask(0x02); // 0010 + sprite1->getPhysicsBody()->setCollisionBitmask(0x01); // 0001 + + sprite1 = addSpriteAtPosition(Vec2(s_centre.x - 150 ,s_centre.y + 100 )); + sprite1->getPhysicsBody()->setCategoryBitmask(0x02); // 0010 + sprite1->getPhysicsBody()->setCollisionBitmask(0x01); // 0001 + + auto sprite2 = addSpriteAtPosition(Vec2(s_centre.x + 150 ,s_centre.y),1); + sprite2->getPhysicsBody()->setCategoryBitmask(0x01); // 0001 + sprite2->getPhysicsBody()->setCollisionBitmask(0x02); // 0010 + + auto sprite3 = addSpriteAtPosition(Vec2(s_centre.x + 150 ,s_centre.y + 100 ),2); + sprite3->getPhysicsBody()->setCategoryBitmask(0x03); // 0011 + sprite3->getPhysicsBody()->setCollisionBitmask(0x03); // 0011 + + return true; + } + + return false; +} + +std::string PhysicsDemoCollisionFiltering::subtitle() const +{ + return "Collision Filtering.Please drag the sprites"; +} + +//===================================================================================== +#define STATIC_SPRITE_TAG 10 +bool PhysicsDemoCollisionProcessing::init() +{ + if (PhysicsDemo::init()) { + + auto sprite = addSpriteAtPosition(s_centre,1); + sprite->setTag(STATIC_SPRITE_TAG); + sprite->getPhysicsBody()->setContactTestBitmask(0xFFFFFFFF); + sprite->getPhysicsBody()->setDynamic(false); + + //add contact event listener + auto contactListener = EventListenerPhysicsContact::create(); + contactListener->onContactBegin = CC_CALLBACK_1(PhysicsDemoCollisionProcessing::onContactBegin, this); + _eventDispatcher->addEventListenerWithSceneGraphPriority(contactListener, this); + + schedule(CC_SCHEDULE_SELECTOR(PhysicsDemoCollisionProcessing::tick), 0.3f); + return true; + } + + return true; +} + +void PhysicsDemoCollisionProcessing::tick(float dt) +{ + auto sprite = addSpriteAtPosition(Vec2(s_centre.x + cocos2d::random(-300 ,300 ),s_centre.y + cocos2d::random(-300 ,300 ))); + auto physicsBody = sprite->getPhysicsBody(); + physicsBody->setVelocity(Vec2(cocos2d::random(-500 ,500 ),cocos2d::random(-500 ,500 ))); + physicsBody->setContactTestBitmask(0xFFFFFFFF); +} + +bool PhysicsDemoCollisionProcessing::onContactBegin(PhysicsContact& contact) +{ + auto nodeA = contact.getShapeA()->getBody()->getNode(); + auto nodeB = contact.getShapeB()->getBody()->getNode(); + if (nodeA && nodeB) + { + if (nodeA->getTag() == STATIC_SPRITE_TAG) + { + nodeB->removeFromParentAndCleanup(true); + } + else if (nodeB->getTag() == STATIC_SPRITE_TAG) + { + nodeA->removeFromParentAndCleanup(true); + } + } + + return true; +} + +std::string PhysicsDemoCollisionProcessing::subtitle() const +{ + return "Collision Processing"; +} + +//===================================================================================== +bool PhysicsDemoRayTest::init() +{ + if (PhysicsDemo::init()) { + _angle = 0.0f; + _drawNode = nullptr; + + auto touchListener = EventListenerTouchAllAtOnce::create(); + touchListener->onTouchesEnded = [=](const std::vector& touches, Event* event){ + for( auto &touch: touches) + { + auto sprite = addSpriteAtPosition(touch->getLocation()); + sprite->getPhysicsBody()->setGravityEnable(false); + } + }; + _eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener, this); + + schedule(CC_SCHEDULE_SELECTOR(PhysicsDemoRayTest::tick), 0.03f); + return true; + } + + return false; +} + +void PhysicsDemoRayTest::tick(float dt) +{ + Vec2 d(300 * cosf(_angle), 300 * sinf(_angle)); + Vec2 point2 = s_centre + d; + if (_drawNode) + { + removeChild(_drawNode); + } + _drawNode = DrawNode::create(); + +#define MAX_MULTI_RAYCAST_NUM 5 + + Vec2 points[MAX_MULTI_RAYCAST_NUM]; + int num = 0; + PhysicsRayCastCallbackFunc func = [&points, &num](PhysicsWorld& world, const PhysicsRayCastInfo& info, void* data)->bool + { + if (num < MAX_MULTI_RAYCAST_NUM) + { + points[num++] = info.contact; + } + return true; + }; + + s_currScene->getPhysicsWorld()->rayCast(func, s_centre, point2, nullptr); + + _drawNode->drawSegment(s_centre, point2, 1, Color4F::RED); + for (int i = 0; i < num; ++i) + { + _drawNode->drawDot(points[i], 3, Color4F(1.0f, 1.0f, 1.0f, 1.0f)); + } + addChild(_drawNode); + + _angle += 1.5f * (float)M_PI / 180.0f; +} + +std::string PhysicsDemoRayTest::subtitle() const +{ + return "Ray Test.Touch screen to add sprite."; +} + +//===================================================================================== +bool PhysicsDemoJointsDistance::init() +{ + if (PhysicsDemo::init()) { + auto sprite1 = addSpriteAtPosition(Vec2(s_centre.x - 100,s_centre.y)); + auto sprite2 = addSpriteAtPosition(Vec2(s_centre.x + 100,s_centre.y),1); + + PhysicsJointDistance* joint = PhysicsJointDistance::construct(sprite1->getPhysicsBody(), sprite2->getPhysicsBody(), Point::ZERO, Point::ZERO); + s_currScene->getPhysicsWorld()->addJoint(joint); + return true; + } + + return false; +} + +std::string PhysicsDemoJointsDistance::subtitle() const +{ + return "Joints Test:Distance"; +} + +//========================================================================== +#define CL(__className__) [](){ return __className__::create();} + +namespace +{ + static std::function createFunctions[] = { + CL(PhysicsDemoCorrelationToSprite), + CL(PhysicsDemoCollisionFiltering), + CL(PhysicsDemoCollisionProcessing), + CL(PhysicsDemoRayTest), + CL(PhysicsDemoJointsDistance), + }; + + static int sceneIdx = -1; + +#define MAX_LAYER (sizeof(createFunctions) / sizeof(createFunctions[0])) + + static Layer* next() + { + sceneIdx++; + sceneIdx = sceneIdx % MAX_LAYER; + + auto layer = (createFunctions[sceneIdx])(); + return layer; + } + + static Layer* back() + { + sceneIdx--; + int total = MAX_LAYER; + if( sceneIdx < 0 ) + sceneIdx += total; + + auto layer = (createFunctions[sceneIdx])(); + return layer; + } + + static Layer* restart() + { + auto layer = (createFunctions[sceneIdx])(); + return layer; + } +} + +bool PhysicsDemo::init() +{ + if (Layer::init()) + { + s_currScene->getPhysicsWorld()->setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL); + + //create title + TTFConfig ttfConfig("fonts/arial.ttf", 32); + auto titleLabel = Label::createWithTTF(ttfConfig,"Physics Chapter Samples"); + addChild(titleLabel, 9999); + titleLabel->setPosition(Vec2(s_origin.x + s_visibleSize.width/2, s_origin.y + s_visibleSize.height - 30)); + + //create subtitle + std::string strSubtitle = subtitle(); + if( ! strSubtitle.empty() ) + { + ttfConfig.fontSize = 20; + auto subTitleLabel = Label::createWithTTF(ttfConfig, strSubtitle.c_str()); + addChild(subTitleLabel, 9999); + subTitleLabel->setPosition(Vec2(s_origin.x + s_visibleSize.width/2, s_origin.y + s_visibleSize.height - 70)); + } + + //create menu + auto backItem = MenuItemImage::create("leftNormal.png", "leftSelected.png", CC_CALLBACK_1(PhysicsDemo::backCallback, this) ); + auto restartItem = MenuItemImage::create("restartNormal.png", "restartSelected.png", CC_CALLBACK_1(PhysicsDemo::restartCallback, this) ); + auto nextItem = MenuItemImage::create("rightNormal.png", "rightSelected.png", CC_CALLBACK_1(PhysicsDemo::nextCallback, this) ); + + auto menu = Menu::create(backItem, restartItem, nextItem, nullptr); + menu->setPosition(Vec2::ZERO); + addChild(menu, 9999); + + auto restartItemSize = restartItem->getContentSize(); + backItem->setPosition(s_centre.x - restartItemSize.width * 2, s_origin.y + restartItemSize.height / 2); + restartItem->setPosition(s_centre.x, s_origin.y + restartItemSize.height / 2); + nextItem->setPosition(s_centre.x + restartItemSize.width * 2, s_origin.y + restartItemSize.height/2); + + //create border + auto node = Node::create(); + auto physicsBody = PhysicsBody::createEdgeBox(s_visibleSize,PhysicsMaterial(0.1f, 1, 0.0f)); + node->setPhysicsBody(physicsBody); + node->setPosition(s_centre); + this->addChild(node); + + //add touch event listener + auto touchListener = EventListenerTouchOneByOne::create(); + touchListener->onTouchBegan = CC_CALLBACK_2(PhysicsDemo::onTouchBegan, this); + touchListener->onTouchMoved = CC_CALLBACK_2(PhysicsDemo::onTouchMoved, this); + touchListener->onTouchEnded = CC_CALLBACK_2(PhysicsDemo::onTouchEnded, this); + touchListener->onTouchCancelled = CC_CALLBACK_2(PhysicsDemo::onTouchEnded, this); + _eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener, this); + return true; + } + + return false; +} + +void PhysicsDemo::restartCallback(Ref* sender) +{ + s_currScene = Scene::createWithPhysics(); + s_currScene->addChild( restart() ); + Director::getInstance()->replaceScene(s_currScene); +} + +void PhysicsDemo::nextCallback(Ref* sender) +{ + s_currScene = Scene::createWithPhysics(); + s_currScene->addChild( next() ); + Director::getInstance()->replaceScene(s_currScene); +} + +void PhysicsDemo::backCallback(Ref* sender) +{ + s_currScene = Scene::createWithPhysics(); + s_currScene->addChild( back() ); + Director::getInstance()->replaceScene(s_currScene); +} + +bool PhysicsDemo::onTouchBegan(Touch* touch, Event* event) +{ + auto location = touch->getLocation(); + auto arr = s_currScene->getPhysicsWorld()->getShapes(location); + + PhysicsBody* body = nullptr; + for (auto& obj : arr) + { + if ((obj->getBody()->getTag() & DRAG_BODYS_TAG) != 0) + { + body = obj->getBody(); + break; + } + } + + if (body != nullptr) + { + Node* mouse = Node::create(); + mouse->setPhysicsBody(PhysicsBody::create(PHYSICS_INFINITY, PHYSICS_INFINITY)); + mouse->getPhysicsBody()->setDynamic(false); + mouse->setPosition(location); + this->addChild(mouse); + PhysicsJointPin* joint = PhysicsJointPin::construct(mouse->getPhysicsBody(), body, location); + joint->setMaxForce(5000.0f * body->getMass()); + s_currScene->getPhysicsWorld()->addJoint(joint); + _mouses.insert(std::make_pair(touch->getID(), mouse)); + + return true; + } + + return false; +} + +void PhysicsDemo::onTouchMoved(Touch* touch, Event* event) +{ + auto it = _mouses.find(touch->getID()); + + if (it != _mouses.end()) + { + it->second->setPosition(touch->getLocation()); + } +} + +void PhysicsDemo::onTouchEnded(Touch* touch, Event* event) +{ + auto it = _mouses.find(touch->getID()); + + if (it != _mouses.end()) + { + this->removeChild(it->second); + _mouses.erase(it); + } +} + +Sprite* PhysicsDemo::addSpriteAtPosition(const Vec2& pos, int spriteIndex /* = 0 */, float scale /* = 1.0f */) +{ + static std::string sprites[] = {"blueSprite.png","whiteSprite.png","LightBlueSprite.png"}; + + auto sprite = Sprite::create(sprites[spriteIndex]); + auto physicsBody = PhysicsBody::createBox(Size(65.0f * scale, 81.0f * scale),PhysicsMaterial(0.1f, 1.0f, 0.0f)); + physicsBody->setTag(DRAG_BODYS_TAG); + sprite->setScale(scale); + sprite->setPosition(pos); + //make `PhysicsBody` associated with sprite + sprite->setPhysicsBody(physicsBody); + addChild(sprite); + + return sprite; +} + +Scene* Chapter12::createScene() +{ + sceneIdx = -1; + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // some upfront items that we need + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + s_visibleSize = Director::getInstance()->getVisibleSize(); + s_origin = Director::getInstance()->getVisibleOrigin(); + s_centre = s_origin + s_visibleSize / 2; + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create a scene with physics world for our game to hold everything + // 'scene' is an autorelease object + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + s_currScene = Scene::createWithPhysics(); + + s_currScene->addChild(next()); + + // return the scene + return s_currScene; +} \ No newline at end of file diff --git a/src/chapter12/Chapter12.h b/src/chapter12/Chapter12.h new file mode 100644 index 0000000..c403121 --- /dev/null +++ b/src/chapter12/Chapter12.h @@ -0,0 +1,98 @@ +#ifndef __SAMPLES_CHAPTER_12_H__ +#define __SAMPLES_CHAPTER_12_H__ + +#include "cocos2d.h" + +USING_NS_CC; + +class Chapter12 +{ +public: + static cocos2d::Scene* createScene(); +}; + +class PhysicsDemo : public cocos2d::Layer +{ +public: + virtual std::string subtitle() const { return "";} + + void restartCallback(Ref* sender); + void nextCallback(Ref* sender); + void backCallback(Ref* sender); + + bool onTouchBegan(Touch* touch, Event* event); + void onTouchMoved(Touch* touch, Event* event); + void onTouchEnded(Touch* touch, Event* event); + +protected: + virtual bool init(); + + Sprite* addSpriteAtPosition(const Vec2& pos,int spriteIndex = 0, float scale = 1.0f); + + std::unordered_map _mouses; +}; + +class PhysicsDemoCorrelationToSprite : public PhysicsDemo +{ +public: + CREATE_FUNC(PhysicsDemoCorrelationToSprite); + + virtual std::string subtitle() const override; + +protected: + virtual bool init(); +}; + +class PhysicsDemoCollisionFiltering : public PhysicsDemo +{ +public: + CREATE_FUNC(PhysicsDemoCollisionFiltering); + + virtual std::string subtitle() const override; + +protected: + virtual bool init(); +}; + +class PhysicsDemoCollisionProcessing : public PhysicsDemo +{ +public: + CREATE_FUNC(PhysicsDemoCollisionProcessing); + + virtual std::string subtitle() const override; + + bool onContactBegin(PhysicsContact& contact); + + void tick(float dt); + +protected: + virtual bool init(); +}; + +class PhysicsDemoJointsDistance : public PhysicsDemo +{ +public: + CREATE_FUNC(PhysicsDemoJointsDistance); + + virtual std::string subtitle() const override; + +protected: + virtual bool init(); +}; + +class PhysicsDemoRayTest : public PhysicsDemo +{ +public: + CREATE_FUNC(PhysicsDemoRayTest); + + virtual std::string subtitle() const override; + + void tick(float dt); +protected: + virtual bool init(); + + DrawNode* _drawNode; + float _angle; +}; + +#endif // __SAMPLES_CHAPTER_12_H__ diff --git a/src/chapter13/AppDelegate.cpp b/src/chapter13/AppDelegate.cpp new file mode 100644 index 0000000..5515f4d --- /dev/null +++ b/src/chapter13/AppDelegate.cpp @@ -0,0 +1,63 @@ +#include "AppDelegate.h" +#include "Chapter13.h" + +USING_NS_CC; + +AppDelegate::AppDelegate() { + +} + +AppDelegate::~AppDelegate() +{ +} + +//if you want a different context,just modify the value of glContextAttrs +//it will takes effect on all platforms +void AppDelegate::initGLContextAttrs() +{ + //set OpenGL context attributions,now can only set six attributions: + //red,green,blue,alpha,depth,stencil + GLContextAttrs glContextAttrs = {8, 8, 8, 8, 24, 8}; + + GLView::setGLContextAttrs(glContextAttrs); +} + +bool AppDelegate::applicationDidFinishLaunching() { + // initialize director + auto director = Director::getInstance(); + auto glview = director->getOpenGLView(); + if(!glview) { + glview = GLViewImpl::create("My Game"); + director->setOpenGLView(glview); + } + + // turn on display FPS + //director->setDisplayStats(true); + + // set FPS. the default value is 1.0/60 if you don't call this + director->setAnimationInterval(1.0 / 60); + + // create a scene. it's an autorelease object + auto scene = Chapter13::createScene(); + + // run + director->runWithScene(scene); + + return true; +} + +// This function will be called when the app is inactive. When comes a phone call,it's be invoked too +void AppDelegate::applicationDidEnterBackground() { + Director::getInstance()->stopAnimation(); + + // if you use SimpleAudioEngine, it must be pause + // SimpleAudioEngine::getInstance()->pauseBackgroundMusic(); +} + +// this function will be called when the app is active again +void AppDelegate::applicationWillEnterForeground() { + Director::getInstance()->startAnimation(); + + // if you use SimpleAudioEngine, it must resume here + // SimpleAudioEngine::getInstance()->resumeBackgroundMusic(); +} diff --git a/src/chapter13/AppDelegate.h b/src/chapter13/AppDelegate.h new file mode 100644 index 0000000..625506c --- /dev/null +++ b/src/chapter13/AppDelegate.h @@ -0,0 +1,40 @@ +#ifndef _APP_DELEGATE_H_ +#define _APP_DELEGATE_H_ + +#include "cocos2d.h" + +/** +@brief The cocos2d Application. + +The reason for implement as private inheritance is to hide some interface call by Director. +*/ +class AppDelegate : private cocos2d::Application +{ +public: + AppDelegate(); + virtual ~AppDelegate(); + + virtual void initGLContextAttrs(); + + /** + @brief Implement Director and Scene init code here. + @return true Initialize success, app continue. + @return false Initialize failed, app terminate. + */ + virtual bool applicationDidFinishLaunching(); + + /** + @brief 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/src/chapter13/Chapter13.cpp b/src/chapter13/Chapter13.cpp new file mode 100644 index 0000000..7154a8c --- /dev/null +++ b/src/chapter13/Chapter13.cpp @@ -0,0 +1,100 @@ +#include "Chapter13.h" + +#include + +USING_NS_CC; + +Scene* Chapter13::createScene() +{ + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // some upfront items that we need + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto dirs = Director::getInstance(); + Size visibleSize = dirs->getVisibleSize(); + Vec2 origin = dirs->getVisibleOrigin(); + + Size playingSize = Size(visibleSize.width, visibleSize.height - (visibleSize.height/8)); // actual playing size to work with + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create a scene + // 'scene' is an autorelease object + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto scene = Scene::create(); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create a node to hold non-sprites. + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto nodeItems = Node::create(); + nodeItems->setName("nodeItems"); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create a node to hold menu + // create a menu + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto menuNode = Node::create(); + menuNode->setName("menuNode"); + int index = 2; + + auto menuItem1 = MenuItemFont::create("Play Music"); + menuItem1->setFontNameObj("Marker Felt.ttf"); + menuItem1->setFontSizeObj(32); + menuItem1->setName("menuItem1"); + menuItem1->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40)); + menuItem1->setCallback([&](cocos2d::Ref *sender) { + auto dirs = Director::getInstance()->getRunningScene(); + auto audio = CocosDenshion::SimpleAudioEngine::getInstance(); + + audio->playBackgroundMusic("music.mp3"); + + auto anode = dirs->getChildByName("menuNode"); + auto bnode = anode->getChildByName("menu"); + auto cnode = bnode->getChildByName("menuItem1"); + cnode->setVisible(false); + cnode = bnode->getChildByName("menuItem2"); + cnode->setVisible(true); + }); + + auto menuItem2 = MenuItemFont::create("Stop Music"); + menuItem2->setFontNameObj("Marker Felt.ttf"); + menuItem2->setFontSizeObj(32); + menuItem2->setName("menuItem2"); + menuItem2->setVisible(false); + menuItem2->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40)); + menuItem2->setCallback([&](cocos2d::Ref *sender) { + auto dirs = Director::getInstance()->getRunningScene(); + auto audio = CocosDenshion::SimpleAudioEngine::getInstance(); + + audio->stopBackgroundMusic("music.mp3"); + + auto anode = dirs->getChildByName("menuNode"); + auto bnode = anode->getChildByName("menu"); + auto cnode = bnode->getChildByName("menuItem2"); + cnode->setVisible(false); + cnode = bnode->getChildByName("menuItem1"); + cnode->setVisible(true); + }); + + auto menuItem3 = MenuItemFont::create("Play Effect"); + menuItem3->setFontNameObj("Marker Felt.ttf"); + menuItem3->setFontSizeObj(32); + menuItem3->setName("menuItem3"); + menuItem3->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); + menuItem3->setCallback([&](cocos2d::Ref *sender) { + auto audio = CocosDenshion::SimpleAudioEngine::getInstance(); + + audio->playEffect("alert.mp3"); + }); + + auto menu = Menu::create(menuItem1, menuItem2, menuItem3, NULL); + menu->setName("menu"); + menuNode->addChild(menu, 1); + menu->setPosition(Vec2::ZERO); + + scene->addChild(menuNode, 2); + + // return the scene + return scene; +} diff --git a/src/chapter13/Chapter13.h b/src/chapter13/Chapter13.h new file mode 100644 index 0000000..5f176b8 --- /dev/null +++ b/src/chapter13/Chapter13.h @@ -0,0 +1,16 @@ +#ifndef __CHAPTER13_H__ +#define __CHAPTER13_H__ + +#include "cocos2d.h" + +#include + +USING_NS_CC; + +class Chapter13 : public Ref +{ + public: + static cocos2d::Scene* createScene(); +}; + +#endif // __CHAPTER13_H__ diff --git a/src/chapter2/Chapter2.cpp b/src/chapter2/Chapter2.cpp index 6c24e14..caba2ef 100644 --- a/src/chapter2/Chapter2.cpp +++ b/src/chapter2/Chapter2.cpp @@ -23,27 +23,28 @@ Scene* Chapter2::createScene() // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // create the title dialog // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - auto white = Color4F(1.0f, 0.5f, 0.3f, 1); + auto color = Color4F(1.0f, 0.5f, 0.3f, 1); int verts = 4; - cocos2d::Point stripe1[] = { - cocos2d::Point(0,0), - cocos2d::Point(0,200), - cocos2d::Point(600,200), - cocos2d::Point(600,0) + Vec2 stripe1[] = { + Vec2::ZERO, + Vec2(0,200), + Vec2(600,200), + Vec2(600,0) }; - cocos2d::DrawNode* dotNode1 = cocos2d::DrawNode::create(); + DrawNode* dotNode1 = DrawNode::create(); dotNode1->setContentSize(Size(600, 200)); - dotNode1->drawPolygon(stripe1, verts, white, 0, white); + dotNode1->drawPolygon(stripe1, verts, color, 0, color); dotNode1->setPosition(Vec2(visibleSize.width/2 - (dotNode1->getContentSize().width / 2), playingSize.height - dotNode1->getContentSize().height)); auto label = Label::createWithTTF("Super Cocos Aliens", "Marker Felt.ttf", 64); dotNode1->addChild(label, 1); - label->setPosition(Vec2(dotNode1->getContentSize().width/2, dotNode1->getContentSize().height/2)); + auto dotNodeSize = dotNode1->getContentSize(); + label->setPosition(Vec2(dotNodeSize.width/2, dotNodeSize.height/2)); scene->addChild(dotNode1, -1); @@ -66,19 +67,24 @@ Scene* Chapter2::createScene() labelNode->addChild(player2, 0); labelNode->addChild(player1Score, 0); labelNode->addChild(player2Score, 0); + + auto player1Size = player1->getContentSize(); + auto player1ScoreSize = player1Score->getContentSize(); + auto player2Size = player2->getContentSize(); + auto player2ScoreSize = player2Score->getContentSize(); + + player1->setPosition(Vec2(0 + player1Size.width / 2 + paddingX, + visibleSize.height - player1Size.height / 2 - paddingY)); - player1->setPosition(Vec2(0 + player1->getContentSize().width / 2 + paddingX, - visibleSize.height - player1->getContentSize().height / 2 - paddingY)); - - player1Score->setPosition(Vec2(0 + player1->getPositionX() + player1->getContentSize().width + paddingX, - visibleSize.height - player1->getContentSize().height / 2 - paddingY)); - - player2Score->setPosition(Vec2(visibleSize.width - player2Score->getContentSize().width / 2 - paddingX, - visibleSize.height - player2Score->getContentSize().height / 2 - paddingY)); - - player2->setPosition(Vec2(player2Score->getPositionX() - player2Score->getContentSize().width - paddingX, - visibleSize.height - player2Score->getContentSize().height / 2 - paddingY)); + player1Score->setPosition(Vec2(0 + player1->getPositionX() + player1ScoreSize.width + paddingX, + visibleSize.height - player1ScoreSize.height / 2 - paddingY)); + player2Score->setPosition(Vec2(visibleSize.width - player2ScoreSize.width / 2 - paddingX, + visibleSize.height - player2ScoreSize.height / 2 - paddingY)); + + player2->setPosition(Vec2(player2Score->getPositionX() - player2Size.width - paddingX, + visibleSize.height - player2Size.height / 2 - paddingY)); + scene->addChild(labelNode, -1); @@ -92,18 +98,19 @@ Scene* Chapter2::createScene() // depending upon how large the screen is we need to decide how many blocks to lay down. // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ auto testSprite = Sprite::create("ZigzagForest_Square.png"); + auto spriteSize = testSprite->getContentSize(); - int howMany = std::ceil(visibleSize.width / testSprite->getContentSize().width); + int howMany = std::ceil(visibleSize.width / spriteSize.width); int sX = 0; // act as a counter for setPosition x coordinate. int sY = 0; // act as a counter for setPosition y coordinate. - playingSize = Size(visibleSize.width, visibleSize.height - testSprite->getContentSize().height); + playingSize = Size(visibleSize.width, visibleSize.height - spriteSize.height); for (int i=0; i < howMany; i++) { auto sprite = Sprite::create("ZigzagForest_Square.png"); - sprite->setAnchorPoint(Vec2(0,0)); + sprite->setAnchorPoint(Vec2::ZERO); sprite->setPosition(sX,sY); sX += sprite->getContentSize().width; @@ -124,7 +131,7 @@ Scene* Chapter2::createScene() for (int i=0; i < 5; i++) { auto sprite = Sprite::create("ZigzagGrass_Mud_Round.png"); - sprite->setAnchorPoint(Vec2(0,0)); + sprite->setAnchorPoint(Vec2::ZERO); sprite->setPosition(sX,sY); sX += sprite->getContentSize().width; @@ -169,7 +176,7 @@ Scene* Chapter2::createScene() menuItem1->setFontNameObj("Marker Felt.ttf"); menuItem1->setFontSizeObj(64); - menuItem1->setCallback([&](cocos2d::Ref *sender) { + menuItem1->setCallback([&](Ref *sender) { Director::getInstance()->replaceScene(Chapter2Level1::createScene()); }); diff --git a/src/chapter2/Chapter2Level1.cpp b/src/chapter2/Chapter2Level1.cpp index f6b5b00..a397126 100644 --- a/src/chapter2/Chapter2Level1.cpp +++ b/src/chapter2/Chapter2Level1.cpp @@ -33,10 +33,10 @@ Scene* Chapter2Level1::createScene() auto player1Score = Label::createWithTTF("00000", "Marker Felt.ttf", 32); auto player2Score = Label::createWithTTF("00000", "Marker Felt.ttf", 32); - labelNode->addChild(player1, 0); - labelNode->addChild(player2, 0); - labelNode->addChild(player1Score, 0); - labelNode->addChild(player2Score, 0); + labelNode->addChild(player1, -2); + labelNode->addChild(player1Score, -1); + labelNode->addChild(player2, 1); + labelNode->addChild(player2Score, 2); player1->setPosition(Vec2(0 + player1->getContentSize().width / 2 + paddingX, visibleSize.height - player1->getContentSize().height / 2 - paddingY)); @@ -50,7 +50,7 @@ Scene* Chapter2Level1::createScene() player2->setPosition(Vec2(player2Score->getPositionX() - player2Score->getContentSize().width - paddingX, visibleSize.height - player2Score->getContentSize().height / 2 - paddingY)); - scene->addChild(labelNode, -1); + scene->addChild(labelNode, 0); // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // create a node to hold non-sprites. @@ -79,7 +79,7 @@ Scene* Chapter2Level1::createScene() sX += sprite->getContentSize().width; - nodeItems->addChild(sprite, 0); + nodeItems->addChild(sprite, -1); } testSprite = NULL; @@ -107,7 +107,7 @@ Scene* Chapter2Level1::createScene() sprite->setName("middleBlock1"); } - nodeItems->addChild(sprite, 0); + nodeItems->addChild(sprite, 1); } // right side blocks @@ -127,7 +127,7 @@ Scene* Chapter2Level1::createScene() sprite->setName("middleBlock2"); } - scene->addChild(sprite,0); + scene->addChild(sprite, 1); } // center blocks @@ -142,7 +142,7 @@ Scene* Chapter2Level1::createScene() sX += sprite->getContentSize().width; - nodeItems->addChild(sprite,0); + nodeItems->addChild(sprite, 1); } testSprite = NULL; @@ -161,7 +161,7 @@ Scene* Chapter2Level1::createScene() sprite1->setPosition(100, (visibleSize.height - playingSize.height)); sprite1->setName("mainSprite"); - spriteNode->addChild(sprite1, 0); + spriteNode->addChild(sprite1, 1); scene->addChild(spriteNode, 1); @@ -198,7 +198,7 @@ Scene* Chapter2Level1::createScene() sprite1->setAnchorPoint(Vec2(0,0)); sprite1->setName("childSprite1"); - bnode->addChild(sprite1, 0); + bnode->addChild(sprite1, 1); sprite1->setPosition(dnode->getPositionX(), dnode->getPositionY()); @@ -206,7 +206,7 @@ Scene* Chapter2Level1::createScene() sprite2->setAnchorPoint(Vec2(0,0)); sprite2->setName("childSprite2"); - bnode->addChild(sprite2, 0); + bnode->addChild(sprite2, 1); sprite2->setPosition(dnode->getPositionX() - dnode->getContentSize().width * 3, dnode->getPositionY()); @@ -220,19 +220,27 @@ Scene* Chapter2Level1::createScene() auto anode = Director::getInstance()->getRunningScene()->getChildByName("spriteNode"); auto bnode = anode->getChildByName("mainSprite"); - auto rotateBy = RotateBy::create(2, 40.0f); - auto scaleBy = ScaleTo::create(2, 2.0f); + bnode->setRotation(40.0f); + + auto delay = DelayTime::create(4.0f); + bnode->runAction(delay); + + bnode->setScale(2.0f); + + // You could also use an Action and Sequence combination to do this. + //auto rotateBy = RotateBy::create(2, 40.0f); + //auto scaleBy = ScaleTo::create(2, 2.0f); - auto seq = Sequence::create(rotateBy, scaleBy, NULL); + //auto seq = Sequence::create(rotateBy, scaleBy, NULL); - bnode->runAction(seq); + //bnode->runAction(seq); }, 3, "udpate_key"); }); auto menu = Menu::create(menuItem1, NULL); menu->setName("menu"); - menuNode->addChild(menu, 0); + menuNode->addChild(menu, 1); menu->setPosition(visibleSize.width / 2, visibleSize.height - menuItem1->getContentSize().height * 2); scene->addChild(menuNode, 2); diff --git a/src/chapter10/AppDelegate.cpp b/src/chapter3/AppDelegate.cpp similarity index 94% rename from src/chapter10/AppDelegate.cpp rename to src/chapter3/AppDelegate.cpp index e929360..a98528b 100644 --- a/src/chapter10/AppDelegate.cpp +++ b/src/chapter3/AppDelegate.cpp @@ -1,5 +1,5 @@ #include "AppDelegate.h" -#include "Chapter10.h" +#include "Chapter3.h" USING_NS_CC; @@ -32,13 +32,13 @@ bool AppDelegate::applicationDidFinishLaunching() { } // turn on display FPS - director->setDisplayStats(true); + //director->setDisplayStats(true); // set FPS. the default value is 1.0/60 if you don't call this director->setAnimationInterval(1.0 / 60); // create a scene. it's an autorelease object - auto scene = Chapter10::createScene(); + auto scene = Chapter3::createScene(); // run director->runWithScene(scene); diff --git a/src/chapter3/AppDelegate.h b/src/chapter3/AppDelegate.h new file mode 100644 index 0000000..625506c --- /dev/null +++ b/src/chapter3/AppDelegate.h @@ -0,0 +1,40 @@ +#ifndef _APP_DELEGATE_H_ +#define _APP_DELEGATE_H_ + +#include "cocos2d.h" + +/** +@brief The cocos2d Application. + +The reason for implement as private inheritance is to hide some interface call by Director. +*/ +class AppDelegate : private cocos2d::Application +{ +public: + AppDelegate(); + virtual ~AppDelegate(); + + virtual void initGLContextAttrs(); + + /** + @brief Implement Director and Scene init code here. + @return true Initialize success, app continue. + @return false Initialize failed, app terminate. + */ + virtual bool applicationDidFinishLaunching(); + + /** + @brief 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/src/chapter3/Chapter3.cpp b/src/chapter3/Chapter3.cpp new file mode 100644 index 0000000..30376dc --- /dev/null +++ b/src/chapter3/Chapter3.cpp @@ -0,0 +1,553 @@ +#include "Chapter3.h" + +USING_NS_CC; + +Scene* Chapter3::createScene() +{ + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // some upfront items that we need + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto dirs = Director::getInstance(); + Size visibleSize = dirs->getVisibleSize(); + Vec2 origin = dirs->getVisibleOrigin(); + + Size playingSize = Size(visibleSize.width, visibleSize.height - (visibleSize.height/8)); // actual playing size to work with + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create a scene + // 'scene' is an autorelease object + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto scene = Scene::create(); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create a node to hold non-sprites. + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto nodeItems = Node::create(); + nodeItems->setName("nodeItems"); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create a node to hold menu + // create a menu + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto menuNode = Node::create(); + menuNode->setName("menuNode"); + int index = 2; + + auto menuItem1 = MenuItemFont::create("First: Create a Sprite"); + menuItem1->setFontNameObj("Marker Felt.ttf"); + menuItem1->setFontSizeObj(32); + menuItem1->setName("menuItem1"); + menuItem1->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40)); + menuItem1->setCallback([&](cocos2d::Ref *sender) { + auto dirs = Director::getInstance()->getRunningScene(); + auto newSprite = Sprite::create("Blue_Front1.png"); + newSprite->setPosition(100, 256); + newSprite->setName("sprite1"); + newSprite->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite,1); + + auto anode = dirs->getChildByName("menuNode"); + auto bnode = anode->getChildByName("menu"); + auto cnode = bnode->getChildByName("menuItem1"); + cnode->setVisible(false); + auto dnode = bnode->getChildByName("menuItem2"); + dnode->setVisible(true); + }); + + auto menuItem2 = MenuItemFont::create("Next: Create a Sprite from a Rect"); + menuItem2->setFontNameObj("Marker Felt.ttf"); + menuItem2->setFontSizeObj(32); + menuItem2->setName("menuItem2"); + menuItem2->setVisible(false); + menuItem2->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40)); + menuItem2->setCallback([&](cocos2d::Ref *sender) { + auto dirs = Director::getInstance()->getRunningScene(); + auto newSprite = Sprite::create("Blue_Front1.png", Rect(0,0,50,50)); + newSprite->setPosition(250, 256); + newSprite->setName("sprite2"); + newSprite->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite,1); + + auto anode = dirs->getChildByName("menuNode"); + auto bnode = anode->getChildByName("menu"); + auto cnode = bnode->getChildByName("menuItem2"); + cnode->setVisible(false); + auto dnode = bnode->getChildByName("menuItem3"); + dnode->setVisible(true); + }); + + auto menuItem3 = MenuItemFont::create("Next: Create a Sprite from SpriteFrameCache"); + menuItem3->setFontNameObj("Marker Felt.ttf"); + menuItem3->setFontSizeObj(32); + menuItem3->setName("menuItem3"); + menuItem3->setVisible(false); + menuItem3->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40)); + menuItem3->setCallback([&](cocos2d::Ref *sender) { + auto dirs = Director::getInstance()->getRunningScene(); + auto spritecache = SpriteFrameCache::getInstance(); + spritecache->addSpriteFramesWithFile("sprites.plist"); + + auto newSprite = Sprite::createWithSpriteFrameName("Blue_Front1.png"); + newSprite->setPosition(400, 256); + newSprite->setName("sprite3"); + newSprite->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite,1); + + auto anode = dirs->getChildByName("menuNode"); + auto bnode = anode->getChildByName("menu"); + auto cnode = bnode->getChildByName("menuItem3"); + cnode->setVisible(false); + auto dnode = bnode->getChildByName("menuItem4"); + dnode->setVisible(true); + }); + + auto menuItem4 = MenuItemFont::create("Next: Create a Sprite from SpriteFrame"); + menuItem4->setFontNameObj("Marker Felt.ttf"); + menuItem4->setFontSizeObj(32); + menuItem4->setName("menuItem4"); + menuItem4->setVisible(false); + menuItem4->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40)); + menuItem4->setCallback([&](cocos2d::Ref *sender) { + auto dirs = Director::getInstance()->getRunningScene(); + auto spritecache = SpriteFrameCache::getInstance(); + spritecache->addSpriteFramesWithFile("sprites.plist"); + + auto newspriteFrame = SpriteFrame::create("Blue_Front1.png", Rect(0,0,50,50)); + + auto newSprite = Sprite::createWithSpriteFrame(newspriteFrame); + newSprite->setPosition(550, 256); + newSprite->setName("sprite4"); + newSprite->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite,1); + + auto anode = dirs->getChildByName("menuNode"); + auto bnode = anode->getChildByName("menu"); + auto cnode = bnode->getChildByName("menuItem4"); + cnode->setVisible(false); + auto dnode = bnode->getChildByName("menuItem5"); + dnode->setVisible(true); + }); + + auto menuItem5 = MenuItemFont::create("Next: Scale a Sprite"); + menuItem5->setFontNameObj("Marker Felt.ttf"); + menuItem5->setFontSizeObj(32); + menuItem5->setName("menuItem5"); + menuItem5->setVisible(false); + menuItem5->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40)); + menuItem5->setCallback([&](cocos2d::Ref *sender) { + // hide everything else on the screen + auto dirs = Director::getInstance()->getRunningScene(); + dirs->removeChildByName("sprite1"); + dirs->removeChildByName("sprite2"); + dirs->removeChildByName("sprite3"); + dirs->removeChildByName("sprite4"); + + auto newSprite = Sprite::create("Blue_Front1.png"); + newSprite->setPosition(100, 256); + newSprite->setName("sprite5"); + newSprite->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite,1); + + auto point00 = Sprite::create("dot.png"); + point00->setName("point00"); + point00->setPosition(newSprite->getPosition()); + dirs->addChild(point00,2); + + auto newSpriteScaleXY = Sprite::create("Blue_Front1.png"); + newSpriteScaleXY->setPosition(300,256); + newSpriteScaleXY->setName("sprite6"); + newSpriteScaleXY->setAnchorPoint(Vec2(0.5,0.5)); + newSpriteScaleXY->setScale(2.0f); + dirs->addChild(newSpriteScaleXY,1); + + auto pointXY = Sprite::create("dot.png"); + pointXY->setName("pointXY"); + pointXY->setPosition(newSpriteScaleXY->getPosition()); + dirs->addChild(pointXY,2); + + auto newSpriteScaleX = Sprite::create("Blue_Front1.png"); + newSpriteScaleX->setPosition(500,256); + newSpriteScaleX->setName("sprite7"); + newSpriteScaleX->setAnchorPoint(Vec2(0.5,0.5)); + newSpriteScaleX->setScaleX(2.0f); + dirs->addChild(newSpriteScaleX,1); + + auto pointX = Sprite::create("dot.png"); + pointX->setName("pointX"); + pointX->setPosition(newSpriteScaleX->getPosition()); + dirs->addChild(pointX,2); + + auto newSpriteScaleY = Sprite::create("Blue_Front1.png"); + newSpriteScaleY->setPosition(800, 256); + newSpriteScaleY->setName("sprite8"); + newSpriteScaleY->setAnchorPoint(Vec2(0.5,0.5)); + newSpriteScaleY->setScaleY(2.0f); + dirs->addChild(newSpriteScaleY,1); + + auto pointY = Sprite::create("dot.png"); + pointY->setName("pointY"); + pointY->setPosition(newSpriteScaleY->getPosition()); + dirs->addChild(pointY,2); + + auto anode = dirs->getChildByName("menuNode"); + auto bnode = anode->getChildByName("menu"); + auto cnode = bnode->getChildByName("menuItem5"); + cnode->setVisible(false); + auto dnode = bnode->getChildByName("menuItem6"); + dnode->setVisible(true); + }); + + auto menuItem6 = MenuItemFont::create("Next: Anchor Point and Sprite"); + menuItem6->setFontNameObj("Marker Felt.ttf"); + menuItem6->setFontSizeObj(32); + menuItem6->setName("menuItem6"); + menuItem6->setVisible(false); + menuItem6->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40)); + menuItem6->setCallback([&](cocos2d::Ref *sender) { + // hide everything else on the screen + auto dirs = Director::getInstance()->getRunningScene(); + dirs->removeChildByName("sprite5"); + dirs->removeChildByName("sprite6"); + dirs->removeChildByName("sprite7"); + dirs->removeChildByName("sprite8"); + dirs->removeChildByName("point00"); + dirs->removeChildByName("pointXY"); + dirs->removeChildByName("pointX"); + dirs->removeChildByName("pointY"); + + + auto newSprite00 = Sprite::create("Blue_Front1.png"); + newSprite00->setPosition(100, 256); + newSprite00->setName("sprite9"); + newSprite00->setAnchorPoint(Vec2(0,0)); + dirs->addChild(newSprite00,1); + + auto point00 = Sprite::create("dot.png"); + point00->setName("point00"); + point00->setPosition(newSprite00->getPosition()); + dirs->addChild(point00,2); + + auto newSprite01 = Sprite::create("Blue_Front1.png"); + newSprite01->setPosition(250, 256); + newSprite01->setName("sprite10"); + newSprite01->setAnchorPoint(Vec2(0,1)); + dirs->addChild(newSprite01,1); + + auto point01 = Sprite::create("dot.png"); + point01->setName("point01"); + point01->setPosition(newSprite01->getPosition()); + dirs->addChild(point01,2); + + auto newSprite10 = Sprite::create("Blue_Front1.png"); + newSprite10->setPosition(400, 256); + newSprite10->setName("sprite11"); + newSprite10->setAnchorPoint(Vec2(1,0)); + dirs->addChild(newSprite10,1); + + auto point10 = Sprite::create("dot.png"); + point10->setName("point10"); + point10->setPosition(newSprite10->getPosition()); + dirs->addChild(point10,2); + + auto newSprite11 = Sprite::create("Blue_Front1.png"); + newSprite11->setPosition(550, 256); + newSprite11->setName("sprite12"); + newSprite11->setAnchorPoint(Vec2(1,1)); + dirs->addChild(newSprite11,1); + + auto point11 = Sprite::create("dot.png"); + point11->setName("point11"); + point11->setPosition(newSprite11->getPosition()); + dirs->addChild(point11,2); + + auto newSprite22 = Sprite::create("Blue_Front1.png"); + newSprite22->setPosition(700, 256); + newSprite22->setName("sprite13"); + newSprite22->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite22,1); + + auto point22 = Sprite::create("dot.png"); + point22->setName("point22"); + point22->setPosition(newSprite22->getPosition()); + dirs->addChild(point22,2); + + auto anode = dirs->getChildByName("menuNode"); + auto bnode = anode->getChildByName("menu"); + auto cnode = bnode->getChildByName("menuItem6"); + cnode->setVisible(false); + auto dnode = bnode->getChildByName("menuItem7"); + dnode->setVisible(true); + }); + + auto menuItem7 = MenuItemFont::create("Next: Skew a Sprite"); + menuItem7->setFontNameObj("Marker Felt.ttf"); + menuItem7->setFontSizeObj(32); + menuItem7->setName("menuItem7"); + menuItem7->setVisible(false); + menuItem7->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40)); + menuItem7->setCallback([&](cocos2d::Ref *sender) { + // hide everything else on the screen + auto dirs = Director::getInstance()->getRunningScene(); + dirs->removeChildByName("sprite9"); + dirs->removeChildByName("sprite10"); + dirs->removeChildByName("sprite11"); + dirs->removeChildByName("sprite12"); + dirs->removeChildByName("sprite13"); + dirs->removeChildByName("point00"); + dirs->removeChildByName("point01"); + dirs->removeChildByName("point10"); + dirs->removeChildByName("point11"); + dirs->removeChildByName("point22"); + + auto newSprite = Sprite::create("Blue_Front1.png"); + newSprite->setPosition(100, 256); + newSprite->setName("sprite14"); + newSprite->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite,1); + + auto pointN = Sprite::create("dot.png"); + pointN->setName("pointN"); + pointN->setPosition(newSprite->getPosition()); + dirs->addChild(pointN,2); + + auto newSpriteSkewX = Sprite::create("Blue_Front1.png"); + newSpriteSkewX->setPosition(250, 256); + newSpriteSkewX->setName("sprite15"); + newSpriteSkewX->setAnchorPoint(Vec2(0.5,0.5)); + newSpriteSkewX->setSkewX(20.0f); + dirs->addChild(newSpriteSkewX,1); + + auto pointX = Sprite::create("dot.png"); + pointX->setName("pointX"); + pointX->setPosition(newSpriteSkewX->getPosition()); + dirs->addChild(pointX,2); + + auto newSpriteSkewY = Sprite::create("Blue_Front1.png"); + newSpriteSkewY->setPosition(400, 256); + newSpriteSkewY->setName("sprite16"); + newSpriteSkewY->setAnchorPoint(Vec2(0.5,0.5)); + newSpriteSkewY->setSkewY(20.0f); + dirs->addChild(newSpriteSkewY,1); + + auto pointY = Sprite::create("dot.png"); + pointY->setName("pointY"); + pointY->setPosition(newSpriteSkewY->getPosition()); + dirs->addChild(pointY,2); + + auto anode = dirs->getChildByName("menuNode"); + auto bnode = anode->getChildByName("menu"); + auto cnode = bnode->getChildByName("menuItem7"); + cnode->setVisible(false); + auto dnode = bnode->getChildByName("menuItem8"); + dnode->setVisible(true); + }); + + auto menuItem8 = MenuItemFont::create("Next: Rotate a Sprite"); + menuItem8->setFontNameObj("Marker Felt.ttf"); + menuItem8->setFontSizeObj(32); + menuItem8->setName("menuItem8"); + menuItem8->setVisible(false); + menuItem8->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40)); + menuItem8->setCallback([&](cocos2d::Ref *sender) { + // hide everything else on the screen + auto dirs = Director::getInstance()->getRunningScene(); + dirs->removeChildByName("sprite14"); + dirs->removeChildByName("sprite15"); + dirs->removeChildByName("sprite16"); + dirs->removeChildByName("pointN"); + dirs->removeChildByName("pointX"); + dirs->removeChildByName("pointY"); + + auto newSprite = Sprite::create("Blue_Front1.png"); + newSprite->setPosition(100, 256); + newSprite->setName("sprite17"); + newSprite->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite,1); + + auto point00 = Sprite::create("dot.png"); + point00->setName("point00"); + point00->setPosition(newSprite->getPosition()); + dirs->addChild(point00,2); + + auto newSpriteRotateP20 = Sprite::create("Blue_Front1.png"); + newSpriteRotateP20->setPosition(250, 256); + newSpriteRotateP20->setName("sprite18"); + newSpriteRotateP20->setAnchorPoint(Vec2(0.5,0.5)); + newSpriteRotateP20->setRotation(20.0f); + dirs->addChild(newSpriteRotateP20,1); + + auto pointP20 = Sprite::create("dot.png"); + pointP20->setName("pointP20"); + pointP20->setPosition(newSpriteRotateP20->getPosition()); + dirs->addChild(pointP20,2); + + auto newSpriteRotateN20 = Sprite::create("Blue_Front1.png"); + newSpriteRotateN20->setPosition(400, 256); + newSpriteRotateN20->setName("sprite19"); + newSpriteRotateN20->setAnchorPoint(Vec2(0.5,0.5)); + newSpriteRotateN20->setRotation(-20.0f); + dirs->addChild(newSpriteRotateN20,1); + + auto pointN20 = Sprite::create("dot.png"); + pointN20->setName("pointN20"); + pointN20->setPosition(newSpriteRotateN20->getPosition()); + dirs->addChild(pointN20,2); + + auto newSpriteRotateP60 = Sprite::create("Blue_Front1.png"); + newSpriteRotateP60->setPosition(550, 256); + newSpriteRotateP60->setName("sprite20"); + newSpriteRotateP60->setAnchorPoint(Vec2(0.5,0.5)); + newSpriteRotateP60->setRotation(60.0f); + dirs->addChild(newSpriteRotateP60,1); + + auto pointP60 = Sprite::create("dot.png"); + pointP60->setName("pointP60"); + pointP60->setPosition(newSpriteRotateP60->getPosition()); + dirs->addChild(pointP60,2); + + auto newSpriteRotateN60 = Sprite::create("Blue_Front1.png"); + newSpriteRotateN60->setPosition(700, 256); + newSpriteRotateN60->setName("sprite21"); + newSpriteRotateN60->setAnchorPoint(Vec2(0.5,0.5)); + newSpriteRotateN60->setRotation(-60.0f); + dirs->addChild(newSpriteRotateN60,1); + + auto pointN60 = Sprite::create("dot.png"); + pointN60->setName("pointN60"); + pointN60->setPosition(newSpriteRotateN60->getPosition()); + dirs->addChild(pointN60,2); + + auto anode = dirs->getChildByName("menuNode"); + auto bnode = anode->getChildByName("menu"); + auto cnode = bnode->getChildByName("menuItem8"); + cnode->setVisible(false); + auto dnode = bnode->getChildByName("menuItem9"); + dnode->setVisible(true); + }); + + auto menuItem9 = MenuItemFont::create("Next: Change the Color of a Sprite"); + menuItem9->setFontNameObj("Marker Felt.ttf"); + menuItem9->setFontSizeObj(32); + menuItem9->setName("menuItem9"); + menuItem9->setVisible(false); + menuItem9->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40)); + menuItem9->setCallback([&](cocos2d::Ref *sender) { + // hide everything else on the screen + auto dirs = Director::getInstance()->getRunningScene(); + dirs->removeChildByName("sprite18"); + dirs->removeChildByName("sprite19"); + dirs->removeChildByName("sprite20"); + dirs->removeChildByName("sprite21"); + dirs->removeChildByName("point00"); + dirs->removeChildByName("pointP20"); + dirs->removeChildByName("pointN20"); + dirs->removeChildByName("pointP60"); + dirs->removeChildByName("pointN60"); + + auto newSprite = Sprite::create("Blue_Front1.png"); + newSprite->setPosition(100, 256); + newSprite->setName("sprite30"); + newSprite->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite,1); + + auto newSprite2 = Sprite::create("Blue_Front1.png"); + newSprite2->setPosition(200, 256); + newSprite2->setName("sprite31"); + newSprite2->setAnchorPoint(Vec2(0.5,0.5)); + newSprite2->setColor(Color3B(155, 200, 50)); + dirs->addChild(newSprite2,1); + + auto newSprite3 = Sprite::create("Blue_Front1.png"); + newSprite3->setPosition(300, 256); + newSprite3->setName("sprite32"); + newSprite3->setAnchorPoint(Vec2(0.5,0.5)); + newSprite3->setColor(Color3B(10, 230, 100)); + dirs->addChild(newSprite3,1); + + auto newSprite4 = Sprite::create("Blue_Front1.png"); + newSprite4->setPosition(400, 256); + newSprite4->setName("sprite33"); + newSprite4->setAnchorPoint(Vec2(0.5,0.5)); + newSprite4->setColor(Color3B(100, 101, 230)); + dirs->addChild(newSprite4,1); + + auto anode = dirs->getChildByName("menuNode"); + auto bnode = anode->getChildByName("menu"); + auto cnode = bnode->getChildByName("menuItem9"); + cnode->setVisible(false); + auto dnode = bnode->getChildByName("menuItem10"); + dnode->setVisible(true); + }); + + auto menuItem10 = MenuItemFont::create("Next: Change the Color of a Sprite"); + menuItem10->setFontNameObj("Marker Felt.ttf"); + menuItem10->setFontSizeObj(32); + menuItem10->setName("menuItem10"); + menuItem10->setVisible(false); + menuItem10->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40)); + menuItem10->setCallback([&](cocos2d::Ref *sender) { + // hide everything else on the screen + auto dirs = Director::getInstance()->getRunningScene(); + dirs->removeChildByName("sprite30"); + dirs->removeChildByName("sprite31"); + dirs->removeChildByName("sprite32"); + dirs->removeChildByName("sprite33"); + + auto newSprite = Sprite::create("Blue_Front1.png"); + newSprite->setPosition(100, 256); + newSprite->setName("sprite34"); + newSprite->setAnchorPoint(Vec2(0.5,0.5)); + newSprite->setOpacity(0.0f); + dirs->addChild(newSprite,1); + + auto newSprite2 = Sprite::create("Blue_Front1.png"); + newSprite2->setPosition(200, 256); + newSprite2->setName("sprite35"); + newSprite2->setAnchorPoint(Vec2(0.5,0.5)); + newSprite2->setOpacity(99); + dirs->addChild(newSprite2,1); + + auto newSprite3 = Sprite::create("Blue_Front1.png"); + newSprite3->setPosition(300, 256); + newSprite3->setName("sprite36"); + newSprite3->setAnchorPoint(Vec2(0.5,0.5)); + newSprite3->setOpacity(89); + dirs->addChild(newSprite3,1); + + auto newSprite4 = Sprite::create("Blue_Front1.png"); + newSprite4->setPosition(400, 256); + newSprite4->setName("sprite37"); + + newSprite4->setAnchorPoint(Vec2(0.5,0.5)); + newSprite4->setOpacity(79); + dirs->addChild(newSprite4,1); + + auto anode = dirs->getChildByName("menuNode"); + auto bnode = anode->getChildByName("menu"); + auto cnode = bnode->getChildByName("menuItem10"); + cnode->setVisible(false); + //auto dnode = bnode->getChildByName("menuItem10"); + //dnode->setVisible(true); + }); + + auto menu = Menu::create(menuItem1, menuItem2, menuItem3, menuItem4, menuItem5, menuItem6, + menuItem7, menuItem8, menuItem9, menuItem10, NULL); + menu->setName("menu"); + menuNode->addChild(menu, 1); + menu->setPosition(Vec2::ZERO); + + scene->addChild(menuNode, 2); + + // return the scene + return scene; +} diff --git a/src/chapter3/Chapter3.h b/src/chapter3/Chapter3.h new file mode 100644 index 0000000..d56056d --- /dev/null +++ b/src/chapter3/Chapter3.h @@ -0,0 +1,16 @@ +#ifndef __CHAPTER3_H__ +#define __CHAPTER3_H__ + +#include "cocos2d.h" + +#include + +USING_NS_CC; + +class Chapter3 : public Ref +{ + public: + static cocos2d::Scene* createScene(); +}; + +#endif // __CHAPTER3_H__ diff --git a/src/chapter4/AppDelegate.cpp b/src/chapter4/AppDelegate.cpp new file mode 100644 index 0000000..e2fb65c --- /dev/null +++ b/src/chapter4/AppDelegate.cpp @@ -0,0 +1,63 @@ +#include "AppDelegate.h" +#include "Chapter4.h" + +USING_NS_CC; + +AppDelegate::AppDelegate() { + +} + +AppDelegate::~AppDelegate() +{ +} + +//if you want a different context,just modify the value of glContextAttrs +//it will takes effect on all platforms +void AppDelegate::initGLContextAttrs() +{ + //set OpenGL context attributions,now can only set six attributions: + //red,green,blue,alpha,depth,stencil + GLContextAttrs glContextAttrs = {8, 8, 8, 8, 24, 8}; + + GLView::setGLContextAttrs(glContextAttrs); +} + +bool AppDelegate::applicationDidFinishLaunching() { + // initialize director + auto director = Director::getInstance(); + auto glview = director->getOpenGLView(); + if(!glview) { + glview = GLViewImpl::create("My Game"); + director->setOpenGLView(glview); + } + + // turn on display FPS + //director->setDisplayStats(true); + + // set FPS. the default value is 1.0/60 if you don't call this + director->setAnimationInterval(1.0 / 60); + + // create a scene. it's an autorelease object + auto scene = Chapter4::createScene(); + + // run + director->runWithScene(scene); + + return true; +} + +// This function will be called when the app is inactive. When comes a phone call,it's be invoked too +void AppDelegate::applicationDidEnterBackground() { + Director::getInstance()->stopAnimation(); + + // if you use SimpleAudioEngine, it must be pause + // SimpleAudioEngine::getInstance()->pauseBackgroundMusic(); +} + +// this function will be called when the app is active again +void AppDelegate::applicationWillEnterForeground() { + Director::getInstance()->startAnimation(); + + // if you use SimpleAudioEngine, it must resume here + // SimpleAudioEngine::getInstance()->resumeBackgroundMusic(); +} diff --git a/src/chapter4/AppDelegate.h b/src/chapter4/AppDelegate.h new file mode 100644 index 0000000..625506c --- /dev/null +++ b/src/chapter4/AppDelegate.h @@ -0,0 +1,40 @@ +#ifndef _APP_DELEGATE_H_ +#define _APP_DELEGATE_H_ + +#include "cocos2d.h" + +/** +@brief The cocos2d Application. + +The reason for implement as private inheritance is to hide some interface call by Director. +*/ +class AppDelegate : private cocos2d::Application +{ +public: + AppDelegate(); + virtual ~AppDelegate(); + + virtual void initGLContextAttrs(); + + /** + @brief Implement Director and Scene init code here. + @return true Initialize success, app continue. + @return false Initialize failed, app terminate. + */ + virtual bool applicationDidFinishLaunching(); + + /** + @brief 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/src/chapter4/Chapter4.cpp b/src/chapter4/Chapter4.cpp new file mode 100644 index 0000000..6959e8e --- /dev/null +++ b/src/chapter4/Chapter4.cpp @@ -0,0 +1,493 @@ +#include "Chapter4.h" + +USING_NS_CC; + +Scene* Chapter4::createScene() +{ + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // some upfront items that we need + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto dirs = Director::getInstance(); + Size visibleSize = dirs->getVisibleSize(); + Vec2 origin = dirs->getVisibleOrigin(); + + Size playingSize = Size(visibleSize.width, visibleSize.height - (visibleSize.height/8)); // actual playing size to work with + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create a scene + // 'scene' is an autorelease object + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto scene = Scene::create(); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create a node to hold non-sprites. + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto nodeItems = Node::create(); + nodeItems->setName("nodeItems"); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create a node to hold menu + // create a menu + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto menuNode = Node::create(); + menuNode->setName("menuNode"); + int index = 2; + + auto menuItem1 = MenuItemFont::create("First: Create a Sprite"); + menuItem1->setFontNameObj("Marker Felt.ttf"); + menuItem1->setFontSizeObj(32); + menuItem1->setName("menuItem1"); + menuItem1->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40)); + menuItem1->setCallback([&](Ref *sender) { + auto dirs = Director::getInstance()->getRunningScene(); + dirs->removeChildByName("point2"); // old one + dirs->removeChildByName("point3"); // old one + + auto newSprite = Sprite::create("Blue_Front1.png"); + newSprite->setPosition(100, 56); + newSprite->setName("sprite1"); + newSprite->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite,1); + + auto point1 = Sprite::create("dot.png"); + point1->setName("point1"); + point1->setPosition(newSprite->getPosition()); + dirs->addChild(point1,2); + + auto newSprite2 = Sprite::create("Blue_Front1.png"); + newSprite2->setPosition(100, 56); + newSprite2->setName("sprite2"); + newSprite2->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite2,1); + + auto anode = dirs->getChildByName("menuNode"); + auto bnode = anode->getChildByName("menu"); + auto cnode = bnode->getChildByName("menuItem1"); + cnode->setVisible(false); + cnode = bnode->getChildByName("menuItem2"); + cnode->setVisible(true); + cnode = bnode->getChildByName("menuItem3"); + cnode->setVisible(true); + cnode = bnode->getChildByName("menuItem4"); + cnode->setVisible(true); + cnode = bnode->getChildByName("menuItem5"); + cnode->setVisible(true); + cnode = bnode->getChildByName("menuItem6"); + cnode->setVisible(true); + cnode = bnode->getChildByName("menuItem7"); + cnode->setVisible(true); + cnode = bnode->getChildByName("menuItem8"); + cnode->setVisible(true); + cnode = bnode->getChildByName("menuItem9"); + cnode->setVisible(true); + cnode = bnode->getChildByName("menuItem10"); + cnode->setVisible(true); + cnode = bnode->getChildByName("menuItem11"); + cnode->setVisible(true); + }); + + auto menuItem2 = MenuItemFont::create("MoveTo/MoveBy"); + menuItem2->setFontNameObj("Marker Felt.ttf"); + menuItem2->setFontSizeObj(32); + menuItem2->setName("menuItem2"); + menuItem2->setVisible(false); + menuItem2->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); + menuItem2->setCallback([&](Ref *sender) { + auto dirs = Director::getInstance()->getRunningScene(); + dirs->removeChildByName("sprite2"); // the old one + dirs->removeChildByName("sprite3"); // the old one + dirs->removeChildByName("point2"); // the old one + dirs->removeChildByName("point3"); // the old one + + auto newSprite2 = Sprite::create("Blue_Front1.png"); + newSprite2->setPosition(100, 56); + newSprite2->setName("sprite2"); + newSprite2->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite2,1); + + auto moveBy = MoveBy::create(2, Point(500, 0)); + + auto moveTo = MoveTo::create(2, Point(300, 56)); + + auto delay = DelayTime::create(2.0f); + + auto sequence = Sequence::create(moveBy, delay, NULL); + auto sequence2 = Sequence::create(delay, moveTo, NULL); + + newSprite2->runAction(sequence); + + auto newSprite3 = Sprite::create("Blue_Front1.png"); + newSprite3->setPosition(600, 56); + newSprite3->setName("sprite3"); + newSprite3->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite3,1); + + newSprite3->runAction(sequence2); + }); + + auto menuItem3 = MenuItemFont::create("FadeIn/FadeOut"); + menuItem3->setFontNameObj("Marker Felt.ttf"); + menuItem3->setFontSizeObj(32); + menuItem3->setName("menuItem3"); + menuItem3->setVisible(false); + menuItem3->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); + menuItem3->setCallback([&](Ref *sender) { + auto dirs = Director::getInstance()->getRunningScene(); + dirs->removeChildByName("sprite2"); // the old one + dirs->removeChildByName("sprite3"); // the old one + dirs->removeChildByName("point2"); // the old one + dirs->removeChildByName("point3"); // the old one + + auto newSprite2 = Sprite::create("Blue_Front1.png"); + newSprite2->setPosition(300, 56); + newSprite2->setName("sprite2"); + newSprite2->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite2,1); + + auto fadeIn = FadeIn::create(1.0f); + newSprite2->runAction(fadeIn); + + auto newSprite3 = Sprite::create("Blue_Front1.png"); + newSprite3->setPosition(500, 56); + newSprite3->setName("sprite3"); + newSprite3->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite3,1); + + auto fadeOut = FadeOut::create(2.0f); + newSprite3->runAction(fadeOut); + }); + + auto menuItem11 = MenuItemFont::create("Animate"); + menuItem11->setFontNameObj("Marker Felt.ttf"); + menuItem11->setFontSizeObj(32); + menuItem11->setName("menuItem11"); + menuItem11->setVisible(false); + menuItem11->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); + menuItem11->setCallback([&](Ref *sender) { + auto dirs = Director::getInstance()->getRunningScene(); + dirs->removeChildByName("sprite2"); // the old one + dirs->removeChildByName("sprite3"); // the old one + dirs->removeChildByName("point2"); // the old one + dirs->removeChildByName("point3"); // the old one + + auto newSprite2 = Sprite::create("Blue_Front1.png"); + newSprite2->setPosition(300, 56); + newSprite2->setName("sprite2"); + newSprite2->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite2,1); + + auto moveBy = MoveBy::create(2.0f, Vec2(500, 0)); + + newSprite2->runAction(moveBy); + + // now lets animate the sprite we moved + Vector animFrames; + animFrames.reserve(12); + animFrames.pushBack(SpriteFrame::create("Blue_Front1.png", Rect(0,0,65,81))); + animFrames.pushBack(SpriteFrame::create("Blue_Front2.png", Rect(0,0,65,81))); + animFrames.pushBack(SpriteFrame::create("Blue_Front3.png", Rect(0,0,65,81))); + animFrames.pushBack(SpriteFrame::create("Blue_Left1.png", Rect(0,0,65,81))); + animFrames.pushBack(SpriteFrame::create("Blue_Left2.png", Rect(0,0,65,81))); + animFrames.pushBack(SpriteFrame::create("Blue_Left3.png", Rect(0,0,65,81))); + animFrames.pushBack(SpriteFrame::create("Blue_Back1.png", Rect(0,0,65,81))); + animFrames.pushBack(SpriteFrame::create("Blue_Back2.png", Rect(0,0,65,81))); + animFrames.pushBack(SpriteFrame::create("Blue_Back3.png", Rect(0,0,65,81))); + animFrames.pushBack(SpriteFrame::create("Blue_Right1.png", Rect(0,0,65,81))); + animFrames.pushBack(SpriteFrame::create("Blue_Right2.png", Rect(0,0,65,81))); + animFrames.pushBack(SpriteFrame::create("Blue_Right3.png", Rect(0,0,65,81))); + + // create the animation out of the frames + Animation* animation = Animation::createWithSpriteFrames(animFrames, 0.1f); + Animate* animate = Animate::create(animation); + + // run it and repeat it forever + newSprite2->runAction(RepeatForever::create(animate)); + }); + + auto menuItem4 = MenuItemFont::create("RotateTo/RotateBy"); + menuItem4->setFontNameObj("Marker Felt.ttf"); + menuItem4->setFontSizeObj(32); + menuItem4->setName("menuItem4"); + menuItem4->setVisible(false); + menuItem4->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); + menuItem4->setCallback([&](Ref *sender) { + auto dirs = Director::getInstance()->getRunningScene(); + dirs->removeChildByName("sprite2"); // the old one + dirs->removeChildByName("sprite3"); // the old one + dirs->removeChildByName("point2"); // the old one + dirs->removeChildByName("point3"); // the old one + + auto newSprite2 = Sprite::create("Blue_Front1.png"); + newSprite2->setPosition(300, 56); + newSprite2->setName("sprite2"); + newSprite2->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite2,1); + + auto point2 = Sprite::create("dot.png"); + point2->setName("point2"); + point2->setPosition(newSprite2->getPosition()); + dirs->addChild(point2,2); + + auto newSprite3 = Sprite::create("Blue_Front1.png"); + newSprite3->setPosition(500, 56); + newSprite3->setName("sprite3"); + newSprite3->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite3,1); + + auto point3 = Sprite::create("dot.png"); + point3->setName("point3"); + point3->setPosition(newSprite3->getPosition()); + dirs->addChild(point3,2); + + auto rotateTo = RotateTo::create(2.0f, 40.0f); + newSprite2->runAction(rotateTo); + + auto rotateBy = RotateBy::create(2.0f, -20.0f); + newSprite3->runAction(rotateBy); + }); + + auto menuItem5 = MenuItemFont::create("ScaleTo/ScaleBy"); + menuItem5->setFontNameObj("Marker Felt.ttf"); + menuItem5->setFontSizeObj(32); + menuItem5->setName("menuItem5"); + menuItem5->setVisible(false); + menuItem5->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); + menuItem5->setCallback([&](Ref *sender) { + auto dirs = Director::getInstance()->getRunningScene(); + dirs->removeChildByName("sprite2"); // the old one + dirs->removeChildByName("sprite3"); // the old one + dirs->removeChildByName("point2"); // the old one + dirs->removeChildByName("point3"); // the old one + + dirs->getChildByName("sprite1")->setPosition(100, 100); + + auto newSprite2 = Sprite::create("Blue_Front1.png"); + newSprite2->setPosition(300, 100); + newSprite2->setName("sprite2"); + newSprite2->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite2,1); + + auto point2 = Sprite::create("dot.png"); + point2->setName("point2"); + point2->setPosition(newSprite2->getPosition()); + dirs->addChild(point2,2); + + auto scaleTo = ScaleTo::create(2.0f, 2.0f); + newSprite2->runAction(scaleTo); + + auto newSprite3 = Sprite::create("Blue_Front1.png"); + newSprite3->setPosition(500, 56); + newSprite3->setName("sprite3"); + newSprite3->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite3,1); + + auto point3 = Sprite::create("dot.png"); + point3->setName("point3"); + point3->setPosition(newSprite3->getPosition()); + dirs->addChild(point3,2); + + auto scaleBy = ScaleBy::create(2.0f, 0.5f); + newSprite3->runAction(scaleBy); + + dirs->getChildByName("sprite1")->setPosition(100, 56); + }); + + auto menuItem6 = MenuItemFont::create("TintTo/TintBy"); + menuItem6->setFontNameObj("Marker Felt.ttf"); + menuItem6->setFontSizeObj(32); + menuItem6->setName("menuItem6"); + menuItem6->setVisible(false); + menuItem6->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); + menuItem6->setCallback([&](Ref *sender) { + auto dirs = Director::getInstance()->getRunningScene(); + dirs->removeChildByName("sprite2"); // the old one + dirs->removeChildByName("sprite3"); // the old one + dirs->getChildByName("point1")->setVisible(false); // the old one + dirs->removeChildByName("point2"); // the old one + dirs->removeChildByName("point3"); // the old one + + auto newSprite2 = Sprite::create("Blue_Front1.png"); + newSprite2->setPosition(300, 56); + newSprite2->setName("sprite2"); + newSprite2->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite2,1); + + auto tintTo = TintTo::create(2.0f, 120.0f, 232.0f, 254.0f); + newSprite2->runAction(tintTo); + + auto newSprite3 = Sprite::create("Blue_Front1.png"); + newSprite3->setPosition(500, 56); + newSprite3->setName("sprite3"); + newSprite3->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite3,1); + + auto tintBy = TintBy::create(2.0f, 30.0f, 0, 0); + newSprite3->runAction(tintBy); + }); + + auto menuItem7 = MenuItemFont::create("Ease"); + menuItem7->setFontNameObj("Marker Felt.ttf"); + menuItem7->setFontSizeObj(32); + menuItem7->setName("menuItem7"); + menuItem7->setVisible(false); + menuItem7->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); + menuItem7->setCallback([&](Ref *sender) { + auto dirs = Director::getInstance(); + dirs->getRunningScene()->getChildByName("point1")->setVisible(true); + dirs->getRunningScene()->removeChildByName("sprite2"); // the old one + dirs->getRunningScene()->removeChildByName("sprite3"); // the old one + dirs->getRunningScene()->removeChildByName("point2"); // the old one + dirs->getRunningScene()->removeChildByName("point3"); // the old one + + auto newSprite2 = Sprite::create("Blue_Front1.png"); + newSprite2->setPosition(100, 56); + newSprite2->setName("sprite2"); + newSprite2->setAnchorPoint(Vec2(0.5,0.5)); + dirs->getRunningScene()->addChild(newSprite2,1); + +// auto newSprite3 = Sprite::create("White_Front1.png"); +// newSprite3->setPosition(100, 56); +// newSprite3->setName("sprite3"); +// newSprite3->setAnchorPoint(Vec2(0.5,0.5)); +// dirs->addChild(newSprite3,1); +// + auto move = MoveBy::create(2, Point(200, dirs->getVisibleSize().height - newSprite2->getContentSize().height)); + auto move_back = move->reverse(); + + auto move_ease_in = EaseBounceIn::create(move->clone() ); + auto move_ease_in_back = move_ease_in->reverse(); + + auto move_ease_out = EaseBounceOut::create(move->clone() ); + auto move_ease_out_back = move_ease_out->reverse(); + + auto delay = DelayTime::create(0.25f); + + auto seq1 = Sequence::create(move_ease_in, delay, move_ease_in_back, delay->clone(), nullptr); + + newSprite2->runAction(RepeatForever::create(seq1)); + }); + + auto menuItem8 = MenuItemFont::create("Sequence"); + menuItem8->setFontNameObj("Marker Felt.ttf"); + menuItem8->setFontSizeObj(32); + menuItem8->setName("menuItem8"); + menuItem8->setVisible(false); + menuItem8->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); + menuItem8->setCallback([&](Ref *sender) { + auto dirs = Director::getInstance()->getRunningScene(); + dirs->removeChildByName("sprite2"); // the old one + dirs->removeChildByName("sprite3"); // the old one + dirs->removeChildByName("point2"); // the old one + dirs->removeChildByName("point3"); // the old one + + auto newSprite2 = Sprite::create("Blue_Front1.png"); + newSprite2->setPosition(100, 56); + newSprite2->setName("sprite2"); + newSprite2->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite2,1); + + // create a few actions. + auto jump = JumpBy::create(0.5, Point(0, 0), 100, 1); + + auto rotate = RotateTo::create(2.0f, 10); + + // create a few callbacks + auto callbackJump = CallFunc::create([](){ + log("Jumped!"); + }); + + auto callbackRotate = CallFunc::create([](){ + log("Rotated!"); + }); + + // create a sequence with the actions and callbacks + auto seq = Sequence::create(jump, callbackJump, rotate, callbackRotate, nullptr); + + newSprite2->runAction(RepeatForever::create(seq)); + }); + + auto menuItem9 = MenuItemFont::create("Spawn"); + menuItem9->setFontNameObj("Marker Felt.ttf"); + menuItem9->setFontSizeObj(32); + menuItem9->setName("menuItem9"); + menuItem9->setVisible(false); + menuItem9->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); + menuItem9->setCallback([&](Ref *sender) { + auto dirs = Director::getInstance()->getRunningScene(); + dirs->removeChildByName("sprite2"); // the old one + dirs->removeChildByName("sprite3"); // the old one + dirs->removeChildByName("point2"); // the old one + dirs->removeChildByName("point3"); // the old one + + auto newSprite2 = Sprite::create("Blue_Front1.png"); + newSprite2->setPosition(100, 56); + newSprite2->setName("sprite2"); + newSprite2->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite2,1); + + // create a few actions + auto moveBy = MoveBy::create(10, Point(400,100)); + auto fadeTo = FadeTo::create(2.0f, 120.0f); + + // running the above Actions with Spawn. + auto mySpawn = Spawn::createWithTwoActions(moveBy, fadeTo); + newSprite2->runAction(mySpawn); + }); + + auto menuItem10 = MenuItemFont::create("Reverse"); + menuItem10->setFontNameObj("Marker Felt.ttf"); + menuItem10->setFontSizeObj(32); + menuItem10->setName("menuItem10"); + menuItem10->setVisible(false); + menuItem10->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); + menuItem10->setCallback([&](Ref *sender) { + auto dirs = Director::getInstance()->getRunningScene(); + dirs->removeChildByName("sprite2"); // the old one + dirs->removeChildByName("sprite3"); // the old one + dirs->removeChildByName("point2"); // the old one + dirs->removeChildByName("point3"); // the old one + + auto newSprite2 = Sprite::create("Blue_Front1.png"); + newSprite2->setPosition(100, 56); + newSprite2->setName("sprite2"); + newSprite2->setAnchorPoint(Vec2(0.5,0.5)); + dirs->addChild(newSprite2,1); + + // create a few Actions + auto moveBy = MoveBy::create(2.0f, Point(500,0)); + auto scaleBy = ScaleBy::create(2.0f, 2.0f); + auto delay = DelayTime::create(1.0f); + + // create a sequence + auto delaySequence = Sequence::create(delay, delay->clone(), delay->clone(), delay->clone(), nullptr); + + auto sequence = Sequence::create(moveBy, delay, scaleBy, delaySequence, nullptr); + + newSprite2->runAction(sequence); + + newSprite2->runAction(sequence->reverse()); + }); + + auto menu = Menu::create(menuItem1, menuItem2, menuItem3, menuItem4, menuItem5, + menuItem6, menuItem7, menuItem8, menuItem9, menuItem10, + menuItem11, NULL); + menu->setName("menu"); + menuNode->addChild(menu, 1); + menu->setPosition(Vec2::ZERO); + + scene->addChild(menuNode, 2); + + // return the scene + return scene; +} diff --git a/src/chapter4/Chapter4.h b/src/chapter4/Chapter4.h new file mode 100644 index 0000000..bf0f972 --- /dev/null +++ b/src/chapter4/Chapter4.h @@ -0,0 +1,16 @@ +#ifndef __CHAPTER4_H__ +#define __CHAPTER4_H__ + +#include "cocos2d.h" + +#include + +USING_NS_CC; + +class Chapter4 : public Ref +{ + public: + static cocos2d::Scene* createScene(); +}; + +#endif // __CHAPTER4_H__ diff --git a/src/chapter5/AppDelegate.cpp b/src/chapter5/AppDelegate.cpp new file mode 100644 index 0000000..3b05649 --- /dev/null +++ b/src/chapter5/AppDelegate.cpp @@ -0,0 +1,63 @@ +#include "AppDelegate.h" +#include "Chapter5.h" + +USING_NS_CC; + +AppDelegate::AppDelegate() { + +} + +AppDelegate::~AppDelegate() +{ +} + +//if you want a different context,just modify the value of glContextAttrs +//it will takes effect on all platforms +void AppDelegate::initGLContextAttrs() +{ + //set OpenGL context attributions,now can only set six attributions: + //red,green,blue,alpha,depth,stencil + GLContextAttrs glContextAttrs = {8, 8, 8, 8, 24, 8}; + + GLView::setGLContextAttrs(glContextAttrs); +} + +bool AppDelegate::applicationDidFinishLaunching() { + // initialize director + auto director = Director::getInstance(); + auto glview = director->getOpenGLView(); + if(!glview) { + glview = GLViewImpl::create("My Game"); + director->setOpenGLView(glview); + } + + // turn on display FPS + //director->setDisplayStats(true); + + // set FPS. the default value is 1.0/60 if you don't call this + director->setAnimationInterval(1.0 / 60); + + // create a scene. it's an autorelease object + auto chapter5 = Chapter5(); + + // run + director->runWithScene(chapter5.getScene1()); + + return true; +} + +// This function will be called when the app is inactive. When comes a phone call,it's be invoked too +void AppDelegate::applicationDidEnterBackground() { + Director::getInstance()->stopAnimation(); + + // if you use SimpleAudioEngine, it must be pause + // SimpleAudioEngine::getInstance()->pauseBackgroundMusic(); +} + +// this function will be called when the app is active again +void AppDelegate::applicationWillEnterForeground() { + Director::getInstance()->startAnimation(); + + // if you use SimpleAudioEngine, it must resume here + // SimpleAudioEngine::getInstance()->resumeBackgroundMusic(); +} diff --git a/src/chapter5/AppDelegate.h b/src/chapter5/AppDelegate.h new file mode 100644 index 0000000..625506c --- /dev/null +++ b/src/chapter5/AppDelegate.h @@ -0,0 +1,40 @@ +#ifndef _APP_DELEGATE_H_ +#define _APP_DELEGATE_H_ + +#include "cocos2d.h" + +/** +@brief The cocos2d Application. + +The reason for implement as private inheritance is to hide some interface call by Director. +*/ +class AppDelegate : private cocos2d::Application +{ +public: + AppDelegate(); + virtual ~AppDelegate(); + + virtual void initGLContextAttrs(); + + /** + @brief Implement Director and Scene init code here. + @return true Initialize success, app continue. + @return false Initialize failed, app terminate. + */ + virtual bool applicationDidFinishLaunching(); + + /** + @brief 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/src/chapter5/Chapter5.cpp b/src/chapter5/Chapter5.cpp new file mode 100644 index 0000000..6a68f79 --- /dev/null +++ b/src/chapter5/Chapter5.cpp @@ -0,0 +1,166 @@ +#include "Chapter5.h" + +USING_NS_CC; + +Chapter5::Chapter5() +{ + initialize(); +} + +Chapter5::~Chapter5() { } + +void Chapter5::initialize() +{ + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // some upfront items that we need + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto dirs = Director::getInstance(); + Size visibleSize = dirs->getVisibleSize(); + Vec2 origin = dirs->getVisibleOrigin(); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create a scene + // 'scene' is an autorelease object + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + scene1 = Scene::create(); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create a node to hold non-sprites. + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto nodeItems = Node::create(); + nodeItems->setName("nodeItems"); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create a node to hold menu + // create a menu + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto menuNode = Node::create(); + menuNode->setName("menuNode"); + int index = 2; + + auto thisSceneLabel = Label::createWithTTF("This Is A Scene", "Marker Felt.ttf", 32); + thisSceneLabel->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2)); + scene1->addChild(thisSceneLabel, 1); + + auto menuItem1 = MenuItemFont::create("Make A New Scene"); + menuItem1->setFontNameObj("Marker Felt.ttf"); + menuItem1->setFontSizeObj(32); + menuItem1->setName("menuItem1"); + menuItem1->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40)); + menuItem1->setCallback([&](cocos2d::Ref *sender) { + + Director::getInstance()->replaceScene(createScene2()); + }); + + auto menu = Menu::create(menuItem1, NULL); + menu->setName("menu"); + menuNode->addChild(menu, 1); + menu->setPosition(Vec2::ZERO); + + scene1->addChild(menuNode, 2); +} + +Scene* Chapter5::createScene2() +{ + auto dirs = Director::getInstance(); + Size visibleSize = dirs->getVisibleSize(); + Vec2 origin = dirs->getVisibleOrigin(); + + scene2 = Scene::create(); + scene2->retain(); + + auto nodeItems = Node::create(); + nodeItems->setName("nodeItems"); + + auto menuNode = Node::create(); + menuNode->setName("menuNode"); + int index = 2; + + auto thisSceneLabel = Label::createWithTTF("This Is A New Scene", "Marker Felt.ttf", 32); + thisSceneLabel->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2)); + scene2->addChild(thisSceneLabel, 1); + + auto menuItem1 = MenuItemFont::create("Make a New Scene Using a Transition Fade"); + menuItem1->setFontNameObj("Marker Felt.ttf"); + menuItem1->setFontSizeObj(32); + menuItem1->setName("menuItem1"); + menuItem1->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40)); + menuItem1->setCallback([&](cocos2d::Ref *sender) { + + Director::getInstance()->replaceScene(TransitionFade::create(0.5, createScene3(), Color3B(0,255,255))); + }); + + auto menu = Menu::create(menuItem1, NULL); + menu->setName("menu"); + menuNode->addChild(menu, 1); + menu->setPosition(Vec2::ZERO); + + scene2->addChild(menuNode, 2); + + return scene2; +} + +Scene* Chapter5::createScene3() +{ + auto dirs = Director::getInstance(); + Size visibleSize = dirs->getVisibleSize(); + Vec2 origin = dirs->getVisibleOrigin(); + + scene3 = Scene::create(); + scene3->retain(); + + auto nodeItems = Node::create(); + nodeItems->setName("nodeItems"); + + auto menuNode = Node::create(); + menuNode->setName("menuNode"); + int index = 2; + + auto thisSceneLabel = Label::createWithTTF("This Scene used a Transition!", "Marker Felt.ttf", 32); + thisSceneLabel->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2)); + scene3->addChild(thisSceneLabel, 1); + + auto menuItem1 = MenuItemFont::create("Make a New Scene Using a Flip"); + menuItem1->setFontNameObj("Marker Felt.ttf"); + menuItem1->setFontSizeObj(32); + menuItem1->setName("menuItem1"); + menuItem1->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (index) * 40)); + menuItem1->setCallback([&](cocos2d::Ref *sender) { + + Director::getInstance()->replaceScene(TransitionFlipX::create(2, createScene4())); + }); + + auto menu = Menu::create(menuItem1, NULL); + menu->setName("menu"); + menuNode->addChild(menu, 1); + menu->setPosition(Vec2::ZERO); + + scene3->addChild(menuNode, 2); + + return scene3; +} + +Scene* Chapter5::createScene4() +{ + auto dirs = Director::getInstance(); + Size visibleSize = dirs->getVisibleSize(); + Vec2 origin = dirs->getVisibleOrigin(); + + scene4 = Scene::create(); + scene4->retain(); + + auto nodeItems = Node::create(); + nodeItems->setName("nodeItems"); + + auto menuNode = Node::create(); + menuNode->setName("menuNode"); + + auto thisSceneLabel = Label::createWithTTF("This Scene used a Flip!", "Marker Felt.ttf", 32); + thisSceneLabel->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2)); + scene4->addChild(thisSceneLabel, 1); + + return scene4; +} diff --git a/src/chapter5/Chapter5.h b/src/chapter5/Chapter5.h new file mode 100644 index 0000000..d59edba --- /dev/null +++ b/src/chapter5/Chapter5.h @@ -0,0 +1,29 @@ +#ifndef __CHAPTER5_H__ +#define __CHAPTER5_H__ + +#include "cocos2d.h" + +USING_NS_CC; + +class Chapter5 : public Ref +{ + public: + Chapter5(); + ~Chapter5(); + + void initialize(); + Scene* createScene2(); + Scene* createScene3(); + Scene* createScene4(); + + inline Scene* getScene1(){ return scene1; }; + + protected: + Scene* scene1; + Scene* scene2; + Scene* scene3; + Scene* scene4; + +}; + +#endif // __CHAPTER5_H__ diff --git a/src/chapter6/AppDelegate.cpp b/src/chapter6/AppDelegate.cpp new file mode 100644 index 0000000..d26611f --- /dev/null +++ b/src/chapter6/AppDelegate.cpp @@ -0,0 +1,63 @@ +#include "AppDelegate.h" +#include "Chapter6.h" + +USING_NS_CC; + +AppDelegate::AppDelegate() { + +} + +AppDelegate::~AppDelegate() +{ +} + +//if you want a different context,just modify the value of glContextAttrs +//it will takes effect on all platforms +void AppDelegate::initGLContextAttrs() +{ + //set OpenGL context attributions,now can only set six attributions: + //red,green,blue,alpha,depth,stencil + GLContextAttrs glContextAttrs = {8, 8, 8, 8, 24, 8}; + + GLView::setGLContextAttrs(glContextAttrs); +} + +bool AppDelegate::applicationDidFinishLaunching() { + // initialize director + auto director = Director::getInstance(); + auto glview = director->getOpenGLView(); + if(!glview) { + glview = GLViewImpl::create("My Game"); + director->setOpenGLView(glview); + } + + // turn on display FPS + //director->setDisplayStats(true); + + // set FPS. the default value is 1.0/60 if you don't call this + director->setAnimationInterval(1.0 / 60); + + // create a scene. it's an autorelease object + auto scene = Chapter6::createScene(); + + // run + director->runWithScene(scene); + + return true; +} + +// This function will be called when the app is inactive. When comes a phone call,it's be invoked too +void AppDelegate::applicationDidEnterBackground() { + Director::getInstance()->stopAnimation(); + + // if you use SimpleAudioEngine, it must be pause + // SimpleAudioEngine::getInstance()->pauseBackgroundMusic(); +} + +// this function will be called when the app is active again +void AppDelegate::applicationWillEnterForeground() { + Director::getInstance()->startAnimation(); + + // if you use SimpleAudioEngine, it must resume here + // SimpleAudioEngine::getInstance()->resumeBackgroundMusic(); +} diff --git a/src/chapter6/AppDelegate.h b/src/chapter6/AppDelegate.h new file mode 100644 index 0000000..15e3773 --- /dev/null +++ b/src/chapter6/AppDelegate.h @@ -0,0 +1,40 @@ +#ifndef _CHAPTER6_DELEGATE_H_ +#define _CHAPTER6_DELEGATE_H_ + +#include "cocos2d.h" + +/** +@brief The cocos2d Application. + +The reason for implement as private inheritance is to hide some interface call by Director. +*/ +class AppDelegate : private cocos2d::Application +{ +public: + AppDelegate(); + virtual ~AppDelegate(); + + virtual void initGLContextAttrs(); + + /** + @brief Implement Director and Scene init code here. + @return true Initialize success, app continue. + @return false Initialize failed, app terminate. + */ + virtual bool applicationDidFinishLaunching(); + + /** + @brief 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 // _CHAPTER6_DELEGATE_H_ + diff --git a/src/chapter6/Chapter6.cpp b/src/chapter6/Chapter6.cpp new file mode 100644 index 0000000..dc5b0b2 --- /dev/null +++ b/src/chapter6/Chapter6.cpp @@ -0,0 +1,433 @@ +#include "Chapter6.h" + + +USING_NS_CC; + +//========================================================================== +#define CL(__className__) [](){ return __className__::create();} +static Size s_visibleSize; +static Vec2 s_origin; +static Vec2 s_centre; +static Scene* s_currScene; + + +namespace +{ + static std::function createFunctions[] = { + CL(UIDemoLabel), + CL(UIDemoLabelEffect), + CL(UIDemoLabelTypesetting), + CL(UIDemoMenu), + CL(UIDemoTextField), + CL(UIDemoControlExtensions), + CL(UIDemoEditBox), + CL(UIDemoScrollView), + CL(UIDemoTableView), + }; + + static int sceneIdx = -1; + +#define MAX_LAYER (sizeof(createFunctions) / sizeof(createFunctions[0])) + + static Layer* next() + { + sceneIdx++; + sceneIdx = sceneIdx % MAX_LAYER; + + auto layer = (createFunctions[sceneIdx])(); + return layer; + } + + static Layer* back() + { + sceneIdx--; + int total = MAX_LAYER; + if( sceneIdx < 0 ) + sceneIdx += total; + + auto layer = (createFunctions[sceneIdx])(); + return layer; + } + + static Layer* restart() + { + auto layer = (createFunctions[sceneIdx])(); + return layer; + } +} + +Scene* Chapter6::createScene() +{ + sceneIdx = -1; + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // some upfront items that we need + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + s_visibleSize = Director::getInstance()->getVisibleSize(); + s_origin = Director::getInstance()->getVisibleOrigin(); + s_centre = s_origin + s_visibleSize / 2; + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create a scene with physics world for our game to hold everything + // 'scene' is an autorelease object + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + s_currScene = Scene::create(); + + s_currScene->addChild(next()); + + // return the scene + return s_currScene; +} + +bool UIDemo::init() +{ + if (Layer::init()) + { + //create title + TTFConfig ttfConfig("arial.ttf", 32); + auto titleLabel = Label::createWithTTF(ttfConfig,"UI Chapter Samples"); + addChild(titleLabel, 9999); + titleLabel->setPosition(Vec2(s_origin.x + s_visibleSize.width/2, s_origin.y + s_visibleSize.height - 30)); + + //create subtitle + std::string strSubtitle = subtitle(); + if( ! strSubtitle.empty() ) + { + ttfConfig.fontSize = 20; + auto subTitleLabel = Label::createWithTTF(ttfConfig, strSubtitle.c_str()); + addChild(subTitleLabel, 9999); + subTitleLabel->setPosition(Vec2(s_origin.x + s_visibleSize.width/2, s_origin.y + s_visibleSize.height - 70)); + } + + //create menu + auto backItem = MenuItemImage::create("leftNormal.png", "leftSelected.png", CC_CALLBACK_1(UIDemo::backCallback, this) ); + auto restartItem = MenuItemImage::create("restartNormal.png", "restartSelected.png", CC_CALLBACK_1(UIDemo::restartCallback, this) ); + auto nextItem = MenuItemImage::create("rightNormal.png", "rightSelected.png", CC_CALLBACK_1(UIDemo::nextCallback, this) ); + + auto menu = Menu::create(backItem, restartItem, nextItem, nullptr); + menu->setPosition(Vec2::ZERO); + addChild(menu, 9999); + + auto restartItemSize = restartItem->getContentSize(); + backItem->setPosition(s_centre.x - restartItemSize.width * 2, s_origin.y + restartItemSize.height / 2); + restartItem->setPosition(s_centre.x, s_origin.y + restartItemSize.height / 2); + nextItem->setPosition(s_centre.x + restartItemSize.width * 2, s_origin.y + restartItemSize.height/2); + + + return true; + } + + return false; +} + +void UIDemo::restartCallback(Ref* sender) +{ + s_currScene = Scene::create(); + s_currScene->addChild( restart() ); + Director::getInstance()->replaceScene(s_currScene); +} + +void UIDemo::nextCallback(Ref* sender) +{ + s_currScene = Scene::create(); + s_currScene->addChild( next() ); + Director::getInstance()->replaceScene(s_currScene); +} + +void UIDemo::backCallback(Ref* sender) +{ + s_currScene = Scene::create(); + s_currScene->addChild( back() ); + Director::getInstance()->replaceScene(s_currScene); +} + +//===================================================================================== +// MARK: - UIDemoLabel +std::string UIDemoLabel::subtitle() const +{ + return "Label Sample Code"; +} + +bool UIDemoLabel::init() +{ + if (UIDemo::init()) { + //create a BMFont label + auto bmFntLabel = Label::createWithBMFont("bitmapFontTest.fnt", "This is BMFont Label"); + bmFntLabel->setPosition(s_centre + Vec2(-50,100)); + this->addChild(bmFntLabel); + + //create a TTF label + auto ttfLabel = Label::createWithTTF("This is TTF Label", "arial.ttf", 40); + ttfLabel->setPosition(s_centre); + this->addChild(ttfLabel); + + //create a TTF label from TTFConfig + TTFConfig labelConfig; + labelConfig.fontFilePath = "arial.ttf"; + labelConfig.fontSize = 20; + labelConfig.glyphs = GlyphCollection::DYNAMIC; + labelConfig.outlineSize = 0; + labelConfig.customGlyphs = nullptr; + labelConfig.distanceFieldEnabled = false; + auto ttfLabelFromTTFConfig = Label::createWithTTF(labelConfig, "This is TTF Label created from TTFConfig"); + ttfLabelFromTTFConfig->setPosition(s_centre + Vec2(50, -30)); + this->addChild(ttfLabelFromTTFConfig); + + //create a label use SystemFont + auto systemFontLabel = Label::createWithSystemFont("This is a Label created form System Font", "Helvetical", 36); + systemFontLabel->setPosition(s_centre + Vec2(100,-100)); + this->addChild(systemFontLabel); + + //create a label use atlas file + auto atlasLabel = Label::createWithCharMap("labelatlasimg.png",24,32,'0'); + atlasLabel->setString("12345"); + atlasLabel->setPosition(s_centre + Vec2(0,150)); + this->addChild(atlasLabel); + + + return true; + } + + return true; +} + +//===================================================================================== +// MARK: - UIDemoLabelEffect +std::string UIDemoLabelEffect::subtitle() const +{ + return "Label Effect Sample Code"; +} + +bool UIDemoLabelEffect::init() +{ + if (UIDemo::init()) { + + //create a white ttf label with red shadow + auto ttfLabelWithShadow = Label::createWithTTF("Label With Shadow", "arial.ttf", 40); + ttfLabelWithShadow->setPosition(s_centre + Vec2(0,100)); + ttfLabelWithShadow->enableShadow(Color4B::RED, Size(2,2)); + this->addChild(ttfLabelWithShadow); + + //create a white ttf label with yellow outline + auto ttfLabelWithOutline = Label::createWithTTF("Label with outline", "arial.ttf", 60); + ttfLabelWithOutline->setPosition(s_centre); + ttfLabelWithOutline->enableOutline(Color4B::YELLOW, 4); + this->addChild(ttfLabelWithOutline); + + //create a white ttf label with green glow effect + auto ttfLabelWithGlow = Label::createWithTTF("Label with Glow", "arial.ttf", 40); + ttfLabelWithGlow->setPosition(s_centre + Vec2(0,-100)); + ttfLabelWithGlow->enableGlow(Color4B::GREEN); + this->addChild(ttfLabelWithGlow); + + return true; + } + + return true; +} + +//===================================================================================== +// MARK: - UIDemoLabelTypesetting +std::string UIDemoLabelTypesetting::subtitle() const +{ + return "Label Typesetting Sample Code"; +} + +bool UIDemoLabelTypesetting::init() +{ + if (UIDemo::init()) { + auto s = Director::getInstance()->getWinSize(); + TTFConfig config("arial.ttf",30); + + //create a label with left text alignment + auto ttf0 = Label::createWithTTF(config,"Alignment 0\nnew line",TextHAlignment::LEFT); + ttf0->setPosition(s_centre + Vec2(-100, 100)); + this->addChild(ttf0); + + //create a long sentence with line wrap + TTFConfig config1("arial.ttf",14); + auto ttf1 = Label::createWithTTF(config1,"This is a very long sentence!This is a very long sentence!This is a very long sentence!This is a very long sentence!", + TextHAlignment::LEFT, + 200); +// ttf1->setLineBreakWithoutSpace(true); //uncomment this line to see the affects + ttf1->setPosition(s_centre); + this->addChild(ttf1); + + + //create a label with kerning + TTFConfig config2("arial.ttf",24); + auto ttf2 = Label::createWithTTF(config1,"Label with Kerning!"); + ttf2->setPosition(s_centre + Vec2(0,-100)); + ttf2->setTextColor(Color4B::RED); + ttf2->setAdditionalKerning(8.0); + this->addChild(ttf2); + + + return true; + } + + return true; +} + +//===================================================================================== +// MARK: - UIDemoMenu +std::string UIDemoMenu::subtitle() const +{ + return "Menu Sample Code"; +} + +bool UIDemoMenu::init() +{ + if (UIDemo::init()) { + //create a menu with Sprites, one menuItem which don't use lambda + auto menuItemSprite = MenuItemSprite::create(Sprite::create("menuItemSpriteNormal.png"), + Sprite::create("menuItemSpriteSelected.png"), + CC_CALLBACK_1(UIDemoMenu::spriteMenuItemCallback, this)); + menuItemSprite->setPosition(s_centre + Vec2(0,100)); + + auto menuSprite = Menu::createWithItem(menuItemSprite); + //we must call menu->setPosition() here + menuSprite->setPosition(Vec2::ZERO); + this->addChild(menuSprite); + + //create a menu with Labels, three menu items which use lambda + Vector labelItems; + for (int i = 0; i < 3; ++i) { + std::string str = StringUtils::format("Label MenuItem %d", i+1); + auto label = Label::createWithSystemFont(str, "Arial", 20); + MenuItemLabel *labelItem = MenuItemLabel::create(label,[=](Ref* sender){ + auto labelItem = (MenuItemLabel*)sender; + CCLOG("label item %d is clicked", labelItem->getTag()); + + }); + labelItem->setTag(i+1); + labelItem->setPosition(s_centre + Vec2((i+1) * (labelItem->getContentSize().width + 20) - 400, 0)); + labelItems.pushBack(labelItem); + } + auto menuLabel = Menu::createWithArray(labelItems); + menuLabel->setPosition(Vec2::ZERO); + this->addChild(menuLabel); + + //create a menu with Toggle MenuItems and alignment + auto menuItemImage = MenuItemImage::create("menuItemSpriteNormal.png", "menuItemSpriteSelected.png",[=](Ref*){ + CCLOG("menu item image be clicked!"); + }); + + auto menuItemOn = MenuItemFont::create("On", nullptr); + auto menuItemOff = MenuItemFont::create("Off", nullptr); + auto menuItemToggle = MenuItemToggle::createWithCallback([=](Ref* sender){ + auto toggleItem = (MenuItemToggle*)sender; + //pay attention to the log + if (toggleItem->getSelectedItem() == menuItemOn) { + CCLOG("off menu clicked!"); + }else{ + CCLOG("on menu clicked!"); + } + }, menuItemOn, menuItemOff,nullptr); + auto menuMixed = Menu::create(menuItemImage, menuItemToggle,nullptr); + menuMixed->alignItemsVertically(); + menuMixed->setPosition(s_centre + Vec2(50,-100)); + this->addChild(menuMixed); + + return true; + } + + return true; +} + +void UIDemoMenu::spriteMenuItemCallback(cocos2d::Ref *ref) +{ + CCLOG("sprite menu item clicked!"); +} + + + +//===================================================================================== +// MARK: - UIDemoTextField +std::string UIDemoTextField::subtitle() const +{ + return "TextField Sample Code"; +} + +bool UIDemoTextField::init() +{ + if (UIDemo::init()) { + + + return true; + } + + return true; +} + +//===================================================================================== +// MARK: - UIDemoControlExtensions +std::string UIDemoControlExtensions::subtitle() const +{ + return "ControlExtensions Sample Code"; +} + +bool UIDemoControlExtensions::init() +{ + if (UIDemo::init()) { + + + return true; + } + + return true; +} + +//===================================================================================== +// MARK: - UIDemoEditBox +std::string UIDemoEditBox::subtitle() const +{ + return "EditBox Sample Code"; +} + +bool UIDemoEditBox::init() +{ + if (UIDemo::init()) { + + + return true; + } + + return true; +} + +//===================================================================================== +// MARK: - UIDemoScrollView +std::string UIDemoScrollView::subtitle() const +{ + return "ScrollView Sample Code"; +} + +bool UIDemoScrollView::init() +{ + if (UIDemo::init()) { + + + return true; + } + + return true; +} + +//===================================================================================== +// MARK: - UIDemoTableView +std::string UIDemoTableView::subtitle() const +{ + return "TableView Sample Code"; +} + +bool UIDemoTableView::init() +{ + if (UIDemo::init()) { + + + return true; + } + + return true; +} diff --git a/src/chapter6/Chapter6.h b/src/chapter6/Chapter6.h new file mode 100644 index 0000000..2eea434 --- /dev/null +++ b/src/chapter6/Chapter6.h @@ -0,0 +1,131 @@ +#ifndef __Scane_Chapter6__ +#define __Scane_Chapter6__ + +#include "cocos2d.h" + +#include + +USING_NS_CC; + +class Chapter6 +{ + public: + static cocos2d::Scene* createScene(); +}; + +class UIDemo : public cocos2d::Layer +{ +public: + virtual std::string subtitle() const { return "";} + + void restartCallback(Ref* sender); + void nextCallback(Ref* sender); + void backCallback(Ref* sender); + +protected: + virtual bool init(); +}; + +class UIDemoLabel : public UIDemo +{ +public: + CREATE_FUNC(UIDemoLabel); + + virtual std::string subtitle() const override; + +protected: + virtual bool init(); +}; + +class UIDemoLabelEffect : public UIDemo +{ +public: + CREATE_FUNC(UIDemoLabelEffect); + + virtual std::string subtitle() const override; + +protected: + virtual bool init(); +}; + +class UIDemoLabelTypesetting : public UIDemo +{ +public: + CREATE_FUNC(UIDemoLabelTypesetting); + + virtual std::string subtitle() const override; + +protected: + virtual bool init(); +}; + + +class UIDemoMenu : public UIDemo +{ +public: + CREATE_FUNC(UIDemoMenu); + + virtual std::string subtitle() const override; + void spriteMenuItemCallback(Ref* ref); + +protected: + virtual bool init(); +}; + +class UIDemoTextField : public UIDemo +{ +public: + CREATE_FUNC(UIDemoTextField); + + virtual std::string subtitle() const override; + +protected: + virtual bool init(); +}; + +class UIDemoControlExtensions : public UIDemo +{ +public: + CREATE_FUNC(UIDemoControlExtensions); + + virtual std::string subtitle() const override; + +protected: + virtual bool init(); +}; + +class UIDemoEditBox : public UIDemo +{ +public: + CREATE_FUNC(UIDemoEditBox); + + virtual std::string subtitle() const override; + +protected: + virtual bool init(); +}; + +class UIDemoScrollView : public UIDemo +{ +public: + CREATE_FUNC(UIDemoScrollView); + + virtual std::string subtitle() const override; + +protected: + virtual bool init(); +}; + +class UIDemoTableView : public UIDemo +{ +public: + CREATE_FUNC(UIDemoTableView); + + virtual std::string subtitle() const override; + +protected: + virtual bool init(); +}; + + +#endif // __Scane_Chapter6__ diff --git a/src/chapter9/AppDelegate.cpp b/src/chapter9/AppDelegate.cpp new file mode 100644 index 0000000..914fe93 --- /dev/null +++ b/src/chapter9/AppDelegate.cpp @@ -0,0 +1,63 @@ +#include "AppDelegate.h" +#include "Chapter9.h" + +USING_NS_CC; + +AppDelegate::AppDelegate() { + +} + +AppDelegate::~AppDelegate() +{ +} + +//if you want a different context,just modify the value of glContextAttrs +//it will takes effect on all platforms +void AppDelegate::initGLContextAttrs() +{ + //set OpenGL context attributions,now can only set six attributions: + //red,green,blue,alpha,depth,stencil + GLContextAttrs glContextAttrs = {8, 8, 8, 8, 24, 8}; + + GLView::setGLContextAttrs(glContextAttrs); +} + +bool AppDelegate::applicationDidFinishLaunching() { + // initialize director + auto director = Director::getInstance(); + auto glview = director->getOpenGLView(); + if(!glview) { + glview = GLViewImpl::create("My Game"); + director->setOpenGLView(glview); + } + + // turn on display FPS + //director->setDisplayStats(true); + + // set FPS. the default value is 1.0/60 if you don't call this + director->setAnimationInterval(1.0 / 60); + + // create a scene. it's an autorelease object + auto scene = Chapter9::createScene(); + + // run + director->runWithScene(scene); + + return true; +} + +// This function will be called when the app is inactive. When comes a phone call,it's be invoked too +void AppDelegate::applicationDidEnterBackground() { + Director::getInstance()->stopAnimation(); + + // if you use SimpleAudioEngine, it must be pause + // SimpleAudioEngine::getInstance()->pauseBackgroundMusic(); +} + +// this function will be called when the app is active again +void AppDelegate::applicationWillEnterForeground() { + Director::getInstance()->startAnimation(); + + // if you use SimpleAudioEngine, it must resume here + // SimpleAudioEngine::getInstance()->resumeBackgroundMusic(); +} diff --git a/src/chapter9/AppDelegate.h b/src/chapter9/AppDelegate.h new file mode 100644 index 0000000..625506c --- /dev/null +++ b/src/chapter9/AppDelegate.h @@ -0,0 +1,40 @@ +#ifndef _APP_DELEGATE_H_ +#define _APP_DELEGATE_H_ + +#include "cocos2d.h" + +/** +@brief The cocos2d Application. + +The reason for implement as private inheritance is to hide some interface call by Director. +*/ +class AppDelegate : private cocos2d::Application +{ +public: + AppDelegate(); + virtual ~AppDelegate(); + + virtual void initGLContextAttrs(); + + /** + @brief Implement Director and Scene init code here. + @return true Initialize success, app continue. + @return false Initialize failed, app terminate. + */ + virtual bool applicationDidFinishLaunching(); + + /** + @brief 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/src/chapter10/Chapter10.cpp b/src/chapter9/Chapter9.cpp similarity index 63% rename from src/chapter10/Chapter10.cpp rename to src/chapter9/Chapter9.cpp index bd00ab5..66c623d 100644 --- a/src/chapter10/Chapter10.cpp +++ b/src/chapter9/Chapter9.cpp @@ -1,21 +1,24 @@ -#include "Chapter10.h" -#include "Chapter10_1.h" -#include "Chapter10_2.h" -#include "Chapter10_3.h" -#include "Chapter10_4.h" -#include "Chapter10_5.h" -#include "Chapter10_6.h" -#include "Chapter10_7.h" +#include "Chapter9.h" +#include "Chapter9_1.h" +#include "Chapter9_2.h" +#include "Chapter9_3.h" +#include "Chapter9_4.h" +#include "Chapter9_5.h" +#include "Chapter9_6.h" +#include "Chapter9_7.h" +#include "Chapter9_8.h" +#include "Chapter9_9.h" +#include "Chapter9_10.h" USING_NS_CC; -Scene* Chapter10::createScene() +Scene* Chapter9::createScene() { // 'scene' is an autorelease object auto scene = Scene::create(); // 'layer' is an autorelease object - auto layer = Chapter10::create(); + auto layer = Chapter9::create(); // add layer as a child to scene scene->addChild(layer); @@ -25,7 +28,7 @@ Scene* Chapter10::createScene() } // on "init" you need to initialize your instance -bool Chapter10::init() +bool Chapter9::init() { ////////////////////////////// // 1. super init first @@ -45,7 +48,7 @@ bool Chapter10::init() auto closeItem = MenuItemImage::create( "CloseNormal.png", "CloseSelected.png", - CC_CALLBACK_1(Chapter10::onMenuCloseCallback, this)); + CC_CALLBACK_1(Chapter9::onMenuCloseCallback, this)); closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width/2 , origin.y + closeItem->getContentSize().height/2)); @@ -58,38 +61,38 @@ bool Chapter10::init() ///////////////////////////// // 3. add main menu auto mainmenu = Menu::create(); - int index = 1; + int index = 2; // add "Static sprite3D model" - auto itemlabel = LabelTTF::create("Static sprite3D model", "Arial", 24); + auto itemlabel = LabelTTF::create("3D static model", "Arial", 24); auto menuItem = MenuItemLabel::create(itemlabel); menuItem->setCallback([&](cocos2d::Ref *sender) { - Director::getInstance()->replaceScene(Chapter10_1::createScene()); + Director::getInstance()->replaceScene(Chapter9_1::createScene()); }); menuItem->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); mainmenu->addChild(menuItem,2); mainmenu->setPosition(Vec2::ZERO); - + // add "Sprite3D skeleton animation" - itemlabel = LabelTTF::create("Sprite3D skeleton animation", "Arial", 24); + itemlabel = LabelTTF::create("3D skeleton animation", "Arial", 24); menuItem = MenuItemLabel::create(itemlabel); menuItem->setCallback([&](cocos2d::Ref *sender) { - Director::getInstance()->replaceScene(Chapter10_2::createScene()); + Director::getInstance()->replaceScene(Chapter9_2::createScene()); }); menuItem->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); mainmenu->addChild(menuItem,2); mainmenu->setPosition(Vec2::ZERO); - + // add "Attach weapon" itemlabel = LabelTTF::create("Attach weapon", "Arial", 24); menuItem = MenuItemLabel::create(itemlabel); menuItem->setCallback([&](cocos2d::Ref *sender) { - Director::getInstance()->replaceScene(Chapter10_3::createScene()); + Director::getInstance()->replaceScene(Chapter9_3::createScene()); }); menuItem->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); @@ -98,34 +101,34 @@ bool Chapter10::init() mainmenu->setPosition(Vec2::ZERO); // add "Test reskin" - itemlabel = LabelTTF::create("Test reskin", "Arial", 24); + itemlabel = LabelTTF::create("Reskin", "Arial", 24); menuItem = MenuItemLabel::create(itemlabel); menuItem->setCallback([&](cocos2d::Ref *sender) { - Director::getInstance()->replaceScene(Chapter10_4::createScene()); + Director::getInstance()->replaceScene(Chapter9_4::createScene()); }); menuItem->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); mainmenu->addChild(menuItem,2); mainmenu->setPosition(Vec2::ZERO); - + // add "Test camera" - itemlabel = LabelTTF::create("Test camera", "Arial", 24); + itemlabel = LabelTTF::create("Camera", "Arial", 24); menuItem = MenuItemLabel::create(itemlabel); menuItem->setCallback([&](cocos2d::Ref *sender) { - Director::getInstance()->replaceScene(Chapter10_5::createScene()); + Director::getInstance()->replaceScene(Chapter9_5::createScene()); }); menuItem->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); mainmenu->addChild(menuItem,2); mainmenu->setPosition(Vec2::ZERO); - + // add "Test AABB" - itemlabel = LabelTTF::create("Test AABB", "Arial", 24); + itemlabel = LabelTTF::create("AABB", "Arial", 24); menuItem = MenuItemLabel::create(itemlabel); menuItem->setCallback([&](cocos2d::Ref *sender) { - Director::getInstance()->replaceScene(Chapter10_6::createScene()); + Director::getInstance()->replaceScene(Chapter9_6::createScene()); }); menuItem->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); @@ -134,10 +137,46 @@ bool Chapter10::init() mainmenu->setPosition(Vec2::ZERO); // add "Test OBB" - itemlabel = LabelTTF::create("Test OBB", "Arial", 24); + itemlabel = LabelTTF::create("OBB", "Arial", 24); + menuItem = MenuItemLabel::create(itemlabel); + menuItem->setCallback([&](cocos2d::Ref *sender) { + Director::getInstance()->replaceScene(Chapter9_7::createScene()); + }); + menuItem->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); + + mainmenu->addChild(menuItem,2); + mainmenu->setPosition(Vec2::ZERO); + + // add "Test BillBoard" + itemlabel = LabelTTF::create("BillBoard", "Arial", 24); + menuItem = MenuItemLabel::create(itemlabel); + menuItem->setCallback([&](cocos2d::Ref *sender) { + Director::getInstance()->replaceScene(Chapter9_8::createScene()); + }); + menuItem->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); + + mainmenu->addChild(menuItem,2); + mainmenu->setPosition(Vec2::ZERO); + + // add "Test BillBoard" + itemlabel = LabelTTF::create("Light", "Arial", 24); + menuItem = MenuItemLabel::create(itemlabel); + menuItem->setCallback([&](cocos2d::Ref *sender) { + Director::getInstance()->replaceScene(Chapter9_9::createScene()); + }); + menuItem->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); + + mainmenu->addChild(menuItem,2); + mainmenu->setPosition(Vec2::ZERO); + + // add "Frustum Clipping" + itemlabel = LabelTTF::create("Frustum Clipping", "Arial", 24); menuItem = MenuItemLabel::create(itemlabel); menuItem->setCallback([&](cocos2d::Ref *sender) { - Director::getInstance()->replaceScene(Chapter10_7::createScene()); + Director::getInstance()->replaceScene(Chapter9_10::createScene()); }); menuItem->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40)); @@ -152,7 +191,7 @@ bool Chapter10::init() ///////////////////////////// // 3. add your codes below... - auto label = LabelTTF::create("Chapter 10", "Arial", 24); + auto label = LabelTTF::create("Chapter 9", "Arial", 24); // position the label on the center of the screen label->setPosition(Vec2(origin.x + visibleSize.width/2, @@ -165,7 +204,7 @@ bool Chapter10::init() } -void Chapter10::onMenuCloseCallback(Ref* sender) +void Chapter9::onMenuCloseCallback(Ref* sender) { #if (CC_TARGET_PLATFORM == CC_PLATFORM_WP8) || (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT) MessageBox("You pressed the close button. Windows Store Apps do not implement a close button.","Alert"); diff --git a/src/chapter10/Chapter10.h b/src/chapter9/Chapter9.h similarity index 89% rename from src/chapter10/Chapter10.h rename to src/chapter9/Chapter9.h index ae1d0f8..6ea4fce 100644 --- a/src/chapter10/Chapter10.h +++ b/src/chapter9/Chapter9.h @@ -3,7 +3,7 @@ #include "cocos2d.h" -class Chapter10 : public cocos2d::Node +class Chapter9 : public cocos2d::Node { public: // there's no 'id' in cpp, so we recommend returning the class instance pointer @@ -16,7 +16,7 @@ class Chapter10 : public cocos2d::Node void onMenuCloseCallback(cocos2d::Ref* sender); // implement the "static create()" method manually - CREATE_FUNC(Chapter10); + CREATE_FUNC(Chapter9); }; #endif // __HELLOWORLD_SCENE_H__ diff --git a/src/chapter10/Chapter10_1.cpp b/src/chapter9/Chapter9_1.cpp similarity index 68% rename from src/chapter10/Chapter10_1.cpp rename to src/chapter9/Chapter9_1.cpp index f0f293a..f62b2d0 100644 --- a/src/chapter10/Chapter10_1.cpp +++ b/src/chapter9/Chapter9_1.cpp @@ -1,9 +1,9 @@ -#include "Chapter10_1.h" -#include "Chapter10.h" +#include "Chapter9_1.h" +#include "Chapter9.h" USING_NS_CC; -Scene* Chapter10_1::createScene() +Scene* Chapter9_1::createScene() { cocos2d::Rect visibleRect = Director::getInstance()->getOpenGLView()->getVisibleRect(); @@ -14,7 +14,7 @@ Scene* Chapter10_1::createScene() auto scene = Scene::create(); // add title - auto label = LabelTTF::create("Static model test", "Arial", 24); + auto label = LabelTTF::create("3D static model", "Arial", 24); label->setPosition(Vec2(visibleRect.origin.x+visibleRect.size.width/2, visibleRect.origin.y+visibleRect.size.height/2).x, Vec2(visibleRect.origin.x+visibleRect.size.width/2, visibleRect.origin.y+visibleRect.size.height).y - 30); @@ -22,23 +22,19 @@ Scene* Chapter10_1::createScene() //add the menu item for back to main menu label = LabelTTF::create("MainMenu", "Arial", 24); - auto menuItem = MenuItemLabel::create(label); menuItem->setCallback([&](cocos2d::Ref *sender) { - Director::getInstance()->replaceScene(Chapter10::createScene()); + Director::getInstance()->replaceScene(Chapter9::createScene()); }); auto menu = Menu::create(menuItem, nullptr); - menu->setPosition( Vec2::ZERO ); - menuItem->setPosition( Vec2( Vec2(visibleRect.origin.x+visibleRect.size.width, visibleRect.origin.y+visibleRect.size.height/2).x - 80, Vec2(visibleRect.origin.x+visibleRect.size.width/2, visibleRect.origin.y).y + 25) ); - + menuItem->setPosition( Vec2( visibleRect.origin.x+visibleRect.size.width - 80, visibleRect.origin.y + 25) ); scene->addChild(menu, 1); + // create 3D sprite auto sprite = Sprite3D::create("boss.c3b"); sprite->setScale(5.f); - - sprite->setPosition( Vec2(visibleRect.origin.x+visibleRect.size.width/2, visibleRect.origin.y+visibleRect.size.height/2).x, - Vec2(visibleRect.origin.x+visibleRect.size.width/2, visibleRect.origin.y+visibleRect.size.height/2).y ); + sprite->setPosition( Vec2(visibleRect.origin.x+visibleRect.size.width/2, visibleRect.origin.y+visibleRect.size.height/2)); ActionInterval* action; action = ScaleBy::create(3, 2); diff --git a/src/chapter9/Chapter9_1.h b/src/chapter9/Chapter9_1.h new file mode 100644 index 0000000..25efaf2 --- /dev/null +++ b/src/chapter9/Chapter9_1.h @@ -0,0 +1,14 @@ +#ifndef __CHAPTER_9_1_H__ +#define __CHAPTER_9_1_H__ + +#include "cocos2d.h" + +USING_NS_CC; + +class Chapter9_1 : public Ref +{ + public: + static cocos2d::Scene* createScene(); +}; + +#endif // __CHAPTER_9_1_H__ diff --git a/src/chapter9/Chapter9_10.cpp b/src/chapter9/Chapter9_10.cpp new file mode 100644 index 0000000..bdfa145 --- /dev/null +++ b/src/chapter9/Chapter9_10.cpp @@ -0,0 +1,133 @@ +#include "Chapter9_10.h" +#include "Chapter9.h" +#include "DrawNode3D.h" + +USING_NS_CC; + +Scene* Chapter9_10::createScene() +{ + Size visibleSize = Director::getInstance()->getVisibleSize(); + Vec2 origin = Director::getInstance()->getVisibleOrigin(); + auto winSize = Director::getInstance()->getWinSize(); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // show draw call + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Director::getInstance()->setDisplayStats(true); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create a scene + // 'scene' is an autorelease object + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto scene = Scene::create(); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // add title + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto label = LabelTTF::create("Frustum Clipping", "Arial", 24); + label->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - 30); + scene->addChild(label, 0); + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // add zoom in button + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + label = LabelTTF::create("zoom in", "Arial", 24); + label->setPosition(winSize.width - 50, origin.y - 100); + scene->addChild(label, 0); + + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // add 3d layer + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto layer3D = Layer::create(); + scene->addChild(layer3D,2); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // add camera + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + static Camera* camera = nullptr; + if (camera == nullptr) { + camera = Camera::createPerspective(60, (GLfloat)winSize.width/winSize.height, 1, 500); + camera->setCameraFlag(CameraFlag::USER1);// set camera flag + camera->setPosition3D(Vec3(0, 100, 200)); + camera->lookAt(Vec3(0, 0, 0), Vec3(0, 1, 0)); + layer3D->addChild(camera); + } + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // open frustum clipping + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + camera->enableFrustumCulling(true, true); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // add the menu item for back to main menu + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + label = LabelTTF::create("MainMenu", "Arial", 24); + auto menuItemMain = MenuItemLabel::create(label); + menuItemMain->setPosition( Vec2(origin.x + visibleSize.width - 80, origin.y + 25) ); + menuItemMain->setCallback([&](cocos2d::Ref *sender) { + Director::getInstance()->replaceScene(Chapter9::createScene()); + Director::getInstance()->setDisplayStats(false); + camera = nullptr; + }); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // add zoom out button + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + label = LabelTTF::create("Zoom Out", "Arial", 34); + auto menuItemZoomOut = MenuItemLabel::create(label); + menuItemZoomOut->setPosition( winSize.width - 80, origin.y + visibleSize.height - 100 ); + menuItemZoomOut->setCallback([&](cocos2d::Ref *sender) { + Vec3 dir = camera->getPosition3D() - Vec3::ZERO; + Vec3 cameraPos = camera->getPosition3D(); + if(dir.length() <= 300) + { + dir.normalize(); + cameraPos += dir * 5; + camera->setPosition3D(cameraPos); + } + }); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // add zoom in button + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + label = LabelTTF::create("Zoom In", "Arial", 34); + auto menuItemZoomIn = MenuItemLabel::create(label); + menuItemZoomIn->setPosition( winSize.width - 80, origin.y + visibleSize.height - 140 ); + menuItemZoomIn->setCallback([&](cocos2d::Ref *sender) { + Vec3 dir = camera->getPosition3D() - Vec3::ZERO; + Vec3 cameraPos = camera->getPosition3D(); + if(cameraPos.length() >= 50) + { + dir.normalize(); + cameraPos -= dir * 5; + camera->setPosition3D(cameraPos); + } + }); + + auto menuMain = Menu::create(menuItemMain, menuItemZoomOut, menuItemZoomIn, nullptr); + menuMain->setPosition( Vec2::ZERO ); + scene->addChild(menuMain, 1); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // add sprite3D + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + const int NUM(5); + for (int x = -NUM; x < NUM; x++) + { + for (int z = -NUM; z < NUM; z++) + { + auto sprite = Sprite3D::create("orc.c3b"); + sprite->setPosition3D(Vec3(x * 30, 0, z * 30)); + sprite->setRotation3D(Vec3(0, 180, 0)); + layer3D->addChild(sprite); + } + } + + layer3D->setCameraMask((unsigned short)CameraFlag::USER1); + + // return the scene + return scene; +} \ No newline at end of file diff --git a/src/chapter9/Chapter9_10.h b/src/chapter9/Chapter9_10.h new file mode 100644 index 0000000..ceaa571 --- /dev/null +++ b/src/chapter9/Chapter9_10.h @@ -0,0 +1,14 @@ +#ifndef __CHAPTER_9_10_H__ +#define __CHAPTER_9_10_H__ + +#include "cocos2d.h" + +USING_NS_CC; + +class Chapter9_10 : public Ref +{ + public: + static cocos2d::Scene* createScene(); +}; + +#endif // __CHAPTER_9_10_H__ diff --git a/src/chapter10/Chapter10_2.cpp b/src/chapter9/Chapter9_2.cpp similarity index 76% rename from src/chapter10/Chapter10_2.cpp rename to src/chapter9/Chapter9_2.cpp index 04a67d0..046e026 100644 --- a/src/chapter10/Chapter10_2.cpp +++ b/src/chapter9/Chapter9_2.cpp @@ -1,11 +1,10 @@ -#include "Chapter10_2.h" -#include "Chapter10.h" +#include "Chapter9_2.h" +#include "Chapter9.h" USING_NS_CC; -Scene* Chapter10_2::createScene() +Scene* Chapter9_2::createScene() { - //cocos2d::Rect visibleRect = Director::getInstance()->getOpenGLView()->getVisibleRect(); Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); @@ -16,7 +15,7 @@ Scene* Chapter10_2::createScene() auto scene = Scene::create(); // add title - auto label = LabelTTF::create("3D model aniamtion", "Arial", 24); + auto label = LabelTTF::create("3D skeleton animation", "Arial", 24); label->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - 30); @@ -24,22 +23,19 @@ Scene* Chapter10_2::createScene() //add the menu item for back to main menu label = LabelTTF::create("MainMenu", "Arial", 24); - auto menuItem = MenuItemLabel::create(label); menuItem->setCallback([&](cocos2d::Ref *sender) { - Director::getInstance()->replaceScene(Chapter10::createScene()); + Director::getInstance()->replaceScene(Chapter9::createScene()); }); auto menu = Menu::create(menuItem, nullptr); - menu->setPosition( Vec2::ZERO ); - menuItem->setPosition( Vec2( Vec2(origin.x+visibleSize.width, origin.y+visibleSize.height/2).x - 80, Vec2(origin.x+visibleSize.width/2, origin.y).y + 25) ); - + menuItem->setPosition( Vec2(origin.x+visibleSize.width - 80, origin.y + 25) ); scene->addChild(menu, 1); std::string fileName = "orc.c3b"; auto sprite = Sprite3D::create(fileName); - sprite->setScale(5.f); + sprite->setScale(8.f); sprite->setRotation3D(Vec3(0,180,0)); sprite->setPosition( Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).y ); diff --git a/src/chapter10/Chapter10_2.h b/src/chapter9/Chapter9_2.h similarity index 60% rename from src/chapter10/Chapter10_2.h rename to src/chapter9/Chapter9_2.h index e7ff784..cab1ef8 100644 --- a/src/chapter10/Chapter10_2.h +++ b/src/chapter9/Chapter9_2.h @@ -1,11 +1,11 @@ -#ifndef __CHAPTER_10_2_H__ -#define __CHAPTER_10_2_H__ +#ifndef __CHAPTER_9_2_H__ +#define __CHAPTER_9_2_H__ #include "cocos2d.h" USING_NS_CC; -class Chapter10_2 : public Ref +class Chapter9_2 : public Ref { public: static cocos2d::Scene* createScene(); diff --git a/src/chapter10/Chapter10_3.cpp b/src/chapter9/Chapter9_3.cpp similarity index 54% rename from src/chapter10/Chapter10_3.cpp rename to src/chapter9/Chapter9_3.cpp index 9390ea8..ad6ceb0 100644 --- a/src/chapter10/Chapter10_3.cpp +++ b/src/chapter9/Chapter9_3.cpp @@ -1,11 +1,10 @@ -#include "Chapter10_3.h" -#include "Chapter10.h" +#include "Chapter9_3.h" +#include "Chapter9.h" USING_NS_CC; -Scene* Chapter10_3::createScene() +Scene* Chapter9_3::createScene() { - //cocos2d::Rect visibleRect = Director::getInstance()->getOpenGLView()->getVisibleRect(); Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); @@ -15,41 +14,18 @@ Scene* Chapter10_3::createScene() // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ auto scene = Scene::create(); - // add title - auto label = LabelTTF::create("3D model aniamtion", "Arial", 24); - label->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, - Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - 30); - - scene->addChild(label, -1); - - //add the menu item for back to main menu - label = LabelTTF::create("MainMenu", "Arial", 24); - - auto menuItem = MenuItemLabel::create(label); - menuItem->setCallback([&](cocos2d::Ref *sender) { - Director::getInstance()->replaceScene(Chapter10::createScene()); - }); - auto menu = Menu::create(menuItem, nullptr); - - menu->setPosition( Vec2::ZERO ); - menuItem->setPosition( Vec2( Vec2(origin.x+visibleSize.width, origin.y+visibleSize.height/2).x - 80, Vec2(origin.x+visibleSize.width/2, origin.y).y + 25) ); - - scene->addChild(menu, 1); - + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create sprite + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ std::string fileName = "orc.c3b"; - - auto sprite = Sprite3D::create(fileName); - sprite->setScale(5.f); + static Sprite3D* sprite = nullptr; + if(sprite == nullptr) + sprite = Sprite3D::create(fileName); + sprite->setScale(8.f); sprite->setRotation3D(Vec3(0,180,0)); sprite->setPosition( Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).y ); - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // attach weapon - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - auto sp = Sprite3D::create("axe.c3b"); - sprite->getAttachNode("Bip001 R Hand")->addChild(sp); - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // play animation // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -61,6 +37,55 @@ Scene* Chapter10_3::createScene() sprite->runAction(RepeatForever::create(animate)); } + // add title + auto label = LabelTTF::create("Attach weapon", "Arial", 24); + label->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - 30); + + scene->addChild(label, -1); + + static bool isAttach = false; + auto label1 = LabelTTF::create("Attach", "Arial", 24); + static MenuItemLabel* item1 = nullptr; + if (item1 == nullptr) + { + item1 = MenuItemLabel::create(label1); + } + + item1->setCallback([&](cocos2d::Ref *sender) { + if(!isAttach) + { + auto sp = Sprite3D::create("axe.c3b"); + sprite->getAttachNode("Bip001 R Hand")->addChild(sp); + item1->setString("Detach"); + } + else + { + sprite->removeAllAttachNode(); + item1->setString("Attach"); + } + isAttach = !isAttach; + }); + auto itemSize = item1->getContentSize(); + item1->setPosition( Vec2(origin.x + 50, origin.y+visibleSize.height - itemSize.height * 2)); + + auto menuSelect = CCMenu::create(item1, NULL); + menuSelect->setPosition(Vec2(0,0)); + scene->addChild(menuSelect, 1); + + //add the menu item for back to main menu + label = LabelTTF::create("MainMenu", "Arial", 24); + auto menuItem = MenuItemLabel::create(label); + menuItem->setCallback([&](cocos2d::Ref *sender) { + item1 = nullptr; + sprite = nullptr; + Director::getInstance()->replaceScene(Chapter9::createScene()); + }); + auto menu = Menu::create(menuItem, nullptr); + menu->setPosition( Vec2::ZERO ); + menuItem->setPosition( Vec2(origin.x+visibleSize.width - 80, origin.y + 25) ); + scene->addChild(menu, 1); + //add to scene scene->addChild(sprite); diff --git a/src/chapter10/Chapter10_5.h b/src/chapter9/Chapter9_3.h similarity index 60% rename from src/chapter10/Chapter10_5.h rename to src/chapter9/Chapter9_3.h index 6c0ac3b..37db103 100644 --- a/src/chapter10/Chapter10_5.h +++ b/src/chapter9/Chapter9_3.h @@ -1,11 +1,11 @@ -#ifndef __CHAPTER_10_5_H__ -#define __CHAPTER_10_5_H__ +#ifndef __CHAPTER_9_3_H__ +#define __CHAPTER_9_3_H__ #include "cocos2d.h" USING_NS_CC; -class Chapter10_5 : public Ref +class Chapter9_3 : public Ref { public: static cocos2d::Scene* createScene(); diff --git a/src/chapter10/Chapter10_4.cpp b/src/chapter9/Chapter9_4.cpp similarity index 79% rename from src/chapter10/Chapter10_4.cpp rename to src/chapter9/Chapter9_4.cpp index 93f72d2..6800e12 100644 --- a/src/chapter10/Chapter10_4.cpp +++ b/src/chapter9/Chapter9_4.cpp @@ -1,9 +1,9 @@ -#include "Chapter10_4.h" -#include "Chapter10.h" +#include "Chapter9_4.h" +#include "Chapter9.h" USING_NS_CC; -Scene* Chapter10_4::createScene() +Scene* Chapter9_4::createScene() { Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); @@ -24,34 +24,30 @@ Scene* Chapter10_4::createScene() auto scene = Scene::create(); // add title - auto label = LabelTTF::create("3D model aniamtion", "Arial", 24); + auto label = LabelTTF::create("3D model animation", "Arial", 24); label->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - 30); scene->addChild(label, -1); - //add the menu item for back to main menu - label = LabelTTF::create("MainMenu", "Arial", 24); - - auto menuItem = MenuItemLabel::create(label); - menuItem->setCallback([&](cocos2d::Ref *sender) { - Director::getInstance()->replaceScene(Chapter10::createScene()); - }); - auto menu = Menu::create(menuItem, nullptr); - - menu->setPosition( Vec2::ZERO ); - menuItem->setPosition( Vec2( Vec2(origin.x+visibleSize.width, origin.y+visibleSize.height/2).x - 80, Vec2(origin.x+visibleSize.width/2, origin.y).y + 25) ); - - scene->addChild(menu, 1); - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // create sprite3D // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ std::string fileName = "ReskinGirl.c3b"; - static auto sprite = Sprite3D::create(fileName); - sprite->setScale(5.f); + static Sprite3D* sprite = nullptr; + if(sprite == nullptr) + sprite = Sprite3D::create(fileName); + sprite->setScale(6.f); sprite->setPosition( Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, - Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).y ); + Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).y ); + auto animation = Animation3D::create(fileName); + if (animation) + { + auto animate = Animate3D::create(animation); + sprite->runAction(RepeatForever::create(animate)); + } + scene->addChild(sprite); + auto girlPants_ = sprite->getMeshByName(girlPants[1]); if(girlPants) { @@ -203,22 +199,27 @@ Scene* Chapter10_4::createScene() } }); - item1->setPosition( Vec2(Vec2(origin.x, origin.y+visibleSize.height/2).x+50, - Vec2(origin.x+visibleSize.width/2, origin.y).y+item1->getContentSize().height * 4 ) ); - item2->setPosition( Vec2(Vec2(origin.x, origin.y+visibleSize.height/2).x+50, - Vec2(origin.x+visibleSize.width/2, origin.y).y+item1->getContentSize().height * 5 ) ); - item3->setPosition( Vec2(Vec2(origin.x, origin.y+visibleSize.height/2).x+50, - Vec2(origin.x+visibleSize.width/2, origin.y).y+item1->getContentSize().height * 6 ) ); - item4->setPosition( Vec2(Vec2(origin.x, origin.y+visibleSize.height/2).x+50, - Vec2(origin.x+visibleSize.width/2, origin.y).y+item1->getContentSize().height * 7 ) ); - item5->setPosition( Vec2(Vec2(origin.x, origin.y+visibleSize.height/2).x+50, - Vec2(origin.x+visibleSize.width/2, origin.y).y+item1->getContentSize().height * 8 ) ); + auto itemSize = item1->getContentSize(); + item1->setPosition( Vec2(origin.x + 50, origin.y+visibleSize.height - itemSize.height * 2)); + item2->setPosition( Vec2(origin.x + 50, origin.y+visibleSize.height - itemSize.height * 3)); + item3->setPosition( Vec2(origin.x + 50, origin.y+visibleSize.height - itemSize.height * 4)); + item4->setPosition( Vec2(origin.x + 50, origin.y+visibleSize.height - itemSize.height * 5)); + item5->setPosition( Vec2(origin.x + 50, origin.y+visibleSize.height - itemSize.height * 6)); auto pMenu1 = CCMenu::create(item1,item2,item3,item4,item5,NULL); pMenu1->setPosition(Vec2(0,0)); scene->addChild(pMenu1, 10); - //add to scene - scene->addChild(sprite); + //add the menu item for back to main menu + label = LabelTTF::create("MainMenu", "Arial", 24); + auto menuItem = MenuItemLabel::create(label); + menuItem->setCallback([&](cocos2d::Ref *sender) { + sprite = nullptr; + Director::getInstance()->replaceScene(Chapter9::createScene()); + }); + auto menu = Menu::create(menuItem, nullptr); + menu->setPosition( Vec2::ZERO ); + menuItem->setPosition( Vec2(origin.x+visibleSize.width - 80, origin.y + 25) ); + scene->addChild(menu, 1); // return the scene return scene; diff --git a/src/chapter10/Chapter10_3.h b/src/chapter9/Chapter9_4.h similarity index 60% rename from src/chapter10/Chapter10_3.h rename to src/chapter9/Chapter9_4.h index ec52357..4087c48 100644 --- a/src/chapter10/Chapter10_3.h +++ b/src/chapter9/Chapter9_4.h @@ -1,11 +1,11 @@ -#ifndef __CHAPTER_10_3_H__ -#define __CHAPTER_10_3_H__ +#ifndef __CHAPTER_9_4_H__ +#define __CHAPTER_9_4_H__ #include "cocos2d.h" USING_NS_CC; -class Chapter10_3 : public Ref +class Chapter9_4 : public Ref { public: static cocos2d::Scene* createScene(); diff --git a/src/chapter10/Chapter10_5.cpp b/src/chapter9/Chapter9_5.cpp similarity index 84% rename from src/chapter10/Chapter10_5.cpp rename to src/chapter9/Chapter9_5.cpp index 7264d82..12f50fb 100644 --- a/src/chapter10/Chapter10_5.cpp +++ b/src/chapter9/Chapter9_5.cpp @@ -1,11 +1,10 @@ -#include "Chapter10_5.h" -#include "Chapter10.h" +#include "Chapter9_5.h" +#include "Chapter9.h" USING_NS_CC; -Scene* Chapter10_5::createScene() +Scene* Chapter9_5::createScene() { - //cocos2d::Rect visibleRect = Director::getInstance()->getOpenGLView()->getVisibleRect(); Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); auto winSize = Director::getInstance()->getWinSize(); @@ -17,7 +16,7 @@ Scene* Chapter10_5::createScene() auto scene = Scene::create(); // add title - auto label = LabelTTF::create("camera test", "Arial", 24); + auto label = LabelTTF::create("Camera", "Arial", 24); label->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - 30); @@ -25,16 +24,13 @@ Scene* Chapter10_5::createScene() //add the menu item for back to main menu label = LabelTTF::create("MainMenu", "Arial", 24); - auto menuItem = MenuItemLabel::create(label); menuItem->setCallback([&](cocos2d::Ref *sender) { - Director::getInstance()->replaceScene(Chapter10::createScene()); + Director::getInstance()->replaceScene(Chapter9::createScene()); }); auto menu = Menu::create(menuItem, nullptr); - menu->setPosition( Vec2::ZERO ); - menuItem->setPosition( Vec2( Vec2(origin.x+visibleSize.width, origin.y+visibleSize.height/2).x - 80, Vec2(origin.x+visibleSize.width/2, origin.y).y + 25) ); - + menuItem->setPosition( Vec2(origin.x+visibleSize.width - 80, origin.y + 25) ); scene->addChild(menu, 1); auto layer3D=Layer::create(); diff --git a/src/chapter9/Chapter9_5.h b/src/chapter9/Chapter9_5.h new file mode 100644 index 0000000..79c63bd --- /dev/null +++ b/src/chapter9/Chapter9_5.h @@ -0,0 +1,14 @@ +#ifndef __CHAPTER_9_5_H__ +#define __CHAPTER_9_5_H__ + +#include "cocos2d.h" + +USING_NS_CC; + +class Chapter9_5 : public Ref +{ + public: + static cocos2d::Scene* createScene(); +}; + +#endif // __CHAPTER_9_3_H__ diff --git a/src/chapter10/Chapter10_6.cpp b/src/chapter9/Chapter9_6.cpp similarity index 87% rename from src/chapter10/Chapter10_6.cpp rename to src/chapter9/Chapter9_6.cpp index 7c3f30e..23e7925 100644 --- a/src/chapter10/Chapter10_6.cpp +++ b/src/chapter9/Chapter9_6.cpp @@ -1,13 +1,11 @@ -#include "Chapter10_6.h" -#include "Chapter10.h" +#include "Chapter9_6.h" +#include "Chapter9.h" #include "DrawNode3D.h" USING_NS_CC; -Scene* Chapter10_6::createScene() +Scene* Chapter9_6::createScene() { - cocos2d::Rect visibleRect = Director::getInstance()->getOpenGLView()->getVisibleRect(); - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // create a scene // 'scene' is an autorelease object @@ -38,24 +36,20 @@ _pick(false) auto winSize = Director::getInstance()->getWinSize(); // add title - auto label = LabelTTF::create("AABB test", "Arial", 24); + auto label = LabelTTF::create("AABB", "Arial", 24); label->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - 30); - this->addChild(label, -1); //add the menu item for back to main menu label = LabelTTF::create("MainMenu", "Arial", 24); - auto menuItem = MenuItemLabel::create(label); menuItem->setCallback([&](cocos2d::Ref *sender) { - Director::getInstance()->replaceScene(Chapter10::createScene()); + Director::getInstance()->replaceScene(Chapter9::createScene()); }); auto menu = Menu::create(menuItem, nullptr); - menu->setPosition( Vec2::ZERO ); - menuItem->setPosition( Vec2( Vec2(origin.x+visibleSize.width, origin.y+visibleSize.height/2).x - 80, Vec2(origin.x+visibleSize.width/2, origin.y).y + 25) ); - + menuItem->setPosition( Vec2(origin.x+visibleSize.width - 80, origin.y + 25) ); this->addChild(menu, 1); auto layer3D = Layer::create(); diff --git a/src/chapter10/Chapter10_6.h b/src/chapter9/Chapter9_6.h similarity index 73% rename from src/chapter10/Chapter10_6.h rename to src/chapter9/Chapter9_6.h index 23ba401..3ba62df 100644 --- a/src/chapter10/Chapter10_6.h +++ b/src/chapter9/Chapter9_6.h @@ -1,12 +1,12 @@ -#ifndef __CHAPTER_10_6_H__ -#define __CHAPTER_10_6_H__ +#ifndef __CHAPTER_9_6_H__ +#define __CHAPTER_9_6_H__ #include "cocos2d.h" #include "DrawNode3D.h" USING_NS_CC; -class Chapter10_6 : public Ref +class Chapter9_6 : public Ref { public: static cocos2d::Scene* createScene(); @@ -22,10 +22,10 @@ class ABBTest : public Layer void onTouchesEnded(const std::vector& touches, Event* event); void onTouchesMoved(const std::vector& touches, Event* event); protected: - DrawNode3D* _drawAABB; - AABB _aabb; + DrawNode3D* _drawAABB; + AABB _aabb; Camera* _camera; bool _pick; }; -#endif // __CHAPTER_10_6_H__ +#endif // __CHAPTER_9_6_H__ diff --git a/src/chapter10/Chapter10_7.cpp b/src/chapter9/Chapter9_7.cpp similarity index 87% rename from src/chapter10/Chapter10_7.cpp rename to src/chapter9/Chapter9_7.cpp index a829dc9..9e39f69 100644 --- a/src/chapter10/Chapter10_7.cpp +++ b/src/chapter9/Chapter9_7.cpp @@ -1,13 +1,11 @@ -#include "Chapter10_7.h" -#include "Chapter10.h" +#include "Chapter9_7.h" +#include "Chapter9.h" #include "DrawNode3D.h" USING_NS_CC; -Scene* Chapter10_7::createScene() +Scene* Chapter9_7::createScene() { - cocos2d::Rect visibleRect = Director::getInstance()->getOpenGLView()->getVisibleRect(); - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // create a scene // 'scene' is an autorelease object @@ -38,7 +36,7 @@ _camera(nullptr) auto winSize = Director::getInstance()->getWinSize(); // add title - auto label = LabelTTF::create("OBB test", "Arial", 24); + auto label = LabelTTF::create("OBB", "Arial", 24); label->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - 30); @@ -46,16 +44,13 @@ _camera(nullptr) //add the menu item for back to main menu label = LabelTTF::create("MainMenu", "Arial", 24); - auto menuItem = MenuItemLabel::create(label); menuItem->setCallback([&](cocos2d::Ref *sender) { - Director::getInstance()->replaceScene(Chapter10::createScene()); + Director::getInstance()->replaceScene(Chapter9::createScene()); }); auto menu = Menu::create(menuItem, nullptr); - menu->setPosition( Vec2::ZERO ); - menuItem->setPosition( Vec2( Vec2(origin.x+visibleSize.width, origin.y+visibleSize.height/2).x - 80, Vec2(origin.x+visibleSize.width/2, origin.y).y + 25) ); - + menuItem->setPosition( Vec2(origin.x+visibleSize.width - 80, origin.y + 25) ); this->addChild(menu, 1); auto layer3D=Layer::create(); diff --git a/src/chapter10/Chapter10_7.h b/src/chapter9/Chapter9_7.h similarity index 78% rename from src/chapter10/Chapter10_7.h rename to src/chapter9/Chapter9_7.h index 05a20c8..53b22b7 100644 --- a/src/chapter10/Chapter10_7.h +++ b/src/chapter9/Chapter9_7.h @@ -1,12 +1,12 @@ -#ifndef __CHAPTER_10_7_H__ -#define __CHAPTER_10_7_H__ +#ifndef __CHAPTER_9_7_H__ +#define __CHAPTER_9_7_H__ #include "cocos2d.h" #include "DrawNode3D.h" USING_NS_CC; -class Chapter10_7 : public Ref +class Chapter9_7 : public Ref { public: static cocos2d::Scene* createScene(); @@ -22,8 +22,8 @@ class OBBTest : public Layer void onTouchesEnded(const std::vector& touches, Event* event); void onTouchesMoved(const std::vector& touches, Event* event); protected: - DrawNode3D* _drawAABB; - OBB _obb; + DrawNode3D* _drawAABB; + OBB _obb; Sprite3D* _sprite; Camera* _camera; bool _pick; diff --git a/src/chapter9/Chapter9_8.cpp b/src/chapter9/Chapter9_8.cpp new file mode 100644 index 0000000..bdbad5a --- /dev/null +++ b/src/chapter9/Chapter9_8.cpp @@ -0,0 +1,111 @@ +#include "Chapter9_8.h" +#include "Chapter9.h" +#include "DrawNode3D.h" + +USING_NS_CC; + +Scene* Chapter9_8::createScene() +{ + Size visibleSize = Director::getInstance()->getVisibleSize(); + Vec2 origin = Director::getInstance()->getVisibleOrigin(); + auto winSize = Director::getInstance()->getWinSize(); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create a scene + // 'scene' is an autorelease object + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto scene = Scene::create(); + + // add title + auto label = LabelTTF::create("BillBoard", "Arial", 24); + label->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - 30); + + scene->addChild(label, -1); + + //add the menu item for back to main menu + label = LabelTTF::create("MainMenu", "Arial", 24); + auto menuItem = MenuItemLabel::create(label); + menuItem->setCallback([&](cocos2d::Ref *sender) { + Director::getInstance()->replaceScene(Chapter9::createScene()); + }); + auto menu = Menu::create(menuItem, nullptr); + menu->setPosition( Vec2::ZERO ); + menuItem->setPosition( Vec2(origin.x+visibleSize.width - 80, origin.y + 25) ); + scene->addChild(menu, 1); + + + auto layer3D=Layer::create(); + scene->addChild(layer3D,2); + + static std::vector _billboards; + for (int i = -4; i < 4; ++i) + { + auto billboard = BillBoard::create("Blue_Front1.png"); + billboard->setScale(0.5f); + billboard->setPosition3D(Vec3(i * 50, 0.0f, 0)); + billboard->setBlendFunc(cocos2d::BlendFunc::ALPHA_NON_PREMULTIPLIED); + _billboards.push_back(billboard); + layer3D->addChild(billboard); + } + + for (int i = -4; i < 4; ++i) + { + auto billboard = BillBoard::create("Blue_Front1.png"); + billboard->setScale(0.5f); + billboard->setPosition3D(Vec3(i * 50, 0.0f, -50)); + billboard->setBlendFunc(cocos2d::BlendFunc::ALPHA_NON_PREMULTIPLIED); + _billboards.push_back(billboard); + layer3D->addChild(billboard); + } + + // add camera + auto camera=Camera::createPerspective(60, (GLfloat)winSize.width/winSize.height, 1, 1000); + camera->setCameraFlag(CameraFlag::USER1);// set camera flag + camera->setPosition3D(Vec3(0, 150, 230)); + camera->lookAt(Vec3(0, 0, 0), Vec3(0,1,0)); + + // create camera action + auto action = MoveBy::create(3, Vec2(100, 0)); + auto actionrev = action->reverse(); + auto actionback = MoveBy::create(3, Vec2(-100, 0)); + auto actionbackrev = actionback->reverse(); + auto seq = Sequence::create( action, actionrev, actionback, actionbackrev, nullptr ); + + // run camera action + camera->runAction( RepeatForever::create(seq) ); + + layer3D->addChild(camera); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // set camera mask + // when node's camera-mask & camer-flag result is true, the node is visible for this camera. + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + layer3D->setCameraMask(0x2); + + // add select menue + auto label1 = LabelTTF::create("Point Oriented", "Arial", 24); + auto item1 = MenuItemLabel::create(label1); + item1->setCallback([&](cocos2d::Ref *sender) { + for (auto& billboard : _billboards) { + billboard->setMode(BillBoard::Mode::VIEW_POINT_ORIENTED); + } + }); + auto label2 = LabelTTF::create("Plane Oriented", "Arial", 24); + auto item2 = MenuItemLabel::create(label2); + item2->setCallback([&](cocos2d::Ref *sender) { + for (auto& billboard : _billboards) { + billboard->setMode(BillBoard::Mode::VIEW_PLANE_ORIENTED); + } + }); + auto itemSize = item1->getContentSize(); + item1->setPosition( Vec2(origin.x + 100, origin.y+visibleSize.height - itemSize.height * 2)); + item2->setPosition( Vec2(origin.x + 100, origin.y+visibleSize.height - itemSize.height * 3)); + + auto menuSelect = CCMenu::create(item1, item2, NULL); + menuSelect->setPosition(Vec2(0,0)); + scene->addChild(menuSelect, 1); + + // return the scene + return scene; +} \ No newline at end of file diff --git a/src/chapter9/Chapter9_8.h b/src/chapter9/Chapter9_8.h new file mode 100644 index 0000000..1dc7bd4 --- /dev/null +++ b/src/chapter9/Chapter9_8.h @@ -0,0 +1,15 @@ +#ifndef __CHAPTER_9_8_H__ +#define __CHAPTER_9_8_H__ + +#include "cocos2d.h" +#include "DrawNode3D.h" + +USING_NS_CC; + +class Chapter9_8 : public Ref +{ + public: + static cocos2d::Scene* createScene(); +}; + +#endif // __CHAPTER_9_8_H__ diff --git a/src/chapter9/Chapter9_9.cpp b/src/chapter9/Chapter9_9.cpp new file mode 100755 index 0000000..d396b00 --- /dev/null +++ b/src/chapter9/Chapter9_9.cpp @@ -0,0 +1,200 @@ +#include "Chapter9_9.h" +#include "Chapter9.h" + + +USING_NS_CC; + +Scene* Chapter9_9::createScene() +{ + Size visibleSize = Director::getInstance()->getVisibleSize(); + Vec2 origin = Director::getInstance()->getVisibleOrigin(); + auto winSize = Director::getInstance()->getWinSize(); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // create a scene + // 'scene' is an autorelease object + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + auto scene = Scene::create(); + + // add title + auto label = LabelTTF::create("Light", "Arial", 24); + label->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x, + Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - 30); + + scene->addChild(label, -1); + + //add the menu item for back to main menu + label = LabelTTF::create("MainMenu", "Arial", 24); + auto menuItem = MenuItemLabel::create(label); + menuItem->setCallback([&](cocos2d::Ref *sender) { + Director::getInstance()->replaceScene(Chapter9::createScene()); + }); + auto menu = Menu::create(menuItem, nullptr); + menu->setPosition( Vec2::ZERO ); + menuItem->setPosition( Vec2(origin.x+visibleSize.width - 80, origin.y + 25) ); + scene->addChild(menu, 1); + + auto layer = Layer::create(); + scene->addChild(layer); + + //add sprite3d + { + std::string fileName = "orc.c3b"; + auto sprite = Sprite3D::create(fileName); + sprite->setRotation3D(Vec3(0.0, 180.0, 0.0)); + sprite->setPosition(Vec2(-30.0, 0.0)); + sprite->setScale(2.0); + auto sp = Sprite3D::create("axe.c3b"); + sprite->getAttachNode("Bip001 R Hand")->addChild(sp); + auto animation = Animation3D::create(fileName); + if (animation) + { + auto animate = Animate3D::create(animation); + sprite->runAction(RepeatForever::create(animate)); + } + layer->addChild(sprite); + } + + { + std::string fileName = "sphere.c3b"; + auto sprite = Sprite3D::create(fileName); + sprite->setScale(2.0f); + sprite->setPosition(Vec2(30.0, 0.0)); + layer->addChild(sprite); + } + + { + std::string fileName = "plane.obj"; + auto sprite = Sprite3D::create(fileName); + sprite->setTexture("planetex.png"); + sprite->setScale(20.0f); + sprite->setPosition(Vec2(0.0, -10.0f)); + layer->addChild(sprite); + } + + //end add sprite3d + + //add lights + auto s = Director::getInstance()->getWinSize(); + auto ambientLight = AmbientLight::create(Color3B(200, 200, 200)); + ambientLight->setEnabled(true); + layer->addChild(ambientLight); + + auto directionalLight = DirectionLight::create(Vec3(0.0f, -1.0f, 0.0f), Color3B(200, 200, 200)); + directionalLight->setEnabled(false); + layer->addChild(directionalLight); + + auto pointLight = PointLight::create(Vec3(-200.0f, 200.0f, 0.0f), Color3B(200, 200, 200), 10000.0f); + pointLight->setEnabled(false); + layer->addChild(pointLight); + + auto spotLight = SpotLight::create(Vec3(0.0f, -1.0f, 0.0f), Vec3(-200.0f, 200.0f, 0.0f), Color3B(200, 200, 200), 0.0f, 0.5f, 10000.0f); + spotLight->setEnabled(false); + layer->addChild(spotLight); + + { + auto tintto1 = TintTo::create(1, 0, 0, 255); + auto tintto2 = TintTo::create(1, 0, 255, 0); + auto tintto3 = TintTo::create(1, 255, 0, 0); + auto tintto4 = TintTo::create(1, 255, 255, 255); + auto moveby = MoveBy::create(2.0, Vec2(400.0f, 0.0f)); + auto seq = Sequence::create(tintto1, moveby, tintto2, moveby->reverse(), tintto3, moveby, tintto4, moveby->reverse(), nullptr); + ambientLight->runAction(RepeatForever::create(seq)); + } + + { + auto tintto1 = TintTo::create(1, 255, 0, 0); + auto tintto2 = TintTo::create(1, 0, 255, 0); + auto tintto3 = TintTo::create(1, 0, 0, 255); + auto tintto4 = TintTo::create(1, 255, 255, 255); + auto moveby = MoveBy::create(2.0, Vec2(400.0f, 0.0f)); + auto seq = Sequence::create(tintto1, moveby, tintto2, moveby->reverse(), tintto3, moveby, tintto4, moveby->reverse(), nullptr); + directionalLight->runAction(RepeatForever::create(seq)); + } + + { + auto tintto1 = TintTo::create(1, 255, 0, 0); + auto tintto2 = TintTo::create(1, 0, 255, 0); + auto tintto3 = TintTo::create(1, 0, 0, 255); + auto tintto4 = TintTo::create(1, 255, 255, 255); + auto moveby = MoveBy::create(2.0, Vec2(400.0f, 0.0f)); + auto seq = Sequence::create(tintto1, moveby, tintto2, moveby->reverse(), tintto3, moveby, tintto4, moveby->reverse(), nullptr); + pointLight->runAction(RepeatForever::create(seq)); + } + + { + auto tintto1 = TintTo::create(1, 255, 0, 0); + auto tintto2 = TintTo::create(1, 0, 255, 0); + auto tintto3 = TintTo::create(1, 0, 0, 255); + auto tintto4 = TintTo::create(1, 255, 255, 255); + auto moveby = MoveBy::create(2.0, Vec2(400.0f, 0.0f)); + auto seq = Sequence::create(tintto1, moveby, tintto2, moveby->reverse(), tintto3, moveby, tintto4, moveby->reverse(), nullptr); + spotLight->runAction(RepeatForever::create(seq)); + } + //end add lights + + { + auto size = Director::getInstance()->getWinSize(); + auto ambientLightLabel = LabelTTF::create("Ambient Light ON", "Arial", 24); + auto menuItem0 = MenuItemLabel::create(ambientLightLabel); + menuItem0->setCallback([=](cocos2d::Ref *sender) { + char str[32]; + bool isON = !ambientLight->isEnabled(); + sprintf(str, "Ambient Light %s", isON == true? "ON":"OFF"); + ambientLight->setEnabled(isON); + ambientLightLabel->setString(str); + }); + + auto directionalLightLabel = LabelTTF::create("Directional Light OFF", "Arial", 24); + auto menuItem1 = MenuItemLabel::create(directionalLightLabel); + menuItem1->setCallback([=](cocos2d::Ref *sender) { + char str[32]; + bool isON = !directionalLight->isEnabled(); + sprintf(str, "Directional Light %s", isON == true? "ON":"OFF"); + directionalLight->setEnabled(isON); + directionalLightLabel->setString(str); + }); + + auto pointLightLabel = LabelTTF::create("Point Light OFF", "Arial", 24); + auto menuItem2 = MenuItemLabel::create(pointLightLabel); + menuItem2->setCallback([=](cocos2d::Ref *sender) { + char str[32]; + bool isON = !pointLight->isEnabled(); + sprintf(str, "Point Light %s", isON == true? "ON":"OFF"); + pointLight->setEnabled(isON); + pointLightLabel->setString(str); + }); + + auto spotLightLabel = LabelTTF::create("Spot Light OFF", "Arial", 24); + auto menuItem3 = MenuItemLabel::create(spotLightLabel); + menuItem3->setCallback([=](cocos2d::Ref *sender) { + char str[32]; + bool isON = !spotLight->isEnabled(); + sprintf(str, "Spot Light %s", isON == true? "ON":"OFF"); + spotLight->setEnabled(isON); + spotLightLabel->setString(str); + }); + + auto menu = Menu::create(menuItem0, menuItem1, menuItem2, menuItem3, nullptr); + menu->setPosition(Vec2::ZERO); + menuItem0->setAnchorPoint(Vec2::ANCHOR_TOP_LEFT); + menuItem0->setPosition( Vec2(origin.x, origin.y + visibleSize.height - 50) ); + menuItem1->setAnchorPoint(Vec2::ANCHOR_TOP_LEFT); + menuItem1->setPosition( Vec2(origin.x, origin.y + visibleSize.height - 100) ); + menuItem2->setAnchorPoint(Vec2::ANCHOR_TOP_LEFT); + menuItem2->setPosition( Vec2(origin.x, origin.y + visibleSize.height - 150)); + menuItem3->setAnchorPoint(Vec2::ANCHOR_TOP_LEFT); + menuItem3->setPosition( Vec2(origin.x, origin.y + visibleSize.height - 200)); + scene->addChild(menu); + } + + auto camera = Camera::createPerspective(60, (GLfloat)winSize.width / winSize.height, 1.0f, 1000.0f); + camera->setCameraFlag(CameraFlag::USER1); + camera->setPosition3D(Vec3(0.0, 100, 100)); + camera->lookAt(Vec3(0.0, 0.0, 0.0), Vec3(0.0, 1.0, 0.0)); + layer->addChild(camera); + layer->setCameraMask((unsigned short)CameraFlag::USER1); + + // return the scene + return scene; +} \ No newline at end of file diff --git a/src/chapter9/Chapter9_9.h b/src/chapter9/Chapter9_9.h new file mode 100755 index 0000000..a6c8612 --- /dev/null +++ b/src/chapter9/Chapter9_9.h @@ -0,0 +1,14 @@ +#ifndef __CHAPTER_9_9_H__ +#define __CHAPTER_9_9_H__ + +#include "cocos2d.h" + +USING_NS_CC; + +class Chapter9_9 : public Ref +{ +public: + static cocos2d::Scene* createScene(); +}; + +#endif // __CHAPTER_9_9_H__ \ No newline at end of file diff --git a/src/chapter10/DrawNode3D.cpp b/src/chapter9/DrawNode3D.cpp similarity index 81% rename from src/chapter10/DrawNode3D.cpp rename to src/chapter9/DrawNode3D.cpp index 34d3c25..3760e0c 100644 --- a/src/chapter10/DrawNode3D.cpp +++ b/src/chapter9/DrawNode3D.cpp @@ -1,27 +1,3 @@ -/**************************************************************************** - Copyright (c) 2014 Chukong Technologies Inc. - - http://www.cocos2d-x.org - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - ****************************************************************************/ - #include "DrawNode3D.h" NS_CC_BEGIN diff --git a/src/chapter10/DrawNode3D.h b/src/chapter9/DrawNode3D.h similarity index 61% rename from src/chapter10/DrawNode3D.h rename to src/chapter9/DrawNode3D.h index 9b8b109..07f8727 100644 --- a/src/chapter10/DrawNode3D.h +++ b/src/chapter9/DrawNode3D.h @@ -1,27 +1,3 @@ -/**************************************************************************** - Copyright (c) 2014 Chukong Technologies Inc. - - http://www.cocos2d-x.org - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - ****************************************************************************/ - #ifndef __DRAW_NODE_3D_H__ #define __DRAW_NODE_3D_H__