From 9cd57b731ab1c666d4a1cb725538fdc137763d12 Mon Sep 17 00:00:00 2001 From: Starla Insigna Date: Sat, 30 Jul 2011 11:19:14 -0400 Subject: Initial commit (version 0.2.1) --- Classes/RootViewController.m | 152 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100755 Classes/RootViewController.m (limited to 'Classes/RootViewController.m') diff --git a/Classes/RootViewController.m b/Classes/RootViewController.m new file mode 100755 index 0000000..edd67cb --- /dev/null +++ b/Classes/RootViewController.m @@ -0,0 +1,152 @@ +// +// RootViewController.m +// Cart Collect +// +// Created by iD Student Account on 7/18/11. +// Copyright __MyCompanyName__ 2011. All rights reserved. +// + +// +// RootViewController + iAd +// If you want to support iAd, use this class as the controller of your iAd +// + +#import "cocos2d.h" + +#import "RootViewController.h" +#import "GameConfig.h" + +@implementation RootViewController + +/* + // The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad. + - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { + if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) { + // Custom initialization + } + return self; + } + */ + +/* + // Implement loadView to create a view hierarchy programmatically, without using a nib. + - (void)loadView { + } + */ + +/* + // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. + - (void)viewDidLoad { + [super viewDidLoad]; + } + */ + + +// Override to allow orientations other than the default portrait orientation. +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + + // + // There are 2 ways to support auto-rotation: + // - The OpenGL / cocos2d way + // - Faster, but doesn't rotate the UIKit objects + // - The ViewController way + // - A bit slower, but the UiKit objects are placed in the right place + // + +#if GAME_AUTOROTATION==kGameAutorotationNone + // + // EAGLView won't be autorotated. + // Since this method should return YES in at least 1 orientation, + // we return YES only in the Portrait orientation + // + return ( interfaceOrientation == kCCDeviceOrientationLandscapeLeft ); + +#elif GAME_AUTOROTATION==kGameAutorotationCCDirector + // + // EAGLView will be rotated by cocos2d + // + // Sample: Autorotate only in landscape mode + // + if( interfaceOrientation == UIInterfaceOrientationLandscapeLeft ) { + [[CCDirector sharedDirector] setDeviceOrientation: kCCDeviceOrientationLandscapeRight]; + } else if( interfaceOrientation == UIInterfaceOrientationLandscapeRight) { + [[CCDirector sharedDirector] setDeviceOrientation: kCCDeviceOrientationLandscapeLeft]; + } + + // Since this method should return YES in at least 1 orientation, + // we return YES only in the Portrait orientation + return ( interfaceOrientation == UIInterfaceOrientationPortrait ); + +#elif GAME_AUTOROTATION == kGameAutorotationUIViewController + // + // EAGLView will be rotated by the UIViewController + // + // Sample: Autorotate only in landscpe mode + // + // return YES for the supported orientations + + return ( UIInterfaceOrientationIsLandscape( interfaceOrientation ) ); + +#else +#error Unknown value in GAME_AUTOROTATION + +#endif // GAME_AUTOROTATION + + + // Shold not happen + return NO; +} + +// +// This callback only will be called when GAME_AUTOROTATION == kGameAutorotationUIViewController +// +#if GAME_AUTOROTATION == kGameAutorotationUIViewController +-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration +{ + // + // Assuming that the main window has the size of the screen + // BUG: This won't work if the EAGLView is not fullscreen + /// + CGRect screenRect = [[UIScreen mainScreen] bounds]; + CGRect rect; + + if(toInterfaceOrientation == UIInterfaceOrientationPortrait || toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) + rect = screenRect; + + else if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) + rect.size = CGSizeMake( screenRect.size.height, screenRect.size.width ); + + CCDirector *director = [CCDirector sharedDirector]; + EAGLView *glView = [director openGLView]; + float contentScaleFactor = [director contentScaleFactor]; + + if( contentScaleFactor != 1 ) { + rect.size.width *= contentScaleFactor; + rect.size.height *= contentScaleFactor; + } + glView.frame = rect; +} +#endif // GAME_AUTOROTATION == kGameAutorotationUIViewController + + +- (void)didReceiveMemoryWarning { + // Releases the view if it doesn't have a superview. + [super didReceiveMemoryWarning]; + + // Release any cached data, images, etc that aren't in use. +} + +- (void)viewDidUnload { + [super viewDidUnload]; + // Release any retained subviews of the main view. + // e.g. self.myOutlet = nil; +} + + +- (void)dealloc { + [super dealloc]; +} + + +@end + -- cgit 1.4.1