├── Frameworks └── PLBlocks.framework │ ├── Versions │ ├── Current │ └── A │ │ ├── PLBlocks │ │ ├── Resources │ │ └── Info.plist │ │ └── Headers │ │ └── Block.h │ ├── Headers │ ├── PLBlocks │ └── Resources ├── libs └── README ├── Resources ├── Icon.png ├── fps_images.png ├── iphone-preview.jpg ├── images │ ├── camp-panel.png │ ├── city-panel.png │ ├── frames-glow.png │ ├── amazon-panel.png │ ├── arctic-panel.png │ ├── brkfst-panel.png │ └── paper-background.png ├── shapes-panels-post.jpg └── Info.plist ├── shapes_Prefix.pch ├── .gitignore ├── Classes ├── common.h ├── Views │ ├── NMPanelMenu.h │ ├── TouchDelegatingView.h │ ├── CocosOverlayScrollView.h │ ├── TouchDelegatingView.m │ ├── NMPanelMenu.m │ ├── NMPanelMenuItem.h │ ├── NMPanelMenuItem.m │ └── CocosOverlayScrollView.m ├── shapesAppDelegate.h ├── Scenes │ ├── HCUPPanelScene.h │ └── HCUPPanelScene.m ├── tmp.txt ├── Other │ └── SynthesizeSingleton.h ├── shapesAppDelegate.m └── External │ └── Analytics-README.txt ├── main.m ├── LICENSE.cocosdenshion ├── LICENSE.cocos2d ├── README.mkd └── shapes-panels.xcodeproj └── project.pbxproj /Frameworks/PLBlocks.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /Frameworks/PLBlocks.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /Frameworks/PLBlocks.framework/PLBlocks: -------------------------------------------------------------------------------- 1 | Versions/Current/PLBlocks -------------------------------------------------------------------------------- /Frameworks/PLBlocks.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /libs/README: -------------------------------------------------------------------------------- 1 | This directory contains the libraries used in cocos2d 2 | -------------------------------------------------------------------------------- /Resources/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jashmenn/shapes-panels/HEAD/Resources/Icon.png -------------------------------------------------------------------------------- /Resources/fps_images.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jashmenn/shapes-panels/HEAD/Resources/fps_images.png -------------------------------------------------------------------------------- /Resources/iphone-preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jashmenn/shapes-panels/HEAD/Resources/iphone-preview.jpg -------------------------------------------------------------------------------- /Resources/images/camp-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jashmenn/shapes-panels/HEAD/Resources/images/camp-panel.png -------------------------------------------------------------------------------- /Resources/images/city-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jashmenn/shapes-panels/HEAD/Resources/images/city-panel.png -------------------------------------------------------------------------------- /Resources/images/frames-glow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jashmenn/shapes-panels/HEAD/Resources/images/frames-glow.png -------------------------------------------------------------------------------- /Resources/shapes-panels-post.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jashmenn/shapes-panels/HEAD/Resources/shapes-panels-post.jpg -------------------------------------------------------------------------------- /Resources/images/amazon-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jashmenn/shapes-panels/HEAD/Resources/images/amazon-panel.png -------------------------------------------------------------------------------- /Resources/images/arctic-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jashmenn/shapes-panels/HEAD/Resources/images/arctic-panel.png -------------------------------------------------------------------------------- /Resources/images/brkfst-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jashmenn/shapes-panels/HEAD/Resources/images/brkfst-panel.png -------------------------------------------------------------------------------- /Resources/images/paper-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jashmenn/shapes-panels/HEAD/Resources/images/paper-background.png -------------------------------------------------------------------------------- /Frameworks/PLBlocks.framework/Versions/A/PLBlocks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jashmenn/shapes-panels/HEAD/Frameworks/PLBlocks.framework/Versions/A/PLBlocks -------------------------------------------------------------------------------- /shapes_Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'shapes' target in the 'shapes' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #import 8 | #endif 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.swp 3 | *~.nib 4 | build/ 5 | *.pbxuser 6 | *.perspective 7 | *.perspectivev3 8 | *.mode1v3 9 | *.mode2v3 10 | .autosession.vim 11 | ./html/ 12 | session.vim 13 | */.DS_Store 14 | Resources/sounds/raw/ 15 | -------------------------------------------------------------------------------- /Classes/common.h: -------------------------------------------------------------------------------- 1 | /* 2 | * common.h 3 | * Jacob's Shapes 4 | * 5 | * Created by Nate Murray on 7/26/10. 6 | * Copyright 2010 YetiApps. All rights reserved. 7 | * 8 | */ 9 | 10 | #pragma mark - 11 | #pragma mark Enums 12 | 13 | enum { 14 | kTag_x, 15 | }; 16 | 17 | 18 | -------------------------------------------------------------------------------- /Classes/Views/NMPanelMenu.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NMPanelMenu.h 3 | * shapes 4 | * 5 | * Created by Nate Murray on 7/29/10. 6 | * Copyright 2010 YetiApps. All rights reserved. 7 | * 8 | */ 9 | 10 | #import "cocos2d.h" 11 | @interface NMPanelMenu : CCMenu { 12 | } 13 | -(CCMenuItem *) itemForTouch: (UITouch *) touch; 14 | @end 15 | -------------------------------------------------------------------------------- /main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // shapes 4 | // 5 | // Created by Nate Murray on 7/24/10. 6 | // Copyright YetiApps 2010. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, char *argv[]) { 12 | NSAutoreleasePool *pool = [NSAutoreleasePool new]; 13 | int retVal = UIApplicationMain(argc, argv, nil, @"shapesAppDelegate"); 14 | [pool release]; 15 | return retVal; 16 | } 17 | -------------------------------------------------------------------------------- /Classes/Views/TouchDelegatingView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TouchDelegatingView.h 3 | // shapes 4 | // 5 | // Created by Nate Murray on 8/23/10. 6 | // Copyright 2010 LittleHiccup. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "CocosOverLayScrollView.h" 11 | 12 | @interface TouchDelegatingView : UIView { 13 | // UIPageControl* pageControl; 14 | CocosOverlayScrollView* scrollView; 15 | } 16 | @property(nonatomic, retain) CocosOverlayScrollView* scrollView; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Classes/shapesAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // shapesAppDelegate.h 3 | // shapes 4 | // 5 | // Created by Nate Murray on 7/24/10. 6 | // Copyright LittleHiccup 2010. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface shapesAppDelegate : NSObject { 12 | UIWindow *window; 13 | } 14 | 15 | @property (nonatomic, retain) UIWindow *window; 16 | - (void) setupCocos2d; 17 | @end 18 | 19 | #ifdef LITE_VERSION 20 | void uncaughtExceptionHandler(NSException *exception); 21 | #endif 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Classes/Views/CocosOverlayScrollView.h: -------------------------------------------------------------------------------- 1 | // 2 | // CocosOverlayScrollView.h 3 | // shapes 4 | // 5 | // Created by Nate Murray on 8/23/10. 6 | // Copyright 2010 LittleHiccup. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "cocos2d.h" 11 | 12 | @interface CocosOverlayScrollView : UIScrollView 13 | { 14 | CCNode* targetLayer; 15 | } 16 | @property(nonatomic, retain) CCNode* targetLayer; 17 | -(id) initWithFrame: (CGRect) frameRect numPages: (int) numPages width: (float) width layer: (CCNode*) layer; 18 | @end 19 | -------------------------------------------------------------------------------- /Classes/Views/TouchDelegatingView.m: -------------------------------------------------------------------------------- 1 | // 2 | // TouchDelegatingView.m 3 | // Jacob's Shapes 4 | // 5 | // Created by Nate Murray on 8/23/10. 6 | // Copyright 2010 LittleHiccup. All rights reserved. 7 | // 8 | 9 | #import "TouchDelegatingView.h" 10 | 11 | @implementation TouchDelegatingView 12 | @synthesize scrollView; 13 | 14 | - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { 15 | if ([self pointInside:point withEvent:event]) { 16 | return self.scrollView; 17 | } 18 | return nil; 19 | } 20 | 21 | -(void) dealloc { 22 | self.scrollView = nil; 23 | [super dealloc]; 24 | } 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Classes/Scenes/HCUPPanelScene.h: -------------------------------------------------------------------------------- 1 | /* 2 | * HSLevelSelectionScene.h 3 | * shapes 4 | * 5 | * Created by Nate Murray on 7/24/10. 6 | * Copyright 2010 YetiApps. All rights reserved. 7 | * 8 | */ 9 | 10 | // When you import this file, you import all the cocos2d classes 11 | #import "cocos2d.h" 12 | #import "CocosOverlayScrollView.h" 13 | 14 | @class TouchDelegatingView; 15 | @class NMPanelMenu; 16 | 17 | @interface HCUPPanelScene : CCLayer 18 | { 19 | int nextWorld_; 20 | BOOL transitioning_; 21 | CocosOverlayScrollView* scrollView; 22 | TouchDelegatingView* touchDelegatingView; 23 | UIPageControl* pageControl; 24 | } 25 | 26 | // returns a Scene that contains the HSLevelSelectionScene as the only child 27 | +(id) scene; 28 | - (void) levelPicked: (id) sender ; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Frameworks/PLBlocks.framework/Versions/A/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | PLBlocks 9 | CFBundleIdentifier 10 | coop.plausible.blocks.PLBlocks 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | FMWK 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /LICENSE.cocosdenshion: -------------------------------------------------------------------------------- 1 | CocosDenshion Sound Engine 2 | 3 | Copyright (c) 2010 Steve Oldmeadow 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /Classes/Views/NMPanelMenu.m: -------------------------------------------------------------------------------- 1 | /* 2 | * NMPanelMenu.m 3 | * shapes 4 | * 5 | * Created by Nate Murray on 7/29/10. 6 | * Copyright 2010 YetiApps. All rights reserved. 7 | * 8 | */ 9 | 10 | #include "NMPanelMenu.h" 11 | #import "NMPanelMenuItem.h" 12 | 13 | @interface NMPanelMenu (Private) 14 | @end 15 | 16 | @implementation NMPanelMenu 17 | 18 | -(CCMenuItem *) itemForTouch: (UITouch *) touch 19 | { 20 | CGPoint touchLocation = [touch locationInView: [touch view]]; 21 | touchLocation = [[CCDirector sharedDirector] convertToGL: touchLocation]; 22 | 23 | CCMenuItem* item; 24 | CCARRAY_FOREACH(children_, item){ 25 | // ignore invisible and disabled items: issue #779, #866 26 | if ( [item visible] && [item isEnabled] ) { 27 | 28 | CGPoint local = [item convertToNodeSpace:touchLocation]; 29 | local = ccpAdd([self parent].position, local); // to account for parent position <------ key 30 | 31 | CGRect r = [item rect]; 32 | r.origin = CGPointZero; 33 | 34 | if( CGRectContainsPoint( r, local ) ) { 35 | return item; 36 | } 37 | } 38 | } 39 | return nil; 40 | } 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleDisplayName 8 | ${PRODUCT_DISPLAY_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIconFile 12 | 13 | CFBundleIdentifier 14 | JacobsShapes 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundlePackageType 18 | APPL 19 | CFBundleVersion 20 | 1.0 21 | LSRequiresIPhoneOS 22 | 23 | UIApplicationExitsOnSuspend 24 | 25 | UIPrerenderedIcon 26 | 27 | UIRequiredDeviceCapabilities 28 | 29 | accelerometer 30 | 31 | opengles-1 32 | 33 | 34 | UIStatusBarHidden 35 | 36 | Application requires iPhone environment 37 | YES 38 | 39 | 40 | -------------------------------------------------------------------------------- /Classes/Views/NMPanelMenuItem.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NMPanelMenuItem.h 3 | * shapes 4 | * 5 | * Created by Nate Murray on 7/29/10. 6 | * Copyright 2010 YetiApps. All rights reserved. 7 | * 8 | */ 9 | 10 | #import "cocos2d.h" 11 | 12 | @interface NMPanelMenuItem : CCMenuItemSprite { 13 | int world; 14 | NSString* name_; 15 | CCSprite* label_; 16 | CCSprite* glow_; 17 | CCNode *activeImage_; 18 | BOOL isActive_; 19 | BOOL showGlow_; 20 | } 21 | @property (nonatomic) int world; 22 | @property (nonatomic,readwrite,retain) CCSprite* label; 23 | @property (nonatomic,readwrite,retain) NSString* name; 24 | @property (nonatomic,readwrite,retain) CCNode *activeImage; 25 | @property (nonatomic,readwrite,retain) CCSprite *glow; 26 | @property (nonatomic,readwrite) BOOL showGlow; 27 | 28 | -(id) initFromNormalSprite:(CCNode*)normalSprite 29 | selectedSprite:(CCNode*)selectedSprite 30 | activeSprite:(CCNode*)activeSprite 31 | disabledSprite:(CCNode*)disabledSprite 32 | name:(NSString*)name 33 | target:(id)target selector:(SEL)selector; 34 | 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /LICENSE.cocos2d: -------------------------------------------------------------------------------- 1 | cocos2d for iPhone: http://www.cocos2d-iphone.org 2 | 3 | Copyright (c) 2008-2010 - (see each file to see the different copyright owners) 4 | 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. -------------------------------------------------------------------------------- /Classes/tmp.txt: -------------------------------------------------------------------------------- 1 | 2010-08-24 07:35:18.638 JacobsShapes[11242:40b] touch at l.x:40.000000 l.y:96.000000 2 | 2010-08-24 07:35:18.641 JacobsShapes[11242:40b] . 3 | 2010-08-24 07:35:18.646 JacobsShapes[11242:40b] l.x:0.000000 l.y:0.000000 4 | 2010-08-24 07:35:18.648 JacobsShapes[11242:40b] m.x:2811.000000 m.y:160.000000 5 | 2010-08-24 07:35:18.648 JacobsShapes[11242:40b] touchLocation.x:40.000000 touchLocation.y:96.000000 6 | 2010-08-24 07:35:18.649 JacobsShapes[11242:40b] gl-touchLocation.x:96.000000 gl-touchLocation.y:40.000000 7 | 2010-08-24 07:35:18.649 JacobsShapes[11242:40b] blank gl-local.x:348.000000 gl-local.y:-6.500000 8 | 2010-08-24 07:35:18.650 JacobsShapes[11242:40b] safari gl-local.x:0.000000 gl-local.y:8.000000 9 | 10 | 11 | 2010-08-24 07:35:48.886 JacobsShapes[11242:40b] touch at l.x:47.000000 l.y:460.000000 12 | 2010-08-24 07:35:48.894 JacobsShapes[11242:40b] . 13 | 2010-08-24 07:35:48.897 JacobsShapes[11242:40b] l.x:-363.000000 l.y:-0.000000 14 | 2010-08-24 07:35:48.900 JacobsShapes[11242:40b] m.x:2811.000000 m.y:160.000000 15 | 2010-08-24 07:35:48.902 JacobsShapes[11242:40b] touchLocation.x:47.000000 touchLocation.y:460.000000 16 | 2010-08-24 07:35:48.904 JacobsShapes[11242:40b] gl-touchLocation.x:460.000000 gl-touchLocation.y:47.000000 17 | 2010-08-24 07:35:48.906 JacobsShapes[11242:40b] blank gl-local.x:1075.000000 gl-local.y:0.500000 18 | 2010-08-24 07:35:48.907 JacobsShapes[11242:40b] safari gl-local.x:727.000000 gl-local.y:15.000000 19 | 2010-08-24 07:35:48.910 JacobsShapes[11242:40b] city gl-local.x:364.000000 gl-local.y:15.000000 20 | 2010-08-24 07:35:48.912 JacobsShapes[11242:40b] amazon gl-local.x:1.000000 gl-local.y:15.000000 21 | -------------------------------------------------------------------------------- /Classes/Other/SynthesizeSingleton.h: -------------------------------------------------------------------------------- 1 | // 2 | // SynthesizeSingleton.h 3 | // CocoaWithLove 4 | // 5 | // Created by Matt Gallagher on 20/10/08. 6 | // Copyright 2009 Matt Gallagher. All rights reserved. 7 | // 8 | // Permission is given to use this source code file without charge in any 9 | // project, commercial or otherwise, entirely at your risk, with the condition 10 | // that any redistribution (in part or whole) of source code must retain 11 | // this copyright and permission notice. Attribution in compiled projects is 12 | // appreciated but not required. 13 | // 14 | // To use: 15 | // 16 | // SYNTHESIZE_SINGLETON_FOR_CLASS(MyClassName); 17 | // 18 | // inside the @implementation MyClassName declaration and your class will become a singleton. You will also need to add the line: 19 | // 20 | // + (MyClassName *)sharedMyClassName; 21 | // 22 | // to the header file for MyClassName so the singleton accessor method can be found from other source files if they #import the header. 23 | // 24 | // Once your class is a singleton, you can access the instance of it using the line: 25 | // 26 | // [MyClassName sharedMyClassName]; 27 | // 28 | 29 | #define SYNTHESIZE_SINGLETON_FOR_CLASS(classname) \ 30 | \ 31 | static classname *shared##classname = nil; \ 32 | \ 33 | + (classname *)shared##classname \ 34 | { \ 35 | @synchronized(self) \ 36 | { \ 37 | if (shared##classname == nil) \ 38 | { \ 39 | shared##classname = [[self alloc] init]; \ 40 | } \ 41 | } \ 42 | \ 43 | return shared##classname; \ 44 | } \ 45 | \ 46 | + (id)allocWithZone:(NSZone *)zone \ 47 | { \ 48 | @synchronized(self) \ 49 | { \ 50 | if (shared##classname == nil) \ 51 | { \ 52 | shared##classname = [super allocWithZone:zone]; \ 53 | return shared##classname; \ 54 | } \ 55 | } \ 56 | \ 57 | return nil; \ 58 | } \ 59 | \ 60 | - (id)copyWithZone:(NSZone *)zone \ 61 | { \ 62 | return self; \ 63 | } \ 64 | \ 65 | - (id)retain \ 66 | { \ 67 | return self; \ 68 | } \ 69 | \ 70 | - (NSUInteger)retainCount \ 71 | { \ 72 | return NSUIntegerMax; \ 73 | } \ 74 | \ 75 | - (void)release \ 76 | { \ 77 | } \ 78 | \ 79 | - (id)autorelease \ 80 | { \ 81 | return self; \ 82 | } 83 | -------------------------------------------------------------------------------- /README.mkd: -------------------------------------------------------------------------------- 1 | # Paging UIScrollView with Previews in Cocos2D 2 | 3 | This project shows how to create a paged UIScrollView with Previews 4 | in Cocos2D. It looks like this ([video](http://www.youtube.com/watch?v=2IgbRzGfBHk&fmt=22)) 5 | ![iPhone Preview](https://github.com/jashmenn/shapes-panels/raw/master/Resources/iphone-preview.jpg) 6 | 7 | [Watch the video!](http://www.youtube.com/watch?v=2IgbRzGfBHk&fmt=22) 8 | 9 | # The Problem 10 | 11 | Apple's UIScrollView paging doesn't support an arbitrary width argument. If you 12 | make a UIScrollView with a width smaller than the whole screen, then that view 13 | won't capture touches outside of that area. 14 | 15 | Additionally, we are mixing Cocoa views and Cocos2d/OpenGL, and how they interact is 16 | not always obvious. 17 | 18 | # Basic Idea 19 | 20 | We create a subclass of `CCMenu` and add panels as items. The `CCMenu` is scrolled 21 | as the `UIScrollView` is scrolled. The `UIScrollView` is set to be smaller than 22 | the whole screen: this gives us previews on either side of the current page. 23 | We create a full-screen `TouchDelegatingView` under the `UIScrollView` and use 24 | that to delegate touches that lie outside the `UIScrollView`. 25 | 26 | There are a few custom classes mixed in, but that is the basic idea. 27 | 28 | ![Panels Layers](https://github.com/jashmenn/shapes-panels/raw/master/Resources/shapes-panels-post.jpg) 29 | 30 | # Setup 31 | 32 | This project uses cocos2d as a referenced project. You can see that in 33 | 34 | Project > Edit Project Settings > User Header Search Paths 35 | 36 | we have the environment variable `$(COCOS2D_SRC)`. You set up this variable in: 37 | 38 | Xcode > Preferences > Source Trees 39 | 40 | Then hit the plus '+' and add a variable `COCOS2D_SRC` to point to your cocos2d installation. 41 | 42 | # Credits 43 | 44 | Written by Nate Murray for [Jacob's Shapes](http://www.littlehiccup.com), an 45 | iPhone game for toddlers. 46 | 47 | It uses ideas and code from the following sites: 48 | 49 | * [http://getsetgames.com/2009/08/21/cocos2d-and-uiscrollview/](http://getsetgames.com/2009/08/21/cocos2d-and-uiscrollview/) 50 | * [http://blog.proculo.de/archives/180-Paging-enabled-UIScrollView-With-Previews.html](http://blog.proculo.de/archives/180-Paging-enabled-UIScrollView-With-Previews.html) 51 | 52 | 53 | # CHANGELOG 54 | 55 | 2010-09-17 - fixed how ios 4.1 deals with canceling touches 56 | -------------------------------------------------------------------------------- /Classes/Views/NMPanelMenuItem.m: -------------------------------------------------------------------------------- 1 | /* 2 | * NMPanelMenuItem.m 3 | * shapes 4 | * 5 | * Created by Nate Murray on 7/29/10. 6 | * Copyright 2010 YetiApps. All rights reserved. 7 | * 8 | */ 9 | 10 | #include "NMPanelMenuItem.h" 11 | 12 | @interface NMPanelMenuItem (Private) 13 | @end 14 | 15 | @implementation NMPanelMenuItem 16 | @synthesize world; 17 | @synthesize label=label_; 18 | @synthesize name=name_; 19 | @synthesize activeImage=activeImage_; 20 | @synthesize glow=glow_; 21 | @synthesize showGlow=showGlow_; 22 | 23 | -(id) init { 24 | if ((self = [super init])){ 25 | } 26 | return self; 27 | } 28 | 29 | -(id) initFromNormalSprite:(CCNode*)normalSprite 30 | selectedSprite:(CCNode*)selectedSprite 31 | activeSprite:(CCNode*)activeSprite 32 | disabledSprite:(CCNode*)disabledSprite 33 | name:(NSString*)name 34 | target:(id)target selector:(SEL)selector 35 | { 36 | if( (self=[super initFromNormalSprite:normalSprite 37 | selectedSprite:selectedSprite 38 | disabledSprite:disabledSprite 39 | target:target selector:selector])) 40 | { 41 | self.activeImage = activeSprite; 42 | self.name = name; 43 | 44 | // TODO, create an addSpriteFrameByName extension 45 | CCSpriteFrameCache* fcache = [CCSpriteFrameCache sharedSpriteFrameCache]; 46 | NSString* glowName = @"frames-glow.png"; 47 | if([fcache spriteFrameByName: glowName]) { 48 | } else { 49 | CCTexture2D* glowTex = [[CCTexture2D alloc] initWithImage: [UIImage imageNamed:glowName]]; 50 | CCSpriteFrame* spriteFrame = [[CCSpriteFrame alloc] initWithTexture:glowTex 51 | rect:CGRectMake(0,0,glowTex.pixelsWide,glowTex.pixelsHigh) offset: ccp(0,0)]; 52 | [fcache addSpriteFrame:spriteFrame name:glowName]; 53 | [spriteFrame release]; 54 | [glowTex release]; 55 | } 56 | self.glow = [CCSprite spriteWithSpriteFrameName:glowName]; 57 | self.showGlow = true; 58 | } 59 | return self; 60 | } 61 | 62 | -(void) activate 63 | { 64 | isActive_ = YES; 65 | // play sound here 66 | [super activate]; 67 | } 68 | 69 | -(void) draw 70 | { 71 | if(isActive_) { 72 | [self.activeImage draw]; 73 | if(self.showGlow) [self.glow draw]; 74 | } else { 75 | [super draw]; 76 | } 77 | } 78 | 79 | -(void) dealloc { 80 | self.label = nil; 81 | self.name = nil; 82 | self.activeImage = nil; 83 | self.glow = nil; 84 | [super dealloc]; 85 | } 86 | 87 | @end 88 | -------------------------------------------------------------------------------- /Classes/Views/CocosOverlayScrollView.m: -------------------------------------------------------------------------------- 1 | // 2 | // CocosOverlayScrollView.m 3 | // shapes 4 | // 5 | // Created by Nate Murray on 8/23/10. 6 | // Copyright 2010 LittleHiccup. All rights reserved. 7 | // 8 | 9 | #import "CocosOverlayScrollView.h" 10 | 11 | @implementation CocosOverlayScrollView 12 | @synthesize targetLayer; 13 | 14 | // Configure your favorite UIScrollView options here 15 | -(id) initWithFrame: (CGRect) frameRect numPages: (int) numPages width: (float) width layer: (CCNode*) layer { 16 | if ((self = [super initWithFrame: frameRect])){ 17 | self.contentSize = CGSizeMake(320, width * numPages); 18 | self.bounces = YES; 19 | self.delaysContentTouches = NO; 20 | self.delegate = self; 21 | self.pagingEnabled = YES; 22 | self.scrollsToTop = NO; 23 | self.showsVerticalScrollIndicator = NO; 24 | self.showsHorizontalScrollIndicator = NO; 25 | [self setUserInteractionEnabled:TRUE]; 26 | [self setScrollEnabled:TRUE]; 27 | self.targetLayer = layer; 28 | // self.canCancelContentTouches = YES; 29 | } 30 | return self; 31 | } 32 | 33 | -(void) touchesBegan: (NSSet *) touches withEvent: (UIEvent *) event 34 | { 35 | if (!self.dragging) 36 | { 37 | UITouch* touch = [[touches allObjects] objectAtIndex:0]; 38 | // CGPoint location = [touch locationInView: [touch view]]; 39 | // CCLOG(@"touch at l.x:%f l.y:%f", location.x, location.y); 40 | 41 | [self.nextResponder touchesBegan: touches withEvent:event]; 42 | [[[CCDirector sharedDirector] openGLView] touchesBegan:touches withEvent:event]; 43 | } 44 | 45 | [super touchesBegan: touches withEvent: event]; 46 | } 47 | 48 | -(void) touchesEnded: (NSSet *) touches withEvent: (UIEvent *) event 49 | { 50 | if (!self.dragging) 51 | { 52 | [self.nextResponder touchesEnded: touches withEvent:event]; 53 | [[[CCDirector sharedDirector] openGLView] touchesEnded:touches withEvent:event]; 54 | } 55 | 56 | [super touchesEnded: touches withEvent: event]; 57 | } 58 | 59 | -(void) touchesCancelled: (NSSet *) touches withEvent: (UIEvent *) event 60 | { 61 | // if (!self.dragging) 62 | // { 63 | // CCLOG(@"CocosOverlayScrollView touchesEnded not dragging"); 64 | [self.nextResponder touchesCancelled: touches withEvent:event]; 65 | [[[CCDirector sharedDirector] openGLView] touchesCancelled:touches withEvent:event]; 66 | // } 67 | [super touchesCancelled: touches withEvent: event]; 68 | } 69 | 70 | 71 | - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView 72 | { 73 | // TODO - Custom code for handling deceleration of the scroll view 74 | } 75 | 76 | - (void)scrollViewDidScroll:(UIScrollView *)scrollView 77 | { 78 | CGPoint dragPt = [scrollView contentOffset]; 79 | dragPt = [[CCDirector sharedDirector] convertToGL:dragPt]; 80 | 81 | dragPt.y = dragPt.y * -1; 82 | dragPt.x = dragPt.x * -1; 83 | 84 | CGPoint newLayerPosition = CGPointMake(dragPt.x, dragPt.y); 85 | 86 | [targetLayer setPosition:newLayerPosition]; 87 | } 88 | 89 | - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView 90 | { 91 | // CGPoint dragPt = [scrollView contentOffset]; 92 | // etc. 93 | } 94 | 95 | -(void) dealloc { 96 | self.targetLayer = nil; 97 | [super dealloc]; 98 | } 99 | @end -------------------------------------------------------------------------------- /Frameworks/PLBlocks.framework/Versions/A/Headers/Block.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2008 - 2009 Apple, Inc. 3 | * Copyright 2009 - 2010 Plausible Labs Cooperative, Inc. 4 | * 5 | * All rights reserved. 6 | * 7 | * Permission is hereby granted, free of charge, 8 | * to any person obtaining a copy of this software and associated documentation 9 | * files (the "Software"), to deal in the Software without restriction, 10 | * including without limitation the rights to use, copy, modify, merge, publish, 11 | * distribute, sublicense, and/or sell copies of the Software, and to permit 12 | * persons to whom the Software is furnished to do so, subject to the following 13 | * conditions: 14 | * 15 | * The above copyright notice and this permission notice shall be included in 16 | * all copies or substantial portions of the Software. 17 | * 18 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 24 | * SOFTWARE. 25 | */ 26 | 27 | /** 28 | * @defgroup functions Functions Reference 29 | */ 30 | 31 | /** 32 | * @internal 33 | * @defgroup private_api Private API Reference 34 | */ 35 | 36 | /** 37 | * @defgroup private_api_constants Constants 38 | * @ingroup private_api 39 | */ 40 | 41 | /** 42 | * @defgroup constants Constants Reference 43 | */ 44 | 45 | /** 46 | * @defgroup types Types Reference 47 | */ 48 | 49 | /** 50 | * @defgroup enums Enumerations 51 | * @ingroup constants 52 | */ 53 | 54 | /** 55 | * @defgroup globals Global Variables 56 | * @ingroup constants 57 | */ 58 | 59 | /** 60 | * @defgroup exceptions Exceptions 61 | * @ingroup constants 62 | */ 63 | 64 | #ifndef _PLBLOCK_H_ 65 | #define _PLBLOCK_H_ 66 | 67 | #if !defined(BLOCK_EXPORT) 68 | # if defined(__cplusplus) 69 | # define BLOCK_EXPORT extern "C" 70 | # else 71 | # define BLOCK_EXPORT extern 72 | # endif 73 | #endif 74 | 75 | #include 76 | #include 77 | 78 | /* Compatibility defines. Using the PLBlock_* variants instead is recommended. */ 79 | #undef Block_copy 80 | #define Block_copy(...) ((__typeof(__VA_ARGS__))_PLBlock_copy((const void *)(__VA_ARGS__))) 81 | 82 | #undef Block_release 83 | #define Block_release(...) _PLBlock_release((const void *)(__VA_ARGS__)) 84 | 85 | #if __cplusplus 86 | extern "C" { 87 | #endif 88 | 89 | // Create a heap based copy of a Block or simply add a reference to an existing one. 90 | // This must be paired with Block_release to recover memory, even when running 91 | // under Objective-C Garbage Collection. 92 | BLOCK_EXPORT void *_PLBlock_copy(const void *aBlock); 93 | 94 | // Lose the reference, and if heap based and last reference, recover the memory 95 | BLOCK_EXPORT void _PLBlock_release(const void *aBlock); 96 | 97 | #if __cplusplus 98 | } 99 | #endif 100 | 101 | // Type correct macros 102 | 103 | /** 104 | * @ingroup functions 105 | * @{ 106 | */ 107 | 108 | /** 109 | * Copy a a stack-allocated block. 110 | */ 111 | #define PLBlock_copy(...) ((__typeof(__VA_ARGS__))_PLBlock_copy((const void *)(__VA_ARGS__))) 112 | 113 | /** 114 | * Release a block instance. 115 | */ 116 | #define PLBlock_release(...) _PLBlock_release((const void *)(__VA_ARGS__)) 117 | 118 | /** 119 | * @} functions 120 | */ 121 | 122 | #endif /* _PLBLOCK_H_ */ 123 | -------------------------------------------------------------------------------- /Classes/shapesAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // shapesAppDelegate.m 3 | // shapes 4 | // 5 | // Created by Nate Murray on 7/24/10. 6 | // Copyright LittleHiccup 2010. All rights reserved. 7 | // 8 | 9 | #import "shapesAppDelegate.h" 10 | #import "cocos2d.h" 11 | #import "HCUPPanelScene.h" 12 | 13 | @implementation shapesAppDelegate 14 | 15 | @synthesize window; 16 | 17 | - (void) applicationDidFinishLaunching:(UIApplication*)application 18 | { 19 | 20 | // CC_DIRECTOR_INIT() 21 | // 22 | // 1. Initializes an EAGLView with 0-bit depth format, and RGB565 render buffer 23 | // 2. EAGLView multiple touches: disabled 24 | // 3. creates a UIWindow, and assign it to the "window" var (it must already be declared) 25 | // 4. Parents EAGLView to the newly created window 26 | // 5. Creates Display Link Director 27 | // 5a. If it fails, it will use an NSTimer director 28 | // 6. It will try to run at 60 FPS 29 | // 7. Display FPS: NO 30 | // 8. Device orientation: Portrait 31 | // 9. Connects the director to the EAGLView 32 | // 33 | // CC_DIRECTOR_INIT(); 34 | 35 | window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 36 | [self setupCocos2d]; 37 | } 38 | 39 | 40 | - (void) setupCocos2d { 41 | if( ! [CCDirector setDirectorType:kCCDirectorTypeDisplayLink] ) 42 | [CCDirector setDirectorType:kCCDirectorTypeNSTimer]; 43 | CCDirector *__director = [CCDirector sharedDirector]; 44 | [__director setDeviceOrientation:kCCDeviceOrientationPortrait]; 45 | [__director setDisplayFPS:NO]; 46 | [__director setAnimationInterval:1.0/60]; 47 | EAGLView *__glView = [EAGLView viewWithFrame:[window bounds] 48 | pixelFormat:kEAGLColorFormatRGB565 49 | depthFormat:0 /* GL_DEPTH_COMPONENT24_OES */ 50 | preserveBackbuffer:NO]; 51 | [__director setOpenGLView:__glView]; 52 | [window addSubview:__glView]; 53 | [window makeKeyAndVisible]; 54 | 55 | // not sure why, the page turn says to turn that on 56 | // [[CCDirector sharedDirector] setDepthBufferFormat:kDepthBuffer16]; 57 | 58 | // Obtain the shared director in order to... 59 | CCDirector *director = [CCDirector sharedDirector]; 60 | 61 | // Sets landscape mode 62 | [director setDeviceOrientation:kCCDeviceOrientationLandscapeLeft]; 63 | 64 | // Turn on display FPS 65 | //[director setDisplayFPS:YES]; 66 | 67 | // Turn on multiple touches 68 | EAGLView *view = [director openGLView]; 69 | [view setMultipleTouchEnabled:YES]; 70 | 71 | // Default texture format for PNG/BMP/TIFF/JPEG/GIF images 72 | // It can be RGBA8888, RGBA4444, RGB5_A1, RGB565 73 | // You can change anytime. 74 | [CCTexture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGBA8888]; 75 | 76 | [[CCDirector sharedDirector] runWithScene: [HCUPPanelScene scene]]; 77 | } 78 | 79 | 80 | - (void)applicationWillResignActive:(UIApplication *)application { 81 | [[CCDirector sharedDirector] pause]; 82 | } 83 | 84 | - (void)applicationDidBecomeActive:(UIApplication *)application { 85 | [[CCDirector sharedDirector] resume]; 86 | } 87 | 88 | - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application { 89 | NSLog(@"memory warning"); 90 | [[CCDirector sharedDirector] purgeCachedData]; 91 | [[CCTextureCache sharedTextureCache] removeAllTextures]; 92 | } 93 | 94 | -(void) applicationDidEnterBackground:(UIApplication*)application { 95 | [[CCDirector sharedDirector] stopAnimation]; 96 | } 97 | 98 | -(void) applicationWillEnterForeground:(UIApplication*)application { 99 | [[CCDirector sharedDirector] startAnimation]; 100 | } 101 | 102 | - (void)applicationWillTerminate:(UIApplication *)application { 103 | [[CCDirector sharedDirector] end]; 104 | } 105 | 106 | - (void)applicationSignificantTimeChange:(UIApplication *)application { 107 | [[CCDirector sharedDirector] setNextDeltaTimeZero:YES]; 108 | } 109 | 110 | - (void)dealloc { 111 | [[CCDirector sharedDirector] release]; 112 | [window release]; 113 | [super dealloc]; 114 | } 115 | 116 | @end 117 | -------------------------------------------------------------------------------- /Classes/Scenes/HCUPPanelScene.m: -------------------------------------------------------------------------------- 1 | /* 2 | * HCUPPanelScene.m 3 | * Jacob's Shapes 4 | * 5 | * Created by Nate Murray on 7/24/10. 6 | * Copyright 2010 LittleHiccup. All rights reserved. 7 | * 8 | * Huge thanks to the the authors of following urls: 9 | * http://getsetgames.com/2009/08/21/cocos2d-and-uiscrollview/ 10 | * http://blog.proculo.de/archives/180-Paging-enabled-UIScrollView-With-Previews.html 11 | */ 12 | 13 | #include "HCUPPanelScene.h" 14 | #import "NMPanelMenu.h" 15 | #import "NMPanelMenuItem.h" 16 | #import "TouchDelegatingView.h" 17 | @implementation HCUPPanelScene 18 | 19 | +(id) scene 20 | { 21 | CCScene *scene = [CCScene node]; 22 | HCUPPanelScene *layer = [HCUPPanelScene node]; 23 | [scene addChild: layer]; 24 | return scene; 25 | } 26 | 27 | -(id) init 28 | { 29 | if( (self=[super init] )) { 30 | transitioning_ = NO; 31 | nextWorld_ = -1; 32 | 33 | // In the real world, you'd probably want to add all your panels to a 34 | // zwoptex sprite sheet. You could pre-load the frame cache with 35 | // something like this: 36 | // CCSpriteFrameCache* fcache = [CCSpriteFrameCache sharedSpriteFrameCache]; 37 | // [fcache addSpriteFramesWithFile: @"panels-sheet-1.plist"]; 38 | } 39 | return self; 40 | } 41 | 42 | - (void) onEnter 43 | { 44 | CGSize s = [[CCDirector sharedDirector] winSize]; 45 | 46 | { // background 47 | CCSprite* bg = [CCSprite spriteWithFile:@"paper-background.png"]; 48 | bg.position = ccp(s.width/2, s.height/2); 49 | [self addChild: bg]; 50 | } 51 | 52 | // In your game this array would be created by a function that returns a 53 | // list of worlds. In Jacob's Shapes we have a GameController that knows 54 | // about each level. 55 | NSArray* panelNames = [NSArray arrayWithObjects: 56 | @"amazon", @"arctic", 57 | @"brkfst", @"camp", 58 | @"city", nil]; 59 | int numberOfPages = [panelNames count]; 60 | 61 | // create an empty layer for us to work with 62 | CCLayer* panels = [CCLayer node]; 63 | 64 | NMPanelMenu* menu = [NMPanelMenu menuWithItems: nil]; 65 | float onePanelWide = -1; 66 | 67 | // Now add the panels 68 | for(int i=0; i < numberOfPages; i++) { 69 | NSString* currentName = [panelNames objectAtIndex:i]; 70 | CCSprite* pane2 = [CCSprite spriteWithFile:[NSString stringWithFormat: @"%@-panel.png", currentName]]; 71 | NMPanelMenuItem* menuItem2 = [[NMPanelMenuItem alloc] initFromNormalSprite:pane2 72 | selectedSprite:pane2 73 | activeSprite:pane2 74 | disabledSprite:pane2 75 | name:currentName 76 | target:self selector:@selector(levelPicked:)]; 77 | menuItem2.world = i; 78 | menuItem2.name = currentName; 79 | [menu addChild: menuItem2]; 80 | [menuItem2 release]; 81 | // set onePanelWide to be the width of the first panel 82 | if(i==0) onePanelWide = [pane2 textureRect].size.width; 83 | } 84 | 85 | // #define this somewhere. It is dependend on the size of your images. 86 | float padding = 15; 87 | float totalPanelWidth = onePanelWide + padding*2; 88 | float totalWidth = numberOfPages * totalPanelWidth; // (wait, do we need padding in here?) 89 | 90 | // When the user returns to the panel scene, you may want the panel to be 91 | // positioned on the level they left. In Jacob's Shapes we use the 92 | // GameController gc method currentWorld_i to indicate what level we are 93 | // currently on. For the demo, we're just setting to 0 94 | int currentWorldOffset = 0; // current world number. 95 | // int currentWorldOffset = 1; // Try changing to 1 and see what happens 96 | 97 | [menu alignItemsHorizontallyWithPadding: padding*2]; 98 | 99 | // add our panels layer 100 | [panels addChild:menu]; 101 | [self addChild:panels]; 102 | 103 | // set the position of the menu to the center of the very first panel 104 | menu.position = ccpAdd(menu.position, ccp(totalWidth/2 - totalPanelWidth/2, 0)); 105 | 106 | // Now we do two things: 107 | // 108 | // 1. Add our CocosOverlayScrollView which is only one panel wide (less 109 | // than the whole screen). If we had this layer only then we wouldn't 110 | // be notified of touches on the edge of the screen. 111 | // 2. We add the TouchDelegatingView which is full screen. The 112 | // TouchDelegatingView will delegate any touches it receives to 113 | // our paging scroll view 114 | // 115 | // Note that we're only concerned with a horizontal iPhone. If your game is 116 | // vertical, change accordingly 117 | touchDelegatingView = [[TouchDelegatingView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; 118 | scrollView = [[CocosOverlayScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, totalPanelWidth) 119 | numPages: numberOfPages 120 | width: totalPanelWidth 121 | layer: panels]; 122 | touchDelegatingView.scrollView = scrollView; 123 | 124 | // this is just to pre-set the scroll view to a particular panel 125 | [scrollView setContentOffset: CGPointMake(0, currentWorldOffset * totalPanelWidth) animated: NO]; 126 | 127 | // Add views to cocos2d 128 | // We called it a TouchDelegatingView, but it actually isn't containing anything at all. 129 | // In reality it is just taking up any space under our ScrollView and delegating the touches. 130 | [[[CCDirector sharedDirector] openGLView] addSubview:touchDelegatingView]; 131 | [[[CCDirector sharedDirector] openGLView] addSubview:scrollView]; 132 | 133 | [scrollView release]; 134 | [touchDelegatingView release]; 135 | 136 | [super onEnter]; 137 | } 138 | 139 | - (void) levelPicked: (id) sender 140 | { 141 | CCLOG(@"world %@ %d picked", ((NMPanelMenuItem*)sender).name, ((NMPanelMenuItem*)sender).world); 142 | nextWorld_ = ((NMPanelMenuItem*)sender).world; 143 | // why do we do this? See #visit 144 | } 145 | 146 | // We want our panel "active" image to draw before we change scenes. This 147 | // allows us to draw the active image and then change scenes. It feels a bit 148 | // hacky, but the result is a snappier experience for the user. 149 | - (void) visit { 150 | [super visit]; 151 | if(nextWorld_ > -1 && !transitioning_) { 152 | transitioning_ = YES; 153 | [[CCDirector sharedDirector] replaceScene:[CCCrossFadeTransition transitionWithDuration:0.5 scene:[HCUPPanelScene scene]]]; 154 | } 155 | } 156 | 157 | - (void) onExit 158 | { 159 | [scrollView removeFromSuperview]; 160 | [touchDelegatingView removeFromSuperview]; 161 | [super onExit]; 162 | } 163 | 164 | - (void) dealloc 165 | { 166 | [super dealloc]; 167 | } 168 | @end 169 | -------------------------------------------------------------------------------- /Classes/External/Analytics-README.txt: -------------------------------------------------------------------------------- 1 | Welcome to Flurry Analytics! 2 | 3 | This README contains: 4 | 5 | 1. Introduction 6 | 2. Integration 7 | 3. Latest SDK Update 8 | 4. Optional Features 9 | 5. Recommendations 10 | 6. FAQ 11 | 12 | ===================================== 13 | 1. Introduction 14 | 15 | The Flurry iPhone Analytics Agent allows you to track the usage and behavior of your iPhone application 16 | on users' phones for viewing in the Flurry Analytics system. It is designed to be as easy as possible 17 | with a basic setup complete in under 5 minutes. 18 | 19 | This archive should contain these files: 20 | - ProjectApiKey.txt : This file contains the name of your project and your project's API key. 21 | - Analytics-README.txt : This text file containing instructions. 22 | - FlurryLibWithLocation/FlurryAPI.h 23 | - FlurryLibWithLocation/libFlurryWithLocation.a : The library containing Flurry's collection and reporting code. This version includes GPS location capabilities. Requires Xcode 3.2.3 or above. 24 | - FlurryLib/FlurryAPI.h 25 | - FlurryLib/libFlurry.a : The library containing Flurry's collection and reporting code. This version does not include GPS location capabilities. Requires Xcode 3.2.3 or above. 26 | 27 | - FlurryLib/FlurryAdDelegate.h 28 | - FlurryLibWithLocation/FlurryAdDelegate.h : These are optional files for use with Flurry AppCircle. You do NOT need them for Flurry Analytics. 29 | 30 | Note that there are two versions of the Flurry analytics library: With and without location. We recommend using FlurryLibWithLocation so that you can receive detailed analytics about where your users are using your app. 31 | However, if you do not currently use location in your application, you can use FlurryLib and receive all of the same analytics without detailed location information. 32 | We also recommend calling FlurryAPI from the main thread. FlurryAPI is not supported when called from other threads. 33 | 34 | ===================================== 35 | 2. Integration 36 | 37 | To integrate Flurry Analytics into your iPhone application, first decide if you want to use location services or not. 38 | If you do wish to use location, see the steps in 2a. If you do not wish to use location, skip to 2b. 39 | 40 | Note that you should only use Flurry location services if your application already uses the CLLocationManager. You should not enable location services for analytics if you do not already use the CLLocationManager as your application will be rejected by Apple. 41 | Apple requires that your application use location in a way useful to the end user in order to access the CLLocationManager. 42 | 43 | 2a. Integration without Location 44 | ------------------------------------------------------------- 45 | 46 | 1. In the finder, drag FlurryLib into project's file folder. 47 | NOTE: If you are upgrading the Flurry iPhone SDK, be sure to remove any existing Flurry library folders from your project's file folder before proceeding. 48 | 49 | 2. Now add it to your project => Project > Add to project > FlurryLib 50 | - Choose 'Recursively create groups for any added folders' 51 | 52 | 3. In your Application Delegate: 53 | a. Import FlurryAPI => #import "FlurryAPI.h" 54 | b. Inside "applicationDidFinishLaunching:" add => [FlurryAPI startSession:@"YOUR_API_KEY"]; 55 | 56 | - (void)applicationDidFinishLaunching:(UIApplication *)application { 57 | [FlurryAPI startSession:@"YOUR_API_KEY"]; 58 | //your code 59 | } 60 | 61 | You're done! That's all you need to do to begin receiving basic metric data. 62 | 63 | 2b. Integration with location 64 | ------------------------------------------------------------- 65 | 1. In the finder, drag FlurryLibWithLocation into project's file folder. 66 | NOTE: If you are upgrading the Flurry iPhone SDK, be sure to remove any existing Flurry library folders from your project's file folder before proceeding. 67 | 68 | 2. Now add it to your project => Project > Add to project > FlurryLibWithLocation 69 | - Choose 'Recursively create groups for any added folders' 70 | 71 | 3. At this point, there are two options. First, if your application already has initialized a CLLocationManager, you can simply pass location information to the Flurry API for each session. For this option see the steps in 3a. 72 | Second, if your application has not already defined a CLLocationManager and you want Flurry to handle this for you, see the steps in 3b. 73 | 74 | 3a. You pass location information to the FlurryAPI. In your Application Delegate: 75 | a. Import FlurryAPI => #import "FlurryAPI.h" 76 | b. Inside "applicationDidFinishLaunching:" add => [FlurryAPI startSession:@"YOUR_API_KEY"]; 77 | 78 | - (void)applicationDidFinishLaunching:(UIApplication *)application { 79 | [FlurryAPI startSession:@"YOUR_API_KEY"]; 80 | //your code 81 | } 82 | c. Each time you want to update the location that Flurry Analytics will record, use the function below. Only the last location reported will be used for each session. 83 | [FlurryAPI setLocation:YOUR_UPDATED_CLLOCATION]; 84 | 85 | 3b. Flurry manages all location capabilities. In your Application Delegate: 86 | a. Import FlurryAPI => #import "FlurryAPI.h" 87 | b. Inside "applicationDidFinishLaunching:" add => [FlurryAPI startSessionWithLocationServices:@"YOUR_API_KEY"]; 88 | 89 | - (void)applicationDidFinishLaunching:(UIApplication *)application { 90 | [FlurryAPI startSessionWithLocationServices:@"YOUR_API_KEY"]; 91 | //your code 92 | } 93 | 94 | NOTE: You must also include the CoreLocation.framework if you do this. To add this framework, go to 95 | Project > Edit Active Target "YOUR_APP" > Add Libraries ('+' sign at the bottom) and select CoreLocation.framework 96 | 97 | You're done! That's all you need to do to begin receiving basic metric data. For optional advanced features, skip to Section 3. 98 | 99 | ===================================== 100 | 3. Latest SDK Update 101 | Going forward, the Flurry SDK will only support Xcode 3.2.3 and above. Please email support if you need to use older versions of the Flurry SDK. 102 | 103 | This version of the Flurry SDK is compatible with Xcode 3.2.3 and designed for OS 4.0 (iOS) applications. 104 | 105 | In this version of the Flurry SDK, we modified which data is collected. This updated SDK version does not collect the following device data: device name, operating system version and firmware version. Because Apple allows the collection of UDID for the purpose of advertising, we continue to collect this data as the Flurry SDK includes AppCircle, Flurry's mobile advertising solution. 106 | 107 | Per Flurry's existing Terms of Service and Privacy Policy, please inform your consumers about data you collect through the use of our services. Additionally, please remember that you must abide by the rules set forth in the new Apple iPhone Developer Program License Agreement. 108 | 109 | Despite our latest efforts, please understand that we are unable to guarantee whether Apple reviewers will approve your application in its App Store submission process. 110 | 111 | ===================================== 112 | 4. Optional / Advanced Features 113 | 114 | You can use the following methods to report additional data. These methods work exactly the same with or without location services enabled. 115 | 116 | [FlurryAPI logEvent:@"EVENT_NAME"]; 117 | Use logEvent to count the number of times certain events happen during a session of your application. This can be useful for measuring how often users perform various actions, for example. Your application is currently limited to counting occurrences for 100 different event ids (maximum length 255 characters). 118 | 119 | [FlurryAPI logEvent:@"EVENT_NAME" withParameters:YOUR_NSDictionary]; 120 | Use this version of logEvent to count the number of times certain events happen during a session of your application and to pass dynamic parameters to be recorded with that event. For example, you could record that a user used your search box tool and also dynamically record which search terms the user entered. Your application is currently limited to counting occurrences for 100 different event ids (maximum length 255 characters). 121 | 122 | An example NSDictionary to use with this method could be: 123 | NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"your dynamic parameter value", @"your dynamic parameter name", nil]; 124 | 125 | [FlurryAPI logEvent:@"EVENT_NAME" timed:YES]; 126 | Use this version of logEvent to start timed event. 127 | 128 | [FlurryAPI logEvent:@"EVENT_NAME" withParameters:YOUR_NSDictionary timed:YES]; 129 | Use this version of logEvent to start timed event with event parameters. 130 | 131 | [FlurryAPI endTimedEvent:@"EVENT_NAME"]; 132 | Use endTimedEvent to end timed event before app exists, otherwise timed events automatically end when app exists. 133 | 134 | [FlurryAPI logError:@"ERROR_NAME" message:@"ERROR_MESSAGE" exception:e]; 135 | Use this to log exceptions and/or errors that occur in your app. Flurry will report the first 10 errors that occur in each session. 136 | 137 | [FlurryAPI setUserID:@"USER_ID"]; 138 | Use this to log the user's assigned ID or username in your system after identifying the user. 139 | 140 | [FlurryAPI setAge:21]; 141 | Use this to log the user age after identifying the user. Valid inputs are 0 or greater. 142 | 143 | [FlurryAPI countPageViews:navigationController]; 144 | Use this to track user interactions with application's navigation structures. Each interaction is considered a page view. To enable tracking, pass in an instance of UINavigationController and UITabBarController. Multiple UINavigationController and UITabBarController instances can be tracked. 145 | 146 | [FlurryAPI countPageView]; 147 | If your app does not use UINavigationController or UITabBarController, Flurry API will not be able to automatically track user's interactions. In this case, you can use manually count a page view after detecting the user interaction yourself. 148 | 149 | [FlurryAPI setSessionReportsOnCloseEnabled:(BOOL)sendSessionReportsOnClose]; 150 | This option is on by default. When enabled, Flurry will attempt to send session data when the app is exited as well as it normally does when the app is started. This will improve the speed at which your application analytics are updated but can prolong the app termination process due to network latency. In some cases, the network latency can cause the app to crash. 151 | 152 | [FlurryAPI setSessionReportsOnPauseEnabled:(BOOL)sendSessionReportsOnPause]; 153 | This option is off by default. When enabled, Flurry will attempt to send session data when the app is paused as well as it normally does when the app is started. This will improve the speed at which your application analytics are updated but can prolong the app pause process due to network latency. In some cases, the network latency can cause the app to crash. 154 | 155 | ===================================== 156 | 5. Recommendations 157 | 158 | We recommend adding an uncaught exception listener to your application (if you don't already have one) and use logError to record any application crashes. 159 | Adding an uncaught exception listener is easy; you just need to create a function that looks like the following: 160 | 161 | void uncaughtExceptionHandler(NSException *exception) { 162 | [FlurryAPI logError:@"Uncaught" message:@"Crash!" exception:exception]; 163 | } 164 | 165 | You then need to register this function as an uncaught exception listener as follows: 166 | 167 | - (void)applicationDidFinishLaunching:(UIApplication *)application { 168 | NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler); 169 | [FlurryAPI startSession:@"YOUR_API_KEY"]; 170 | .... 171 | } 172 | 173 | Note that you can name the function whatever you'd like and record whatever error information you'd like in the error name and event fields. 174 | 175 | ===================================== 176 | 6. FAQ 177 | 178 | When does the Flurry Agent send data? 179 | 180 | By default, the Flurry Agent will send the stored metrics data to Flurry servers when the app starts, resumes, and terminates. 181 | To override default Agent behavior, you can turn off sending data on termination with [FlurryAPI setSessionReportsOnCloseEnabled:NO]; 182 | Sending metrics data when the app pauses is also supported, but not enabled by default. You can enable sending data on pause with [FlurryAPI setSessionReportsOnPauseEnabled:YES]; 183 | 184 | How much data does the Agent send each session? 185 | 186 | All data sent by the Flurry Agent is sent in a compact binary format. 187 | 188 | What data does the Agent send? 189 | 190 | The data sent by the Flurry Agent includes time stamps, logged events, logged errors, and various device specific information. This is the same information that can be seen in the custom event logs on in the Event Analytics section. 191 | If AppCircle is used, Flurry Agent will also send AppCircle user interaction data. These information can be seen in the AppCircle section. 192 | We are also collecting App Store ID, purchase date, release date, and purchase price in order to provide more metrics in the future. 193 | We do not collect personally identifiable information. 194 | 195 | ===================================== 196 | 197 | Please let us know if you have any questions. If you need any help, just email iphonesupport@flurry.com! 198 | 199 | Cheers, 200 | The Flurry Team 201 | http://www.flurry.com 202 | iphonesupport@flurry.com -------------------------------------------------------------------------------- /shapes-panels.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 45; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; 11 | 1F3B9A2D0EF2145700286867 /* shapesAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F3B9A2B0EF2145700286867 /* shapesAppDelegate.m */; }; 12 | 433BD8211201C7090025525E /* NMPanelMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 433BD8201201C7090025525E /* NMPanelMenu.m */; }; 13 | 433BD84A1201C73F0025525E /* NMPanelMenuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 433BD8491201C73F0025525E /* NMPanelMenuItem.m */; }; 14 | 434F461C11FB2F9400603A4D /* libcocos2d.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 434F45A311FB2F6A00603A4D /* libcocos2d.a */; }; 15 | 4365CA5C120A6AFB00E598B9 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4365CA5B120A6AFB00E598B9 /* MediaPlayer.framework */; }; 16 | 436AEF9A1243C3C70010824E /* PLBlocks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 436AEF991243C3C70010824E /* PLBlocks.framework */; }; 17 | 4379A70B12125BBA00256487 /* libFontLabel.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 434F45AB11FB2F6A00603A4D /* libFontLabel.a */; }; 18 | 43A94B471222B5990030A3BA /* HCUPPanelScene.m in Sources */ = {isa = PBXBuildFile; fileRef = 43A94B461222B5990030A3BA /* HCUPPanelScene.m */; }; 19 | 43A94B5E1222B87D0030A3BA /* CocosOverlayScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 43A94B5D1222B87D0030A3BA /* CocosOverlayScrollView.m */; }; 20 | 43D170D4122345AA0081657D /* TouchDelegatingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 43D170D3122345AA0081657D /* TouchDelegatingView.m */; }; 21 | 43E9C7E411FF2BD8000CA26E /* libCocosDenshion.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 434F45A711FB2F6A00603A4D /* libCocosDenshion.a */; }; 22 | 43F538E0123682CD00D74B1E /* amazon-panel.png in Resources */ = {isa = PBXBuildFile; fileRef = 43F538D9123682CD00D74B1E /* amazon-panel.png */; }; 23 | 43F538E1123682CD00D74B1E /* arctic-panel.png in Resources */ = {isa = PBXBuildFile; fileRef = 43F538DA123682CD00D74B1E /* arctic-panel.png */; }; 24 | 43F538E2123682CD00D74B1E /* brkfst-panel.png in Resources */ = {isa = PBXBuildFile; fileRef = 43F538DB123682CD00D74B1E /* brkfst-panel.png */; }; 25 | 43F538E3123682CD00D74B1E /* camp-panel.png in Resources */ = {isa = PBXBuildFile; fileRef = 43F538DC123682CD00D74B1E /* camp-panel.png */; }; 26 | 43F538E4123682CD00D74B1E /* city-panel.png in Resources */ = {isa = PBXBuildFile; fileRef = 43F538DD123682CD00D74B1E /* city-panel.png */; }; 27 | 43F538E5123682CD00D74B1E /* frames-glow.png in Resources */ = {isa = PBXBuildFile; fileRef = 43F538DE123682CD00D74B1E /* frames-glow.png */; }; 28 | 43F538E6123682CD00D74B1E /* paper-background.png in Resources */ = {isa = PBXBuildFile; fileRef = 43F538DF123682CD00D74B1E /* paper-background.png */; }; 29 | 506EDB88102F4C4000A389B3 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 506EDB87102F4C4000A389B3 /* libz.dylib */; }; 30 | 506EDBA5102F4C9F00A389B3 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 506EDBA4102F4C9F00A389B3 /* AVFoundation.framework */; }; 31 | 50F414F11069373D002A0D5E /* fps_images.png in Resources */ = {isa = PBXBuildFile; fileRef = 50F414ED1069373D002A0D5E /* fps_images.png */; }; 32 | 50F414F21069373D002A0D5E /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 50F414EE1069373D002A0D5E /* Icon.png */; }; 33 | DC6640030F83B3EA000B3E49 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC6640020F83B3EA000B3E49 /* AudioToolbox.framework */; }; 34 | DC6640050F83B3EA000B3E49 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC6640040F83B3EA000B3E49 /* OpenAL.framework */; }; 35 | DCCBF1B70F6022AE0040855A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCCBF1B60F6022AE0040855A /* CoreGraphics.framework */; }; 36 | DCCBF1B90F6022AE0040855A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCCBF1B80F6022AE0040855A /* Foundation.framework */; }; 37 | DCCBF1BB0F6022AE0040855A /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCCBF1BA0F6022AE0040855A /* OpenGLES.framework */; }; 38 | DCCBF1BD0F6022AE0040855A /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCCBF1BC0F6022AE0040855A /* QuartzCore.framework */; }; 39 | DCCBF1BF0F6022AE0040855A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCCBF1BE0F6022AE0040855A /* UIKit.framework */; }; 40 | /* End PBXBuildFile section */ 41 | 42 | /* Begin PBXContainerItemProxy section */ 43 | 434F459C11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 44 | isa = PBXContainerItemProxy; 45 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 46 | proxyType = 2; 47 | remoteGlobalIDString = 509807081175041800EA7266; 48 | remoteInfo = "build all tests"; 49 | }; 50 | 434F459E11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 51 | isa = PBXContainerItemProxy; 52 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 53 | proxyType = 2; 54 | remoteGlobalIDString = 504225700FC0B39C00B992F7; 55 | remoteInfo = box2d; 56 | }; 57 | 434F45A011FB2F6A00603A4D /* PBXContainerItemProxy */ = { 58 | isa = PBXContainerItemProxy; 59 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 60 | proxyType = 2; 61 | remoteGlobalIDString = 50B2C4D10E100AEA00AE9530; 62 | remoteInfo = Chipmunk; 63 | }; 64 | 434F45A211FB2F6A00603A4D /* PBXContainerItemProxy */ = { 65 | isa = PBXContainerItemProxy; 66 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 67 | proxyType = 2; 68 | remoteGlobalIDString = 5018F24D0DFDEAC400C013A5; 69 | remoteInfo = cocos2d; 70 | }; 71 | 434F45A411FB2F6A00603A4D /* PBXContainerItemProxy */ = { 72 | isa = PBXContainerItemProxy; 73 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 74 | proxyType = 2; 75 | remoteGlobalIDString = 502C65EE0DFEF3DD00E4107D; 76 | remoteInfo = "cocos2d-documentation"; 77 | }; 78 | 434F45A611FB2F6A00603A4D /* PBXContainerItemProxy */ = { 79 | isa = PBXContainerItemProxy; 80 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 81 | proxyType = 2; 82 | remoteGlobalIDString = 50CB2FCA1004C8B100B7A750; 83 | remoteInfo = CocosDenshion; 84 | }; 85 | 434F45A811FB2F6A00603A4D /* PBXContainerItemProxy */ = { 86 | isa = PBXContainerItemProxy; 87 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 88 | proxyType = 2; 89 | remoteGlobalIDString = 509B3A0D0F31024E00F2FB95; 90 | remoteInfo = cocosLive; 91 | }; 92 | 434F45AA11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 93 | isa = PBXContainerItemProxy; 94 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 95 | proxyType = 2; 96 | remoteGlobalIDString = 505461DF10616AE100AB7C52; 97 | remoteInfo = FontLabel; 98 | }; 99 | 434F45AC11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 100 | isa = PBXContainerItemProxy; 101 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 102 | proxyType = 2; 103 | remoteGlobalIDString = 503164CD10277665003ACFE7; 104 | remoteInfo = libpng; 105 | }; 106 | 434F45AE11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 107 | isa = PBXContainerItemProxy; 108 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 109 | proxyType = 2; 110 | remoteGlobalIDString = 509B39DF0F31020900F2FB95; 111 | remoteInfo = TouchJSON; 112 | }; 113 | 434F45B011FB2F6A00603A4D /* PBXContainerItemProxy */ = { 114 | isa = PBXContainerItemProxy; 115 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 116 | proxyType = 2; 117 | remoteGlobalIDString = 8E6CBEEF0F7A758000D47B3A; 118 | remoteInfo = vorbis; 119 | }; 120 | 434F45B211FB2F6A00603A4D /* PBXContainerItemProxy */ = { 121 | isa = PBXContainerItemProxy; 122 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 123 | proxyType = 2; 124 | remoteGlobalIDString = 504CC32F1035BDE90096894C; 125 | remoteInfo = ActionManagerTest; 126 | }; 127 | 434F45B411FB2F6A00603A4D /* PBXContainerItemProxy */ = { 128 | isa = PBXContainerItemProxy; 129 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 130 | proxyType = 2; 131 | remoteGlobalIDString = 50C93AAD0E0BF6E000517B01; 132 | remoteInfo = ActionsTest; 133 | }; 134 | 434F45B611FB2F6A00603A4D /* PBXContainerItemProxy */ = { 135 | isa = PBXContainerItemProxy; 136 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 137 | proxyType = 2; 138 | remoteGlobalIDString = 05CA7B0410ED674700F12774; 139 | remoteInfo = ActionsWithBlocksSample; 140 | }; 141 | 434F45B811FB2F6A00603A4D /* PBXContainerItemProxy */ = { 142 | isa = PBXContainerItemProxy; 143 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 144 | proxyType = 2; 145 | remoteGlobalIDString = 506882110E95761200F943E5; 146 | remoteInfo = AtlasTest; 147 | }; 148 | 434F45BA11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 149 | isa = PBXContainerItemProxy; 150 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 151 | proxyType = 2; 152 | remoteGlobalIDString = 504828800F45AED700A30CEF; 153 | remoteInfo = AttachTest; 154 | }; 155 | 434F45BC11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 156 | isa = PBXContainerItemProxy; 157 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 158 | proxyType = 2; 159 | remoteGlobalIDString = 5042262E0FC0B5D500B992F7; 160 | remoteInfo = Box2dAccelTouchTest; 161 | }; 162 | 434F45BE11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 163 | isa = PBXContainerItemProxy; 164 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 165 | proxyType = 2; 166 | remoteGlobalIDString = 50010ED2103B3DB80059EC2E; 167 | remoteInfo = Box2dTestBed; 168 | }; 169 | 434F45C011FB2F6A00603A4D /* PBXContainerItemProxy */ = { 170 | isa = PBXContainerItemProxy; 171 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 172 | proxyType = 2; 173 | remoteGlobalIDString = 50B2C5E80E100EF000AE9530; 174 | remoteInfo = ChipmunkAccelTouchTest; 175 | }; 176 | 434F45C211FB2F6A00603A4D /* PBXContainerItemProxy */ = { 177 | isa = PBXContainerItemProxy; 178 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 179 | proxyType = 2; 180 | remoteGlobalIDString = 50B2CE460E129FD900AE9530; 181 | remoteInfo = ChipmunkTestBed; 182 | }; 183 | 434F45C411FB2F6A00603A4D /* PBXContainerItemProxy */ = { 184 | isa = PBXContainerItemProxy; 185 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 186 | proxyType = 2; 187 | remoteGlobalIDString = 506C77E20E01520900B48100; 188 | remoteInfo = ClickAndMoveTest; 189 | }; 190 | 434F45C611FB2F6A00603A4D /* PBXContainerItemProxy */ = { 191 | isa = PBXContainerItemProxy; 192 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 193 | proxyType = 2; 194 | remoteGlobalIDString = 505224F911B3D4700061670F; 195 | remoteInfo = "CocosDenshion - Tom The Turret"; 196 | }; 197 | 434F45C811FB2F6A00603A4D /* PBXContainerItemProxy */ = { 198 | isa = PBXContainerItemProxy; 199 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 200 | proxyType = 2; 201 | remoteGlobalIDString = 505228BA11B3DBB90061670F; 202 | remoteInfo = "CocosDenshion - Drum Pad"; 203 | }; 204 | 434F45CA11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 205 | isa = PBXContainerItemProxy; 206 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 207 | proxyType = 2; 208 | remoteGlobalIDString = 5052293C11B3DCD80061670F; 209 | remoteInfo = "CocosDenshion - Fade To Grey"; 210 | }; 211 | 434F45CC11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 212 | isa = PBXContainerItemProxy; 213 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 214 | proxyType = 2; 215 | remoteGlobalIDString = 5052296E11B3DCE90061670F; 216 | remoteInfo = "CocosDenshion - FancyRat Metering"; 217 | }; 218 | 434F45CE11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 219 | isa = PBXContainerItemProxy; 220 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 221 | proxyType = 2; 222 | remoteGlobalIDString = 509B3A280F3102FD00F2FB95; 223 | remoteInfo = cocosLiveTest; 224 | }; 225 | 434F45D011FB2F6A00603A4D /* PBXContainerItemProxy */ = { 226 | isa = PBXContainerItemProxy; 227 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 228 | proxyType = 2; 229 | remoteGlobalIDString = 506144080E589A2E003CCDB7; 230 | remoteInfo = cocosnodeTest; 231 | }; 232 | 434F45D211FB2F6A00603A4D /* PBXContainerItemProxy */ = { 233 | isa = PBXContainerItemProxy; 234 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 235 | proxyType = 2; 236 | remoteGlobalIDString = 501945740F964C620059CE7C; 237 | remoteInfo = drawPrimitivesTest; 238 | }; 239 | 434F45D411FB2F6A00603A4D /* PBXContainerItemProxy */ = { 240 | isa = PBXContainerItemProxy; 241 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 242 | proxyType = 2; 243 | remoteGlobalIDString = 504E17DC11C4C7E100E19835; 244 | remoteInfo = EAGLViewTest; 245 | }; 246 | 434F45D611FB2F6A00603A4D /* PBXContainerItemProxy */ = { 247 | isa = PBXContainerItemProxy; 248 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 249 | proxyType = 2; 250 | remoteGlobalIDString = 505B63A30F2F4210001B4104; 251 | remoteInfo = EaseActionsTest; 252 | }; 253 | 434F45D811FB2F6A00603A4D /* PBXContainerItemProxy */ = { 254 | isa = PBXContainerItemProxy; 255 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 256 | proxyType = 2; 257 | remoteGlobalIDString = 50A24E440F377FA1007CAEB0; 258 | remoteInfo = EffectsTest; 259 | }; 260 | 434F45DA11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 261 | isa = PBXContainerItemProxy; 262 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 263 | proxyType = 2; 264 | remoteGlobalIDString = 50D56FD20F3FABEC007CD6B9; 265 | remoteInfo = EffectsAdvancedTest; 266 | }; 267 | 434F45DC11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 268 | isa = PBXContainerItemProxy; 269 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 270 | proxyType = 2; 271 | remoteGlobalIDString = DAABAA9A1059A42E00794EB3; 272 | remoteInfo = FontTest; 273 | }; 274 | 434F45DE11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 275 | isa = PBXContainerItemProxy; 276 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 277 | proxyType = 2; 278 | remoteGlobalIDString = 50C7D4950E5C2ED80035ACA2; 279 | remoteInfo = IntervalTest; 280 | }; 281 | 434F45E011FB2F6A00603A4D /* PBXContainerItemProxy */ = { 282 | isa = PBXContainerItemProxy; 283 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 284 | proxyType = 2; 285 | remoteGlobalIDString = 50E77D1211D4C926009CA2C2; 286 | remoteInfo = HiResTest; 287 | }; 288 | 434F45E211FB2F6A00603A4D /* PBXContainerItemProxy */ = { 289 | isa = PBXContainerItemProxy; 290 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 291 | proxyType = 2; 292 | remoteGlobalIDString = 504799B1100F6A4200D1C71A; 293 | remoteInfo = LayerTest; 294 | }; 295 | 434F45E411FB2F6A00603A4D /* PBXContainerItemProxy */ = { 296 | isa = PBXContainerItemProxy; 297 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 298 | proxyType = 2; 299 | remoteGlobalIDString = 506C7A090E01C73A00B48100; 300 | remoteInfo = MenuTest; 301 | }; 302 | 434F45E611FB2F6A00603A4D /* PBXContainerItemProxy */ = { 303 | isa = PBXContainerItemProxy; 304 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 305 | proxyType = 2; 306 | remoteGlobalIDString = 05AAF3E410EE85B300CACA2B; 307 | remoteInfo = MenuTestWithBlocks; 308 | }; 309 | 434F45E811FB2F6A00603A4D /* PBXContainerItemProxy */ = { 310 | isa = PBXContainerItemProxy; 311 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 312 | proxyType = 2; 313 | remoteGlobalIDString = 50A783C40F3AFCE500104C45; 314 | remoteInfo = MotionStreakTest; 315 | }; 316 | 434F45EA11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 317 | isa = PBXContainerItemProxy; 318 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 319 | proxyType = 2; 320 | remoteGlobalIDString = 50C195600EE4B57E00829067; 321 | remoteInfo = ParallaxTest; 322 | }; 323 | 434F45EC11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 324 | isa = PBXContainerItemProxy; 325 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 326 | proxyType = 2; 327 | remoteGlobalIDString = 50DB1BCA0E1C1E5900A89DFF; 328 | remoteInfo = ParticleTest; 329 | }; 330 | 434F45EE11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 331 | isa = PBXContainerItemProxy; 332 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 333 | proxyType = 2; 334 | remoteGlobalIDString = 8EDF3ED80F6BDA0000F54643; 335 | remoteInfo = "PASoundEngineTest (experimental)"; 336 | }; 337 | 434F45F011FB2F6A00603A4D /* PBXContainerItemProxy */ = { 338 | isa = PBXContainerItemProxy; 339 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 340 | proxyType = 2; 341 | remoteGlobalIDString = 5006BD0D11BCF3C300E488BD; 342 | remoteInfo = PerformanceTestChildrenNode; 343 | }; 344 | 434F45F211FB2F6A00603A4D /* PBXContainerItemProxy */ = { 345 | isa = PBXContainerItemProxy; 346 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 347 | proxyType = 2; 348 | remoteGlobalIDString = 50E2A40010A4A53000D894CE; 349 | remoteInfo = PerformanceTestParticles; 350 | }; 351 | 434F45F411FB2F6A00603A4D /* PBXContainerItemProxy */ = { 352 | isa = PBXContainerItemProxy; 353 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 354 | proxyType = 2; 355 | remoteGlobalIDString = 50E2A3F410A4A51C00D894CE; 356 | remoteInfo = PerformanceTestSprites; 357 | }; 358 | 434F45F611FB2F6A00603A4D /* PBXContainerItemProxy */ = { 359 | isa = PBXContainerItemProxy; 360 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 361 | proxyType = 2; 362 | remoteGlobalIDString = 504018FB10FE800D0017842A; 363 | remoteInfo = PerformanceTestTouches; 364 | }; 365 | 434F45F811FB2F6A00603A4D /* PBXContainerItemProxy */ = { 366 | isa = PBXContainerItemProxy; 367 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 368 | proxyType = 2; 369 | remoteGlobalIDString = 501504ED11330E1700A9CA65; 370 | remoteInfo = ProgressActionsTest; 371 | }; 372 | 434F45FA11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 373 | isa = PBXContainerItemProxy; 374 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 375 | proxyType = 2; 376 | remoteGlobalIDString = 495E73F7104B74E20012BB52; 377 | remoteInfo = RenderTextureTest; 378 | }; 379 | 434F45FC11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 380 | isa = PBXContainerItemProxy; 381 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 382 | proxyType = 2; 383 | remoteGlobalIDString = 502C66180DFEFCCA00E4107D; 384 | remoteInfo = RotateWorldTest; 385 | }; 386 | 434F45FE11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 387 | isa = PBXContainerItemProxy; 388 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 389 | proxyType = 2; 390 | remoteGlobalIDString = 506C800E0E041C9300B48100; 391 | remoteInfo = SceneTest; 392 | }; 393 | 434F460011FB2F6A00603A4D /* PBXContainerItemProxy */ = { 394 | isa = PBXContainerItemProxy; 395 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 396 | proxyType = 2; 397 | remoteGlobalIDString = 508CA7DA1193270F003AC397; 398 | remoteInfo = SchedulerTest; 399 | }; 400 | 434F460211FB2F6A00603A4D /* PBXContainerItemProxy */ = { 401 | isa = PBXContainerItemProxy; 402 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 403 | proxyType = 2; 404 | remoteGlobalIDString = 501C7C910F91EFFF0024A296; 405 | remoteInfo = SpriteTest; 406 | }; 407 | 434F460411FB2F6A00603A4D /* PBXContainerItemProxy */ = { 408 | isa = PBXContainerItemProxy; 409 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 410 | proxyType = 2; 411 | remoteGlobalIDString = 505B62D60F2E6A0F001B4104; 412 | remoteInfo = Texture2dTest; 413 | }; 414 | 434F460611FB2F6A00603A4D /* PBXContainerItemProxy */ = { 415 | isa = PBXContainerItemProxy; 416 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 417 | proxyType = 2; 418 | remoteGlobalIDString = 503F5CBE101FE930002A37E5; 419 | remoteInfo = TileMapTest; 420 | }; 421 | 434F460811FB2F6A00603A4D /* PBXContainerItemProxy */ = { 422 | isa = PBXContainerItemProxy; 423 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 424 | proxyType = 2; 425 | remoteGlobalIDString = 5012DD3B0FE2994300D6DDD1; 426 | remoteInfo = TouchesTest; 427 | }; 428 | 434F460A11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 429 | isa = PBXContainerItemProxy; 430 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 431 | proxyType = 2; 432 | remoteGlobalIDString = 50C938E00E0A9DBB00517B01; 433 | remoteInfo = TransitionsTest; 434 | }; 435 | 434F460C11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 436 | isa = PBXContainerItemProxy; 437 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 438 | proxyType = 2; 439 | remoteGlobalIDString = 50DFC29F0FF627B6007E7827; 440 | remoteInfo = HelloWorldSample; 441 | }; 442 | 434F460E11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 443 | isa = PBXContainerItemProxy; 444 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 445 | proxyType = 2; 446 | remoteGlobalIDString = 50D0E05F0FF9232E00098927; 447 | remoteInfo = HelloActionsSample; 448 | }; 449 | 434F461011FB2F6A00603A4D /* PBXContainerItemProxy */ = { 450 | isa = PBXContainerItemProxy; 451 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 452 | proxyType = 2; 453 | remoteGlobalIDString = 50D0E0DE0FF930BA00098927; 454 | remoteInfo = HelloEventsSample; 455 | }; 456 | 434F461211FB2F6A00603A4D /* PBXContainerItemProxy */ = { 457 | isa = PBXContainerItemProxy; 458 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 459 | proxyType = 2; 460 | remoteGlobalIDString = 507FF8F2116D16F600B6FAB2; 461 | remoteInfo = Bug350; 462 | }; 463 | 434F461411FB2F6A00603A4D /* PBXContainerItemProxy */ = { 464 | isa = PBXContainerItemProxy; 465 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 466 | proxyType = 2; 467 | remoteGlobalIDString = 50CB34DD100765EF00B7A750; 468 | remoteInfo = Bug422; 469 | }; 470 | 434F461611FB2F6A00603A4D /* PBXContainerItemProxy */ = { 471 | isa = PBXContainerItemProxy; 472 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 473 | proxyType = 2; 474 | remoteGlobalIDString = 50CBA48711CBD6FB007B009D; 475 | remoteInfo = Bug886; 476 | }; 477 | 434F461811FB2F6A00603A4D /* PBXContainerItemProxy */ = { 478 | isa = PBXContainerItemProxy; 479 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 480 | proxyType = 2; 481 | remoteGlobalIDString = 507C0F0B11D609290075E747; 482 | remoteInfo = Bug899; 483 | }; 484 | 434F461A11FB2F6A00603A4D /* PBXContainerItemProxy */ = { 485 | isa = PBXContainerItemProxy; 486 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 487 | proxyType = 2; 488 | remoteGlobalIDString = 502BF56911E39CC30030C477; 489 | remoteInfo = Bug914; 490 | }; 491 | 434F461D11FB2F9B00603A4D /* PBXContainerItemProxy */ = { 492 | isa = PBXContainerItemProxy; 493 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 494 | proxyType = 1; 495 | remoteGlobalIDString = 5018F24C0DFDEAC400C013A5; 496 | remoteInfo = cocos2d; 497 | }; 498 | 434F461F11FB2FA000603A4D /* PBXContainerItemProxy */ = { 499 | isa = PBXContainerItemProxy; 500 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 501 | proxyType = 1; 502 | remoteGlobalIDString = 50CB2FC91004C8B100B7A750; 503 | remoteInfo = CocosDenshion; 504 | }; 505 | 434F462111FB2FA300603A4D /* PBXContainerItemProxy */ = { 506 | isa = PBXContainerItemProxy; 507 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 508 | proxyType = 1; 509 | remoteGlobalIDString = 505461DE10616AE100AB7C52; 510 | remoteInfo = FontLabel; 511 | }; 512 | 434F462311FB2FA700603A4D /* PBXContainerItemProxy */ = { 513 | isa = PBXContainerItemProxy; 514 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 515 | proxyType = 1; 516 | remoteGlobalIDString = 503164CC10277665003ACFE7; 517 | remoteInfo = libpng; 518 | }; 519 | 434F462511FB2FAA00603A4D /* PBXContainerItemProxy */ = { 520 | isa = PBXContainerItemProxy; 521 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 522 | proxyType = 1; 523 | remoteGlobalIDString = 509B39DE0F31020900F2FB95; 524 | remoteInfo = TouchJSON; 525 | }; 526 | 434F462711FB2FAE00603A4D /* PBXContainerItemProxy */ = { 527 | isa = PBXContainerItemProxy; 528 | containerPortal = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 529 | proxyType = 1; 530 | remoteGlobalIDString = 8E6CBEEE0F7A758000D47B3A; 531 | remoteInfo = vorbis; 532 | }; 533 | /* End PBXContainerItemProxy section */ 534 | 535 | /* Begin PBXFileReference section */ 536 | 1D6058910D05DD3D006BFB54 /* PanelsExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PanelsExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 537 | 1F3B9A2B0EF2145700286867 /* shapesAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = shapesAppDelegate.m; path = Classes/shapesAppDelegate.m; sourceTree = SOURCE_ROOT; }; 538 | 1F3B9A2C0EF2145700286867 /* shapesAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = shapesAppDelegate.h; path = Classes/shapesAppDelegate.h; sourceTree = SOURCE_ROOT; }; 539 | 1F3B9A820EF2151B00286867 /* shapes_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = shapes_Prefix.pch; sourceTree = SOURCE_ROOT; }; 540 | 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 541 | 433BD81F1201C7090025525E /* NMPanelMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NMPanelMenu.h; sourceTree = ""; }; 542 | 433BD8201201C7090025525E /* NMPanelMenu.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NMPanelMenu.m; sourceTree = ""; }; 543 | 433BD8481201C73F0025525E /* NMPanelMenuItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NMPanelMenuItem.h; sourceTree = ""; }; 544 | 433BD8491201C73F0025525E /* NMPanelMenuItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NMPanelMenuItem.m; sourceTree = ""; }; 545 | 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = "cocos2d-iphone.xcodeproj"; sourceTree = COCOS2D_SRC; }; 546 | 4365CA5B120A6AFB00E598B9 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; }; 547 | 436AEF991243C3C70010824E /* PLBlocks.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PLBlocks.framework; path = Frameworks/PLBlocks.framework; sourceTree = ""; }; 548 | 436B00F011FFB124007B2F00 /* SynthesizeSingleton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SynthesizeSingleton.h; path = Classes/Other/SynthesizeSingleton.h; sourceTree = ""; }; 549 | 43A94B451222B5990030A3BA /* HCUPPanelScene.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HCUPPanelScene.h; sourceTree = ""; }; 550 | 43A94B461222B5990030A3BA /* HCUPPanelScene.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HCUPPanelScene.m; sourceTree = ""; }; 551 | 43A94B5C1222B87D0030A3BA /* CocosOverlayScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CocosOverlayScrollView.h; sourceTree = ""; }; 552 | 43A94B5D1222B87D0030A3BA /* CocosOverlayScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CocosOverlayScrollView.m; sourceTree = ""; }; 553 | 43D170D2122345AA0081657D /* TouchDelegatingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TouchDelegatingView.h; sourceTree = ""; }; 554 | 43D170D3122345AA0081657D /* TouchDelegatingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TouchDelegatingView.m; sourceTree = ""; }; 555 | 43D92D7C11FDD3E80055D2D5 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = ""; }; 556 | 43F538D9123682CD00D74B1E /* amazon-panel.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "amazon-panel.png"; sourceTree = ""; }; 557 | 43F538DA123682CD00D74B1E /* arctic-panel.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "arctic-panel.png"; sourceTree = ""; }; 558 | 43F538DB123682CD00D74B1E /* brkfst-panel.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "brkfst-panel.png"; sourceTree = ""; }; 559 | 43F538DC123682CD00D74B1E /* camp-panel.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "camp-panel.png"; sourceTree = ""; }; 560 | 43F538DD123682CD00D74B1E /* city-panel.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "city-panel.png"; sourceTree = ""; }; 561 | 43F538DE123682CD00D74B1E /* frames-glow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "frames-glow.png"; sourceTree = ""; }; 562 | 43F538DF123682CD00D74B1E /* paper-background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "paper-background.png"; sourceTree = ""; }; 563 | 504DFC6810AF1739006D82FE /* LICENSE.cocos2d */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE.cocos2d; sourceTree = ""; }; 564 | 504DFC6910AF1739006D82FE /* LICENSE.cocosdenshion */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE.cocosdenshion; sourceTree = ""; }; 565 | 506EDB87102F4C4000A389B3 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; 566 | 506EDBA4102F4C9F00A389B3 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; 567 | 50F414ED1069373D002A0D5E /* fps_images.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = fps_images.png; sourceTree = ""; }; 568 | 50F414EE1069373D002A0D5E /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon.png; sourceTree = ""; }; 569 | 50F414EF1069373D002A0D5E /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 570 | DC6640020F83B3EA000B3E49 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; 571 | DC6640040F83B3EA000B3E49 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; 572 | DCCBF1B60F6022AE0040855A /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 573 | DCCBF1B80F6022AE0040855A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 574 | DCCBF1BA0F6022AE0040855A /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; 575 | DCCBF1BC0F6022AE0040855A /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; 576 | DCCBF1BE0F6022AE0040855A /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 577 | /* End PBXFileReference section */ 578 | 579 | /* Begin PBXFrameworksBuildPhase section */ 580 | 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { 581 | isa = PBXFrameworksBuildPhase; 582 | buildActionMask = 2147483647; 583 | files = ( 584 | 434F461C11FB2F9400603A4D /* libcocos2d.a in Frameworks */, 585 | 43E9C7E411FF2BD8000CA26E /* libCocosDenshion.a in Frameworks */, 586 | 4379A70B12125BBA00256487 /* libFontLabel.a in Frameworks */, 587 | DCCBF1B70F6022AE0040855A /* CoreGraphics.framework in Frameworks */, 588 | DCCBF1B90F6022AE0040855A /* Foundation.framework in Frameworks */, 589 | DCCBF1BB0F6022AE0040855A /* OpenGLES.framework in Frameworks */, 590 | DCCBF1BD0F6022AE0040855A /* QuartzCore.framework in Frameworks */, 591 | DCCBF1BF0F6022AE0040855A /* UIKit.framework in Frameworks */, 592 | DC6640030F83B3EA000B3E49 /* AudioToolbox.framework in Frameworks */, 593 | DC6640050F83B3EA000B3E49 /* OpenAL.framework in Frameworks */, 594 | 506EDB88102F4C4000A389B3 /* libz.dylib in Frameworks */, 595 | 506EDBA5102F4C9F00A389B3 /* AVFoundation.framework in Frameworks */, 596 | 4365CA5C120A6AFB00E598B9 /* MediaPlayer.framework in Frameworks */, 597 | 436AEF9A1243C3C70010824E /* PLBlocks.framework in Frameworks */, 598 | ); 599 | runOnlyForDeploymentPostprocessing = 0; 600 | }; 601 | /* End PBXFrameworksBuildPhase section */ 602 | 603 | /* Begin PBXGroup section */ 604 | 19C28FACFE9D520D11CA2CBB /* Products */ = { 605 | isa = PBXGroup; 606 | children = ( 607 | 1D6058910D05DD3D006BFB54 /* PanelsExample.app */, 608 | ); 609 | name = Products; 610 | sourceTree = ""; 611 | }; 612 | 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { 613 | isa = PBXGroup; 614 | children = ( 615 | 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */, 616 | 504DFC6810AF1739006D82FE /* LICENSE.cocos2d */, 617 | 504DFC6910AF1739006D82FE /* LICENSE.cocosdenshion */, 618 | 2D500B1D0D5A766B00DBA0E3 /* Classes */, 619 | 29B97315FDCFA39411CA2CEA /* Other Sources */, 620 | 50F414EB1069373D002A0D5E /* Resources */, 621 | 29B97323FDCFA39411CA2CEA /* Frameworks */, 622 | 19C28FACFE9D520D11CA2CBB /* Products */, 623 | ); 624 | name = CustomTemplate; 625 | sourceTree = ""; 626 | }; 627 | 29B97315FDCFA39411CA2CEA /* Other Sources */ = { 628 | isa = PBXGroup; 629 | children = ( 630 | 29B97316FDCFA39411CA2CEA /* main.m */, 631 | 1F3B9A820EF2151B00286867 /* shapes_Prefix.pch */, 632 | 436B00F011FFB124007B2F00 /* SynthesizeSingleton.h */, 633 | ); 634 | name = "Other Sources"; 635 | sourceTree = ""; 636 | }; 637 | 29B97323FDCFA39411CA2CEA /* Frameworks */ = { 638 | isa = PBXGroup; 639 | children = ( 640 | 436AEF991243C3C70010824E /* PLBlocks.framework */, 641 | 4365CA5B120A6AFB00E598B9 /* MediaPlayer.framework */, 642 | DCCBF1B60F6022AE0040855A /* CoreGraphics.framework */, 643 | DCCBF1B80F6022AE0040855A /* Foundation.framework */, 644 | DCCBF1BA0F6022AE0040855A /* OpenGLES.framework */, 645 | DCCBF1BC0F6022AE0040855A /* QuartzCore.framework */, 646 | DCCBF1BE0F6022AE0040855A /* UIKit.framework */, 647 | DC6640040F83B3EA000B3E49 /* OpenAL.framework */, 648 | DC6640020F83B3EA000B3E49 /* AudioToolbox.framework */, 649 | 506EDB87102F4C4000A389B3 /* libz.dylib */, 650 | 506EDBA4102F4C9F00A389B3 /* AVFoundation.framework */, 651 | ); 652 | name = Frameworks; 653 | sourceTree = ""; 654 | }; 655 | 2D500B1D0D5A766B00DBA0E3 /* Classes */ = { 656 | isa = PBXGroup; 657 | children = ( 658 | 433BD7D61201C6B60025525E /* Views */, 659 | 43D92D9811FDD8FB0055D2D5 /* Models */, 660 | 434F465111FB317300603A4D /* Scenes */, 661 | 43D92D7C11FDD3E80055D2D5 /* common.h */, 662 | 1F3B9A2C0EF2145700286867 /* shapesAppDelegate.h */, 663 | 1F3B9A2B0EF2145700286867 /* shapesAppDelegate.m */, 664 | ); 665 | path = Classes; 666 | sourceTree = ""; 667 | }; 668 | 433BD7D61201C6B60025525E /* Views */ = { 669 | isa = PBXGroup; 670 | children = ( 671 | 433BD81F1201C7090025525E /* NMPanelMenu.h */, 672 | 433BD8201201C7090025525E /* NMPanelMenu.m */, 673 | 433BD8481201C73F0025525E /* NMPanelMenuItem.h */, 674 | 433BD8491201C73F0025525E /* NMPanelMenuItem.m */, 675 | 43A94B5C1222B87D0030A3BA /* CocosOverlayScrollView.h */, 676 | 43A94B5D1222B87D0030A3BA /* CocosOverlayScrollView.m */, 677 | 43D170D2122345AA0081657D /* TouchDelegatingView.h */, 678 | 43D170D3122345AA0081657D /* TouchDelegatingView.m */, 679 | ); 680 | path = Views; 681 | sourceTree = ""; 682 | }; 683 | 434F455A11FB2F6A00603A4D /* Products */ = { 684 | isa = PBXGroup; 685 | children = ( 686 | 434F459D11FB2F6A00603A4D /* libbuild all tests.a */, 687 | 434F459F11FB2F6A00603A4D /* libbox2d.a */, 688 | 434F45A111FB2F6A00603A4D /* libChipmunk.a */, 689 | 434F45A311FB2F6A00603A4D /* libcocos2d.a */, 690 | 434F45A511FB2F6A00603A4D /* libcocos2d-documentation.a */, 691 | 434F45A711FB2F6A00603A4D /* libCocosDenshion.a */, 692 | 434F45A911FB2F6A00603A4D /* libcocos Live.a */, 693 | 434F45AB11FB2F6A00603A4D /* libFontLabel.a */, 694 | 434F45AD11FB2F6A00603A4D /* liblibpng.a */, 695 | 434F45AF11FB2F6A00603A4D /* libTouchJSON.a */, 696 | 434F45B111FB2F6A00603A4D /* libvorbis.a */, 697 | 434F45B311FB2F6A00603A4D /* ActionManagerTest.app */, 698 | 434F45B511FB2F6A00603A4D /* ActionsTest.app */, 699 | 434F45B711FB2F6A00603A4D /* ActionsWithBlocksSample.app */, 700 | 434F45B911FB2F6A00603A4D /* AtlasTest.app */, 701 | 434F45BB11FB2F6A00603A4D /* AttachTest.app */, 702 | 434F45BD11FB2F6A00603A4D /* Box2dAccelTouchTest.app */, 703 | 434F45BF11FB2F6A00603A4D /* Box2dTestBed.app */, 704 | 434F45C111FB2F6A00603A4D /* ChipmunkAccelTouchTest.app */, 705 | 434F45C311FB2F6A00603A4D /* ChipmunkTest.app */, 706 | 434F45C511FB2F6A00603A4D /* ClickAndMoveTest.app */, 707 | 434F45C711FB2F6A00603A4D /* CocosDenshion - Tom The Turret.app */, 708 | 434F45C911FB2F6A00603A4D /* CocosDenshion - Drum Pad.app */, 709 | 434F45CB11FB2F6A00603A4D /* CocosDenshion - Fade To Grey.app */, 710 | 434F45CD11FB2F6A00603A4D /* CocosDenshion - FancyRat Metering Demo.app */, 711 | 434F45CF11FB2F6A00603A4D /* cocosLiveTest.app */, 712 | 434F45D111FB2F6A00603A4D /* cocosnodeTest.app */, 713 | 434F45D311FB2F6A00603A4D /* drawPrimitivesTest.app */, 714 | 434F45D511FB2F6A00603A4D /* EAGLViewTest.app */, 715 | 434F45D711FB2F6A00603A4D /* EaseActionsTest.app */, 716 | 434F45D911FB2F6A00603A4D /* EffectsTest.app */, 717 | 434F45DB11FB2F6A00603A4D /* EffectsAdvancedTest.app */, 718 | 434F45DD11FB2F6A00603A4D /* FontTest.app */, 719 | 434F45DF11FB2F6A00603A4D /* IntervalTest.app */, 720 | 434F45E111FB2F6A00603A4D /* SpriteTest.app */, 721 | 434F45E311FB2F6A00603A4D /* LayerTest.app */, 722 | 434F45E511FB2F6A00603A4D /* MenuTest.app */, 723 | 434F45E711FB2F6A00603A4D /* MenuTestWithBlocks.app */, 724 | 434F45E911FB2F6A00603A4D /* MotionStreakTest.app */, 725 | 434F45EB11FB2F6A00603A4D /* ParallaxTest.app */, 726 | 434F45ED11FB2F6A00603A4D /* ParticleTest.app */, 727 | 434F45EF11FB2F6A00603A4D /* SoundEngineTest.app */, 728 | 434F45F111FB2F6A00603A4D /* PerformanceTestChildrenNode.app */, 729 | 434F45F311FB2F6A00603A4D /* PerformanceTestParticles.app */, 730 | 434F45F511FB2F6A00603A4D /* PerformanceTestSprites.app */, 731 | 434F45F711FB2F6A00603A4D /* PerformanceTestTouches.app */, 732 | 434F45F911FB2F6A00603A4D /* ProgressActionsTest.app */, 733 | 434F45FB11FB2F6A00603A4D /* RenderTextureTest.app */, 734 | 434F45FD11FB2F6A00603A4D /* RotateWorldTest.app */, 735 | 434F45FF11FB2F6A00603A4D /* SceneTest.app */, 736 | 434F460111FB2F6A00603A4D /* SchedulerTest.app */, 737 | 434F460311FB2F6A00603A4D /* SpriteTest.app */, 738 | 434F460511FB2F6A00603A4D /* Texture2dTest.app */, 739 | 434F460711FB2F6A00603A4D /* TileMapTest.app */, 740 | 434F460911FB2F6A00603A4D /* TouchesTest.app */, 741 | 434F460B11FB2F6A00603A4D /* TransitionsTest.app */, 742 | 434F460D11FB2F6A00603A4D /* HelloWorldSample.app */, 743 | 434F460F11FB2F6A00603A4D /* HelloActionsSample.app */, 744 | 434F461111FB2F6A00603A4D /* HelloEventsSample.app */, 745 | 434F461311FB2F6A00603A4D /* Bug350.app */, 746 | 434F461511FB2F6A00603A4D /* Bug422.app */, 747 | 434F461711FB2F6A00603A4D /* Bug886.app */, 748 | 434F461911FB2F6A00603A4D /* Bug899.app */, 749 | 434F461B11FB2F6A00603A4D /* Bug914.app */, 750 | ); 751 | name = Products; 752 | sourceTree = ""; 753 | }; 754 | 434F465111FB317300603A4D /* Scenes */ = { 755 | isa = PBXGroup; 756 | children = ( 757 | 43A94B451222B5990030A3BA /* HCUPPanelScene.h */, 758 | 43A94B461222B5990030A3BA /* HCUPPanelScene.m */, 759 | ); 760 | path = Scenes; 761 | sourceTree = ""; 762 | }; 763 | 434F466611FB8B4F00603A4D /* images */ = { 764 | isa = PBXGroup; 765 | children = ( 766 | 43F538D9123682CD00D74B1E /* amazon-panel.png */, 767 | 43F538DA123682CD00D74B1E /* arctic-panel.png */, 768 | 43F538DB123682CD00D74B1E /* brkfst-panel.png */, 769 | 43F538DC123682CD00D74B1E /* camp-panel.png */, 770 | 43F538DD123682CD00D74B1E /* city-panel.png */, 771 | 43F538DE123682CD00D74B1E /* frames-glow.png */, 772 | 43F538DF123682CD00D74B1E /* paper-background.png */, 773 | ); 774 | path = images; 775 | sourceTree = ""; 776 | }; 777 | 43D92D9811FDD8FB0055D2D5 /* Models */ = { 778 | isa = PBXGroup; 779 | children = ( 780 | ); 781 | name = Models; 782 | sourceTree = ""; 783 | }; 784 | 50F414EB1069373D002A0D5E /* Resources */ = { 785 | isa = PBXGroup; 786 | children = ( 787 | 434F466611FB8B4F00603A4D /* images */, 788 | 50F414ED1069373D002A0D5E /* fps_images.png */, 789 | 50F414EE1069373D002A0D5E /* Icon.png */, 790 | 50F414EF1069373D002A0D5E /* Info.plist */, 791 | ); 792 | path = Resources; 793 | sourceTree = ""; 794 | }; 795 | /* End PBXGroup section */ 796 | 797 | /* Begin PBXNativeTarget section */ 798 | 1D6058900D05DD3D006BFB54 /* PanelsExample */ = { 799 | isa = PBXNativeTarget; 800 | buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "PanelsExample" */; 801 | buildPhases = ( 802 | 1D60588D0D05DD3D006BFB54 /* Resources */, 803 | 1D60588E0D05DD3D006BFB54 /* Sources */, 804 | 1D60588F0D05DD3D006BFB54 /* Frameworks */, 805 | ); 806 | buildRules = ( 807 | ); 808 | dependencies = ( 809 | 434F461E11FB2F9B00603A4D /* PBXTargetDependency */, 810 | 434F462011FB2FA000603A4D /* PBXTargetDependency */, 811 | 434F462211FB2FA300603A4D /* PBXTargetDependency */, 812 | 434F462411FB2FA700603A4D /* PBXTargetDependency */, 813 | 434F462611FB2FAA00603A4D /* PBXTargetDependency */, 814 | 434F462811FB2FAE00603A4D /* PBXTargetDependency */, 815 | ); 816 | name = PanelsExample; 817 | productName = shapes; 818 | productReference = 1D6058910D05DD3D006BFB54 /* PanelsExample.app */; 819 | productType = "com.apple.product-type.application"; 820 | }; 821 | /* End PBXNativeTarget section */ 822 | 823 | /* Begin PBXProject section */ 824 | 29B97313FDCFA39411CA2CEA /* Project object */ = { 825 | isa = PBXProject; 826 | attributes = { 827 | ORGANIZATIONNAME = LittleHiccup; 828 | }; 829 | buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "shapes-panels" */; 830 | compatibilityVersion = "Xcode 3.1"; 831 | developmentRegion = English; 832 | hasScannedForEncodings = 1; 833 | knownRegions = ( 834 | English, 835 | Japanese, 836 | French, 837 | German, 838 | ); 839 | mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; 840 | projectDirPath = ""; 841 | projectReferences = ( 842 | { 843 | ProductGroup = 434F455A11FB2F6A00603A4D /* Products */; 844 | ProjectRef = 434F449111FB2F6100603A4D /* cocos2d-iphone.xcodeproj */; 845 | }, 846 | ); 847 | projectRoot = ""; 848 | targets = ( 849 | 1D6058900D05DD3D006BFB54 /* PanelsExample */, 850 | ); 851 | }; 852 | /* End PBXProject section */ 853 | 854 | /* Begin PBXReferenceProxy section */ 855 | 434F459D11FB2F6A00603A4D /* libbuild all tests.a */ = { 856 | isa = PBXReferenceProxy; 857 | fileType = archive.ar; 858 | path = "libbuild all tests.a"; 859 | remoteRef = 434F459C11FB2F6A00603A4D /* PBXContainerItemProxy */; 860 | sourceTree = BUILT_PRODUCTS_DIR; 861 | }; 862 | 434F459F11FB2F6A00603A4D /* libbox2d.a */ = { 863 | isa = PBXReferenceProxy; 864 | fileType = archive.ar; 865 | path = libbox2d.a; 866 | remoteRef = 434F459E11FB2F6A00603A4D /* PBXContainerItemProxy */; 867 | sourceTree = BUILT_PRODUCTS_DIR; 868 | }; 869 | 434F45A111FB2F6A00603A4D /* libChipmunk.a */ = { 870 | isa = PBXReferenceProxy; 871 | fileType = archive.ar; 872 | path = libChipmunk.a; 873 | remoteRef = 434F45A011FB2F6A00603A4D /* PBXContainerItemProxy */; 874 | sourceTree = BUILT_PRODUCTS_DIR; 875 | }; 876 | 434F45A311FB2F6A00603A4D /* libcocos2d.a */ = { 877 | isa = PBXReferenceProxy; 878 | fileType = archive.ar; 879 | path = libcocos2d.a; 880 | remoteRef = 434F45A211FB2F6A00603A4D /* PBXContainerItemProxy */; 881 | sourceTree = BUILT_PRODUCTS_DIR; 882 | }; 883 | 434F45A511FB2F6A00603A4D /* libcocos2d-documentation.a */ = { 884 | isa = PBXReferenceProxy; 885 | fileType = archive.ar; 886 | path = "libcocos2d-documentation.a"; 887 | remoteRef = 434F45A411FB2F6A00603A4D /* PBXContainerItemProxy */; 888 | sourceTree = BUILT_PRODUCTS_DIR; 889 | }; 890 | 434F45A711FB2F6A00603A4D /* libCocosDenshion.a */ = { 891 | isa = PBXReferenceProxy; 892 | fileType = archive.ar; 893 | path = libCocosDenshion.a; 894 | remoteRef = 434F45A611FB2F6A00603A4D /* PBXContainerItemProxy */; 895 | sourceTree = BUILT_PRODUCTS_DIR; 896 | }; 897 | 434F45A911FB2F6A00603A4D /* libcocos Live.a */ = { 898 | isa = PBXReferenceProxy; 899 | fileType = archive.ar; 900 | path = "libcocos Live.a"; 901 | remoteRef = 434F45A811FB2F6A00603A4D /* PBXContainerItemProxy */; 902 | sourceTree = BUILT_PRODUCTS_DIR; 903 | }; 904 | 434F45AB11FB2F6A00603A4D /* libFontLabel.a */ = { 905 | isa = PBXReferenceProxy; 906 | fileType = archive.ar; 907 | path = libFontLabel.a; 908 | remoteRef = 434F45AA11FB2F6A00603A4D /* PBXContainerItemProxy */; 909 | sourceTree = BUILT_PRODUCTS_DIR; 910 | }; 911 | 434F45AD11FB2F6A00603A4D /* liblibpng.a */ = { 912 | isa = PBXReferenceProxy; 913 | fileType = archive.ar; 914 | path = liblibpng.a; 915 | remoteRef = 434F45AC11FB2F6A00603A4D /* PBXContainerItemProxy */; 916 | sourceTree = BUILT_PRODUCTS_DIR; 917 | }; 918 | 434F45AF11FB2F6A00603A4D /* libTouchJSON.a */ = { 919 | isa = PBXReferenceProxy; 920 | fileType = archive.ar; 921 | path = libTouchJSON.a; 922 | remoteRef = 434F45AE11FB2F6A00603A4D /* PBXContainerItemProxy */; 923 | sourceTree = BUILT_PRODUCTS_DIR; 924 | }; 925 | 434F45B111FB2F6A00603A4D /* libvorbis.a */ = { 926 | isa = PBXReferenceProxy; 927 | fileType = archive.ar; 928 | path = libvorbis.a; 929 | remoteRef = 434F45B011FB2F6A00603A4D /* PBXContainerItemProxy */; 930 | sourceTree = BUILT_PRODUCTS_DIR; 931 | }; 932 | 434F45B311FB2F6A00603A4D /* ActionManagerTest.app */ = { 933 | isa = PBXReferenceProxy; 934 | fileType = wrapper.application; 935 | path = ActionManagerTest.app; 936 | remoteRef = 434F45B211FB2F6A00603A4D /* PBXContainerItemProxy */; 937 | sourceTree = BUILT_PRODUCTS_DIR; 938 | }; 939 | 434F45B511FB2F6A00603A4D /* ActionsTest.app */ = { 940 | isa = PBXReferenceProxy; 941 | fileType = wrapper.application; 942 | path = ActionsTest.app; 943 | remoteRef = 434F45B411FB2F6A00603A4D /* PBXContainerItemProxy */; 944 | sourceTree = BUILT_PRODUCTS_DIR; 945 | }; 946 | 434F45B711FB2F6A00603A4D /* ActionsWithBlocksSample.app */ = { 947 | isa = PBXReferenceProxy; 948 | fileType = wrapper.application; 949 | path = ActionsWithBlocksSample.app; 950 | remoteRef = 434F45B611FB2F6A00603A4D /* PBXContainerItemProxy */; 951 | sourceTree = BUILT_PRODUCTS_DIR; 952 | }; 953 | 434F45B911FB2F6A00603A4D /* AtlasTest.app */ = { 954 | isa = PBXReferenceProxy; 955 | fileType = wrapper.application; 956 | path = AtlasTest.app; 957 | remoteRef = 434F45B811FB2F6A00603A4D /* PBXContainerItemProxy */; 958 | sourceTree = BUILT_PRODUCTS_DIR; 959 | }; 960 | 434F45BB11FB2F6A00603A4D /* AttachTest.app */ = { 961 | isa = PBXReferenceProxy; 962 | fileType = wrapper.application; 963 | path = AttachTest.app; 964 | remoteRef = 434F45BA11FB2F6A00603A4D /* PBXContainerItemProxy */; 965 | sourceTree = BUILT_PRODUCTS_DIR; 966 | }; 967 | 434F45BD11FB2F6A00603A4D /* Box2dAccelTouchTest.app */ = { 968 | isa = PBXReferenceProxy; 969 | fileType = wrapper.application; 970 | path = Box2dAccelTouchTest.app; 971 | remoteRef = 434F45BC11FB2F6A00603A4D /* PBXContainerItemProxy */; 972 | sourceTree = BUILT_PRODUCTS_DIR; 973 | }; 974 | 434F45BF11FB2F6A00603A4D /* Box2dTestBed.app */ = { 975 | isa = PBXReferenceProxy; 976 | fileType = wrapper.application; 977 | path = Box2dTestBed.app; 978 | remoteRef = 434F45BE11FB2F6A00603A4D /* PBXContainerItemProxy */; 979 | sourceTree = BUILT_PRODUCTS_DIR; 980 | }; 981 | 434F45C111FB2F6A00603A4D /* ChipmunkAccelTouchTest.app */ = { 982 | isa = PBXReferenceProxy; 983 | fileType = wrapper.application; 984 | path = ChipmunkAccelTouchTest.app; 985 | remoteRef = 434F45C011FB2F6A00603A4D /* PBXContainerItemProxy */; 986 | sourceTree = BUILT_PRODUCTS_DIR; 987 | }; 988 | 434F45C311FB2F6A00603A4D /* ChipmunkTest.app */ = { 989 | isa = PBXReferenceProxy; 990 | fileType = wrapper.application; 991 | path = ChipmunkTest.app; 992 | remoteRef = 434F45C211FB2F6A00603A4D /* PBXContainerItemProxy */; 993 | sourceTree = BUILT_PRODUCTS_DIR; 994 | }; 995 | 434F45C511FB2F6A00603A4D /* ClickAndMoveTest.app */ = { 996 | isa = PBXReferenceProxy; 997 | fileType = wrapper.application; 998 | path = ClickAndMoveTest.app; 999 | remoteRef = 434F45C411FB2F6A00603A4D /* PBXContainerItemProxy */; 1000 | sourceTree = BUILT_PRODUCTS_DIR; 1001 | }; 1002 | 434F45C711FB2F6A00603A4D /* CocosDenshion - Tom The Turret.app */ = { 1003 | isa = PBXReferenceProxy; 1004 | fileType = wrapper.application; 1005 | path = "CocosDenshion - Tom The Turret.app"; 1006 | remoteRef = 434F45C611FB2F6A00603A4D /* PBXContainerItemProxy */; 1007 | sourceTree = BUILT_PRODUCTS_DIR; 1008 | }; 1009 | 434F45C911FB2F6A00603A4D /* CocosDenshion - Drum Pad.app */ = { 1010 | isa = PBXReferenceProxy; 1011 | fileType = wrapper.application; 1012 | path = "CocosDenshion - Drum Pad.app"; 1013 | remoteRef = 434F45C811FB2F6A00603A4D /* PBXContainerItemProxy */; 1014 | sourceTree = BUILT_PRODUCTS_DIR; 1015 | }; 1016 | 434F45CB11FB2F6A00603A4D /* CocosDenshion - Fade To Grey.app */ = { 1017 | isa = PBXReferenceProxy; 1018 | fileType = wrapper.application; 1019 | path = "CocosDenshion - Fade To Grey.app"; 1020 | remoteRef = 434F45CA11FB2F6A00603A4D /* PBXContainerItemProxy */; 1021 | sourceTree = BUILT_PRODUCTS_DIR; 1022 | }; 1023 | 434F45CD11FB2F6A00603A4D /* CocosDenshion - FancyRat Metering Demo.app */ = { 1024 | isa = PBXReferenceProxy; 1025 | fileType = wrapper.application; 1026 | path = "CocosDenshion - FancyRat Metering Demo.app"; 1027 | remoteRef = 434F45CC11FB2F6A00603A4D /* PBXContainerItemProxy */; 1028 | sourceTree = BUILT_PRODUCTS_DIR; 1029 | }; 1030 | 434F45CF11FB2F6A00603A4D /* cocosLiveTest.app */ = { 1031 | isa = PBXReferenceProxy; 1032 | fileType = wrapper.application; 1033 | path = cocosLiveTest.app; 1034 | remoteRef = 434F45CE11FB2F6A00603A4D /* PBXContainerItemProxy */; 1035 | sourceTree = BUILT_PRODUCTS_DIR; 1036 | }; 1037 | 434F45D111FB2F6A00603A4D /* cocosnodeTest.app */ = { 1038 | isa = PBXReferenceProxy; 1039 | fileType = wrapper.application; 1040 | path = cocosnodeTest.app; 1041 | remoteRef = 434F45D011FB2F6A00603A4D /* PBXContainerItemProxy */; 1042 | sourceTree = BUILT_PRODUCTS_DIR; 1043 | }; 1044 | 434F45D311FB2F6A00603A4D /* drawPrimitivesTest.app */ = { 1045 | isa = PBXReferenceProxy; 1046 | fileType = wrapper.application; 1047 | path = drawPrimitivesTest.app; 1048 | remoteRef = 434F45D211FB2F6A00603A4D /* PBXContainerItemProxy */; 1049 | sourceTree = BUILT_PRODUCTS_DIR; 1050 | }; 1051 | 434F45D511FB2F6A00603A4D /* EAGLViewTest.app */ = { 1052 | isa = PBXReferenceProxy; 1053 | fileType = wrapper.application; 1054 | path = EAGLViewTest.app; 1055 | remoteRef = 434F45D411FB2F6A00603A4D /* PBXContainerItemProxy */; 1056 | sourceTree = BUILT_PRODUCTS_DIR; 1057 | }; 1058 | 434F45D711FB2F6A00603A4D /* EaseActionsTest.app */ = { 1059 | isa = PBXReferenceProxy; 1060 | fileType = wrapper.application; 1061 | path = EaseActionsTest.app; 1062 | remoteRef = 434F45D611FB2F6A00603A4D /* PBXContainerItemProxy */; 1063 | sourceTree = BUILT_PRODUCTS_DIR; 1064 | }; 1065 | 434F45D911FB2F6A00603A4D /* EffectsTest.app */ = { 1066 | isa = PBXReferenceProxy; 1067 | fileType = wrapper.application; 1068 | path = EffectsTest.app; 1069 | remoteRef = 434F45D811FB2F6A00603A4D /* PBXContainerItemProxy */; 1070 | sourceTree = BUILT_PRODUCTS_DIR; 1071 | }; 1072 | 434F45DB11FB2F6A00603A4D /* EffectsAdvancedTest.app */ = { 1073 | isa = PBXReferenceProxy; 1074 | fileType = wrapper.application; 1075 | path = EffectsAdvancedTest.app; 1076 | remoteRef = 434F45DA11FB2F6A00603A4D /* PBXContainerItemProxy */; 1077 | sourceTree = BUILT_PRODUCTS_DIR; 1078 | }; 1079 | 434F45DD11FB2F6A00603A4D /* FontTest.app */ = { 1080 | isa = PBXReferenceProxy; 1081 | fileType = wrapper.application; 1082 | path = FontTest.app; 1083 | remoteRef = 434F45DC11FB2F6A00603A4D /* PBXContainerItemProxy */; 1084 | sourceTree = BUILT_PRODUCTS_DIR; 1085 | }; 1086 | 434F45DF11FB2F6A00603A4D /* IntervalTest.app */ = { 1087 | isa = PBXReferenceProxy; 1088 | fileType = wrapper.application; 1089 | path = IntervalTest.app; 1090 | remoteRef = 434F45DE11FB2F6A00603A4D /* PBXContainerItemProxy */; 1091 | sourceTree = BUILT_PRODUCTS_DIR; 1092 | }; 1093 | 434F45E111FB2F6A00603A4D /* SpriteTest.app */ = { 1094 | isa = PBXReferenceProxy; 1095 | fileType = wrapper.application; 1096 | path = SpriteTest.app; 1097 | remoteRef = 434F45E011FB2F6A00603A4D /* PBXContainerItemProxy */; 1098 | sourceTree = BUILT_PRODUCTS_DIR; 1099 | }; 1100 | 434F45E311FB2F6A00603A4D /* LayerTest.app */ = { 1101 | isa = PBXReferenceProxy; 1102 | fileType = wrapper.application; 1103 | path = LayerTest.app; 1104 | remoteRef = 434F45E211FB2F6A00603A4D /* PBXContainerItemProxy */; 1105 | sourceTree = BUILT_PRODUCTS_DIR; 1106 | }; 1107 | 434F45E511FB2F6A00603A4D /* MenuTest.app */ = { 1108 | isa = PBXReferenceProxy; 1109 | fileType = wrapper.application; 1110 | path = MenuTest.app; 1111 | remoteRef = 434F45E411FB2F6A00603A4D /* PBXContainerItemProxy */; 1112 | sourceTree = BUILT_PRODUCTS_DIR; 1113 | }; 1114 | 434F45E711FB2F6A00603A4D /* MenuTestWithBlocks.app */ = { 1115 | isa = PBXReferenceProxy; 1116 | fileType = wrapper.application; 1117 | path = MenuTestWithBlocks.app; 1118 | remoteRef = 434F45E611FB2F6A00603A4D /* PBXContainerItemProxy */; 1119 | sourceTree = BUILT_PRODUCTS_DIR; 1120 | }; 1121 | 434F45E911FB2F6A00603A4D /* MotionStreakTest.app */ = { 1122 | isa = PBXReferenceProxy; 1123 | fileType = wrapper.application; 1124 | path = MotionStreakTest.app; 1125 | remoteRef = 434F45E811FB2F6A00603A4D /* PBXContainerItemProxy */; 1126 | sourceTree = BUILT_PRODUCTS_DIR; 1127 | }; 1128 | 434F45EB11FB2F6A00603A4D /* ParallaxTest.app */ = { 1129 | isa = PBXReferenceProxy; 1130 | fileType = wrapper.application; 1131 | path = ParallaxTest.app; 1132 | remoteRef = 434F45EA11FB2F6A00603A4D /* PBXContainerItemProxy */; 1133 | sourceTree = BUILT_PRODUCTS_DIR; 1134 | }; 1135 | 434F45ED11FB2F6A00603A4D /* ParticleTest.app */ = { 1136 | isa = PBXReferenceProxy; 1137 | fileType = wrapper.application; 1138 | path = ParticleTest.app; 1139 | remoteRef = 434F45EC11FB2F6A00603A4D /* PBXContainerItemProxy */; 1140 | sourceTree = BUILT_PRODUCTS_DIR; 1141 | }; 1142 | 434F45EF11FB2F6A00603A4D /* SoundEngineTest.app */ = { 1143 | isa = PBXReferenceProxy; 1144 | fileType = wrapper.application; 1145 | path = SoundEngineTest.app; 1146 | remoteRef = 434F45EE11FB2F6A00603A4D /* PBXContainerItemProxy */; 1147 | sourceTree = BUILT_PRODUCTS_DIR; 1148 | }; 1149 | 434F45F111FB2F6A00603A4D /* PerformanceTestChildrenNode.app */ = { 1150 | isa = PBXReferenceProxy; 1151 | fileType = wrapper.application; 1152 | path = PerformanceTestChildrenNode.app; 1153 | remoteRef = 434F45F011FB2F6A00603A4D /* PBXContainerItemProxy */; 1154 | sourceTree = BUILT_PRODUCTS_DIR; 1155 | }; 1156 | 434F45F311FB2F6A00603A4D /* PerformanceTestParticles.app */ = { 1157 | isa = PBXReferenceProxy; 1158 | fileType = wrapper.application; 1159 | path = PerformanceTestParticles.app; 1160 | remoteRef = 434F45F211FB2F6A00603A4D /* PBXContainerItemProxy */; 1161 | sourceTree = BUILT_PRODUCTS_DIR; 1162 | }; 1163 | 434F45F511FB2F6A00603A4D /* PerformanceTestSprites.app */ = { 1164 | isa = PBXReferenceProxy; 1165 | fileType = wrapper.application; 1166 | path = PerformanceTestSprites.app; 1167 | remoteRef = 434F45F411FB2F6A00603A4D /* PBXContainerItemProxy */; 1168 | sourceTree = BUILT_PRODUCTS_DIR; 1169 | }; 1170 | 434F45F711FB2F6A00603A4D /* PerformanceTestTouches.app */ = { 1171 | isa = PBXReferenceProxy; 1172 | fileType = wrapper.application; 1173 | path = PerformanceTestTouches.app; 1174 | remoteRef = 434F45F611FB2F6A00603A4D /* PBXContainerItemProxy */; 1175 | sourceTree = BUILT_PRODUCTS_DIR; 1176 | }; 1177 | 434F45F911FB2F6A00603A4D /* ProgressActionsTest.app */ = { 1178 | isa = PBXReferenceProxy; 1179 | fileType = wrapper.application; 1180 | path = ProgressActionsTest.app; 1181 | remoteRef = 434F45F811FB2F6A00603A4D /* PBXContainerItemProxy */; 1182 | sourceTree = BUILT_PRODUCTS_DIR; 1183 | }; 1184 | 434F45FB11FB2F6A00603A4D /* RenderTextureTest.app */ = { 1185 | isa = PBXReferenceProxy; 1186 | fileType = wrapper.application; 1187 | path = RenderTextureTest.app; 1188 | remoteRef = 434F45FA11FB2F6A00603A4D /* PBXContainerItemProxy */; 1189 | sourceTree = BUILT_PRODUCTS_DIR; 1190 | }; 1191 | 434F45FD11FB2F6A00603A4D /* RotateWorldTest.app */ = { 1192 | isa = PBXReferenceProxy; 1193 | fileType = wrapper.application; 1194 | path = RotateWorldTest.app; 1195 | remoteRef = 434F45FC11FB2F6A00603A4D /* PBXContainerItemProxy */; 1196 | sourceTree = BUILT_PRODUCTS_DIR; 1197 | }; 1198 | 434F45FF11FB2F6A00603A4D /* SceneTest.app */ = { 1199 | isa = PBXReferenceProxy; 1200 | fileType = wrapper.application; 1201 | path = SceneTest.app; 1202 | remoteRef = 434F45FE11FB2F6A00603A4D /* PBXContainerItemProxy */; 1203 | sourceTree = BUILT_PRODUCTS_DIR; 1204 | }; 1205 | 434F460111FB2F6A00603A4D /* SchedulerTest.app */ = { 1206 | isa = PBXReferenceProxy; 1207 | fileType = wrapper.application; 1208 | path = SchedulerTest.app; 1209 | remoteRef = 434F460011FB2F6A00603A4D /* PBXContainerItemProxy */; 1210 | sourceTree = BUILT_PRODUCTS_DIR; 1211 | }; 1212 | 434F460311FB2F6A00603A4D /* SpriteTest.app */ = { 1213 | isa = PBXReferenceProxy; 1214 | fileType = wrapper.application; 1215 | path = SpriteTest.app; 1216 | remoteRef = 434F460211FB2F6A00603A4D /* PBXContainerItemProxy */; 1217 | sourceTree = BUILT_PRODUCTS_DIR; 1218 | }; 1219 | 434F460511FB2F6A00603A4D /* Texture2dTest.app */ = { 1220 | isa = PBXReferenceProxy; 1221 | fileType = wrapper.application; 1222 | path = Texture2dTest.app; 1223 | remoteRef = 434F460411FB2F6A00603A4D /* PBXContainerItemProxy */; 1224 | sourceTree = BUILT_PRODUCTS_DIR; 1225 | }; 1226 | 434F460711FB2F6A00603A4D /* TileMapTest.app */ = { 1227 | isa = PBXReferenceProxy; 1228 | fileType = wrapper.application; 1229 | path = TileMapTest.app; 1230 | remoteRef = 434F460611FB2F6A00603A4D /* PBXContainerItemProxy */; 1231 | sourceTree = BUILT_PRODUCTS_DIR; 1232 | }; 1233 | 434F460911FB2F6A00603A4D /* TouchesTest.app */ = { 1234 | isa = PBXReferenceProxy; 1235 | fileType = wrapper.application; 1236 | path = TouchesTest.app; 1237 | remoteRef = 434F460811FB2F6A00603A4D /* PBXContainerItemProxy */; 1238 | sourceTree = BUILT_PRODUCTS_DIR; 1239 | }; 1240 | 434F460B11FB2F6A00603A4D /* TransitionsTest.app */ = { 1241 | isa = PBXReferenceProxy; 1242 | fileType = wrapper.application; 1243 | path = TransitionsTest.app; 1244 | remoteRef = 434F460A11FB2F6A00603A4D /* PBXContainerItemProxy */; 1245 | sourceTree = BUILT_PRODUCTS_DIR; 1246 | }; 1247 | 434F460D11FB2F6A00603A4D /* HelloWorldSample.app */ = { 1248 | isa = PBXReferenceProxy; 1249 | fileType = wrapper.application; 1250 | path = HelloWorldSample.app; 1251 | remoteRef = 434F460C11FB2F6A00603A4D /* PBXContainerItemProxy */; 1252 | sourceTree = BUILT_PRODUCTS_DIR; 1253 | }; 1254 | 434F460F11FB2F6A00603A4D /* HelloActionsSample.app */ = { 1255 | isa = PBXReferenceProxy; 1256 | fileType = wrapper.application; 1257 | path = HelloActionsSample.app; 1258 | remoteRef = 434F460E11FB2F6A00603A4D /* PBXContainerItemProxy */; 1259 | sourceTree = BUILT_PRODUCTS_DIR; 1260 | }; 1261 | 434F461111FB2F6A00603A4D /* HelloEventsSample.app */ = { 1262 | isa = PBXReferenceProxy; 1263 | fileType = wrapper.application; 1264 | path = HelloEventsSample.app; 1265 | remoteRef = 434F461011FB2F6A00603A4D /* PBXContainerItemProxy */; 1266 | sourceTree = BUILT_PRODUCTS_DIR; 1267 | }; 1268 | 434F461311FB2F6A00603A4D /* Bug350.app */ = { 1269 | isa = PBXReferenceProxy; 1270 | fileType = wrapper.application; 1271 | path = Bug350.app; 1272 | remoteRef = 434F461211FB2F6A00603A4D /* PBXContainerItemProxy */; 1273 | sourceTree = BUILT_PRODUCTS_DIR; 1274 | }; 1275 | 434F461511FB2F6A00603A4D /* Bug422.app */ = { 1276 | isa = PBXReferenceProxy; 1277 | fileType = wrapper.application; 1278 | path = Bug422.app; 1279 | remoteRef = 434F461411FB2F6A00603A4D /* PBXContainerItemProxy */; 1280 | sourceTree = BUILT_PRODUCTS_DIR; 1281 | }; 1282 | 434F461711FB2F6A00603A4D /* Bug886.app */ = { 1283 | isa = PBXReferenceProxy; 1284 | fileType = wrapper.application; 1285 | path = Bug886.app; 1286 | remoteRef = 434F461611FB2F6A00603A4D /* PBXContainerItemProxy */; 1287 | sourceTree = BUILT_PRODUCTS_DIR; 1288 | }; 1289 | 434F461911FB2F6A00603A4D /* Bug899.app */ = { 1290 | isa = PBXReferenceProxy; 1291 | fileType = wrapper.application; 1292 | path = Bug899.app; 1293 | remoteRef = 434F461811FB2F6A00603A4D /* PBXContainerItemProxy */; 1294 | sourceTree = BUILT_PRODUCTS_DIR; 1295 | }; 1296 | 434F461B11FB2F6A00603A4D /* Bug914.app */ = { 1297 | isa = PBXReferenceProxy; 1298 | fileType = wrapper.application; 1299 | path = Bug914.app; 1300 | remoteRef = 434F461A11FB2F6A00603A4D /* PBXContainerItemProxy */; 1301 | sourceTree = BUILT_PRODUCTS_DIR; 1302 | }; 1303 | /* End PBXReferenceProxy section */ 1304 | 1305 | /* Begin PBXResourcesBuildPhase section */ 1306 | 1D60588D0D05DD3D006BFB54 /* Resources */ = { 1307 | isa = PBXResourcesBuildPhase; 1308 | buildActionMask = 2147483647; 1309 | files = ( 1310 | 50F414F11069373D002A0D5E /* fps_images.png in Resources */, 1311 | 50F414F21069373D002A0D5E /* Icon.png in Resources */, 1312 | 43F538E0123682CD00D74B1E /* amazon-panel.png in Resources */, 1313 | 43F538E1123682CD00D74B1E /* arctic-panel.png in Resources */, 1314 | 43F538E2123682CD00D74B1E /* brkfst-panel.png in Resources */, 1315 | 43F538E3123682CD00D74B1E /* camp-panel.png in Resources */, 1316 | 43F538E4123682CD00D74B1E /* city-panel.png in Resources */, 1317 | 43F538E5123682CD00D74B1E /* frames-glow.png in Resources */, 1318 | 43F538E6123682CD00D74B1E /* paper-background.png in Resources */, 1319 | ); 1320 | runOnlyForDeploymentPostprocessing = 0; 1321 | }; 1322 | /* End PBXResourcesBuildPhase section */ 1323 | 1324 | /* Begin PBXSourcesBuildPhase section */ 1325 | 1D60588E0D05DD3D006BFB54 /* Sources */ = { 1326 | isa = PBXSourcesBuildPhase; 1327 | buildActionMask = 2147483647; 1328 | files = ( 1329 | 1D60589B0D05DD56006BFB54 /* main.m in Sources */, 1330 | 1F3B9A2D0EF2145700286867 /* shapesAppDelegate.m in Sources */, 1331 | 433BD8211201C7090025525E /* NMPanelMenu.m in Sources */, 1332 | 433BD84A1201C73F0025525E /* NMPanelMenuItem.m in Sources */, 1333 | 43A94B471222B5990030A3BA /* HCUPPanelScene.m in Sources */, 1334 | 43A94B5E1222B87D0030A3BA /* CocosOverlayScrollView.m in Sources */, 1335 | 43D170D4122345AA0081657D /* TouchDelegatingView.m in Sources */, 1336 | ); 1337 | runOnlyForDeploymentPostprocessing = 0; 1338 | }; 1339 | /* End PBXSourcesBuildPhase section */ 1340 | 1341 | /* Begin PBXTargetDependency section */ 1342 | 434F461E11FB2F9B00603A4D /* PBXTargetDependency */ = { 1343 | isa = PBXTargetDependency; 1344 | name = cocos2d; 1345 | targetProxy = 434F461D11FB2F9B00603A4D /* PBXContainerItemProxy */; 1346 | }; 1347 | 434F462011FB2FA000603A4D /* PBXTargetDependency */ = { 1348 | isa = PBXTargetDependency; 1349 | name = CocosDenshion; 1350 | targetProxy = 434F461F11FB2FA000603A4D /* PBXContainerItemProxy */; 1351 | }; 1352 | 434F462211FB2FA300603A4D /* PBXTargetDependency */ = { 1353 | isa = PBXTargetDependency; 1354 | name = FontLabel; 1355 | targetProxy = 434F462111FB2FA300603A4D /* PBXContainerItemProxy */; 1356 | }; 1357 | 434F462411FB2FA700603A4D /* PBXTargetDependency */ = { 1358 | isa = PBXTargetDependency; 1359 | name = libpng; 1360 | targetProxy = 434F462311FB2FA700603A4D /* PBXContainerItemProxy */; 1361 | }; 1362 | 434F462611FB2FAA00603A4D /* PBXTargetDependency */ = { 1363 | isa = PBXTargetDependency; 1364 | name = TouchJSON; 1365 | targetProxy = 434F462511FB2FAA00603A4D /* PBXContainerItemProxy */; 1366 | }; 1367 | 434F462811FB2FAE00603A4D /* PBXTargetDependency */ = { 1368 | isa = PBXTargetDependency; 1369 | name = vorbis; 1370 | targetProxy = 434F462711FB2FAE00603A4D /* PBXContainerItemProxy */; 1371 | }; 1372 | /* End PBXTargetDependency section */ 1373 | 1374 | /* Begin XCBuildConfiguration section */ 1375 | 1D6058940D05DD3E006BFB54 /* Debug */ = { 1376 | isa = XCBuildConfiguration; 1377 | buildSettings = { 1378 | ALWAYS_SEARCH_USER_PATHS = NO; 1379 | CODE_SIGN_ENTITLEMENTS = ""; 1380 | COPY_PHASE_STRIP = NO; 1381 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 1382 | FRAMEWORK_SEARCH_PATHS = ( 1383 | "$(inherited)", 1384 | "\"$(SRCROOT)/Frameworks\"", 1385 | ); 1386 | GCC_DYNAMIC_NO_PIC = NO; 1387 | GCC_ENABLE_FIX_AND_CONTINUE = NO; 1388 | GCC_OPTIMIZATION_LEVEL = 0; 1389 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 1390 | GCC_PREFIX_HEADER = shapes_Prefix.pch; 1391 | GCC_TREAT_WARNINGS_AS_ERRORS = NO; 1392 | INFOPLIST_FILE = Resources/Info.plist; 1393 | "New Setting" = ""; 1394 | ONLY_ACTIVE_ARCH = YES; 1395 | OTHER_LDFLAGS = ( 1396 | "-all_load", 1397 | "-ObjC", 1398 | ); 1399 | PREBINDING = NO; 1400 | PRODUCT_NAME = PanelsExample; 1401 | USER_HEADER_SEARCH_PATHS = "$(COCOS2D_SRC)/**"; 1402 | WARNING_CFLAGS = "-Wall"; 1403 | }; 1404 | name = Debug; 1405 | }; 1406 | 1D6058950D05DD3E006BFB54 /* Release */ = { 1407 | isa = XCBuildConfiguration; 1408 | buildSettings = { 1409 | ALWAYS_SEARCH_USER_PATHS = NO; 1410 | CODE_SIGN_ENTITLEMENTS = ""; 1411 | COPY_PHASE_STRIP = YES; 1412 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 1413 | FRAMEWORK_SEARCH_PATHS = ( 1414 | "$(inherited)", 1415 | "\"$(SRCROOT)/Frameworks\"", 1416 | ); 1417 | GCC_ENABLE_FIX_AND_CONTINUE = NO; 1418 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 1419 | GCC_PREFIX_HEADER = shapes_Prefix.pch; 1420 | GCC_TREAT_WARNINGS_AS_ERRORS = NO; 1421 | INFOPLIST_FILE = Resources/Info.plist; 1422 | ONLY_ACTIVE_ARCH = NO; 1423 | OTHER_LDFLAGS = ( 1424 | "-all_load", 1425 | "-ObjC", 1426 | ); 1427 | PREBINDING = NO; 1428 | PRODUCT_NAME = PanelsExample; 1429 | USER_HEADER_SEARCH_PATHS = "$(COCOS2D_SRC)/**"; 1430 | WARNING_CFLAGS = "-Wall"; 1431 | }; 1432 | name = Release; 1433 | }; 1434 | C01FCF4F08A954540054247B /* Debug */ = { 1435 | isa = XCBuildConfiguration; 1436 | buildSettings = { 1437 | ALWAYS_SEARCH_USER_PATHS = NO; 1438 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 1439 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Nathan Murray (GN3TCEDNP3)"; 1440 | GCC_C_LANGUAGE_STANDARD = c99; 1441 | GCC_PREPROCESSOR_DEFINITIONS = ( 1442 | DEBUG, 1443 | "COCOS2D_DEBUG=1", 1444 | "CD_DEBUG=1", 1445 | ); 1446 | "GCC_THUMB_SUPPORT[arch=armv6]" = NO; 1447 | "GCC_THUMB_SUPPORT[arch=armv7]" = YES; 1448 | GCC_VERSION = coop.plausible.blocks.compilers.gcc.4_2; 1449 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 1450 | GCC_WARN_UNUSED_VARIABLE = YES; 1451 | GENERATE_PROFILING_CODE = NO; 1452 | IPHONEOS_DEPLOYMENT_TARGET = 3.2; 1453 | ONLY_ACTIVE_ARCH = YES; 1454 | PREBINDING = NO; 1455 | PRODUCT_DISPLAY_NAME = "Panels Example"; 1456 | PRODUCT_NAME = PanelsExample; 1457 | SDKROOT = iphoneos4.1; 1458 | USER_HEADER_SEARCH_PATHS = "$(COCOS2D_SRC)/**"; 1459 | }; 1460 | name = Debug; 1461 | }; 1462 | C01FCF5008A954540054247B /* Release */ = { 1463 | isa = XCBuildConfiguration; 1464 | buildSettings = { 1465 | ALWAYS_SEARCH_USER_PATHS = NO; 1466 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 1467 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Nathan Murray"; 1468 | GCC_C_LANGUAGE_STANDARD = c99; 1469 | "GCC_THUMB_SUPPORT[arch=armv6]" = NO; 1470 | "GCC_THUMB_SUPPORT[arch=armv7]" = YES; 1471 | GCC_UNROLL_LOOPS = YES; 1472 | GCC_VERSION = coop.plausible.blocks.compilers.gcc.4_2; 1473 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 1474 | GCC_WARN_UNUSED_VARIABLE = YES; 1475 | IPHONEOS_DEPLOYMENT_TARGET = 3.2; 1476 | PREBINDING = NO; 1477 | PRODUCT_DISPLAY_NAME = "Panels Example"; 1478 | PRODUCT_NAME = PanelsExample; 1479 | "PROVISIONING_PROFILE[sdk=iphoneos*]" = "900B900D-7DCE-4A81-ABB9-70869F87CB96"; 1480 | SDKROOT = iphoneos4.1; 1481 | USER_HEADER_SEARCH_PATHS = "$(COCOS2D_SRC)/**"; 1482 | }; 1483 | name = Release; 1484 | }; 1485 | /* End XCBuildConfiguration section */ 1486 | 1487 | /* Begin XCConfigurationList section */ 1488 | 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "PanelsExample" */ = { 1489 | isa = XCConfigurationList; 1490 | buildConfigurations = ( 1491 | 1D6058940D05DD3E006BFB54 /* Debug */, 1492 | 1D6058950D05DD3E006BFB54 /* Release */, 1493 | ); 1494 | defaultConfigurationIsVisible = 0; 1495 | defaultConfigurationName = Release; 1496 | }; 1497 | C01FCF4E08A954540054247B /* Build configuration list for PBXProject "shapes-panels" */ = { 1498 | isa = XCConfigurationList; 1499 | buildConfigurations = ( 1500 | C01FCF4F08A954540054247B /* Debug */, 1501 | C01FCF5008A954540054247B /* Release */, 1502 | ); 1503 | defaultConfigurationIsVisible = 0; 1504 | defaultConfigurationName = Release; 1505 | }; 1506 | /* End XCConfigurationList section */ 1507 | }; 1508 | rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; 1509 | } 1510 | --------------------------------------------------------------------------------