Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
manual:the_barebone_project [2013/05/31 08:18]
daniel [Application Delegate]
manual:the_barebone_project [2013/05/31 08:18] (current)
daniel [Game Class]
Line 1: Line 1:
 +====== The Barebone Project ======
 +
 +Sparrow contains two projects that can be the basis for your games. The "​Barebone"​ project is one of it. It provides just the minimal code you need to create a Sparrow powered application;​ perfect to get started with Sparrow without any distractions!
 +
 +When you start the Barebone application,​ you will see a red rectangle on the screen. This rectangle was rendered with Sparrow --- if you can see it, everything was set up correctly.
 +
 +Now have a look at the source code of the project. ​
 +
 +===== Application Delegate =====
 +
 +This is the startup class of any iOS project. Normally, you'd initialize your UIKit objects in this class. Since we're creating a Sparrow game here, we set up Sparrow instead --- which turns out to be quite simple.
 +
 +<code objc AppDelegate.h>​
 +@interface AppDelegate : NSObject <​UIApplicationDelegate> ​
 +@end
 +</​code>​
 +
 +<code objc AppDelegate.m>​
 +@implementation AppDelegate
 +{
 +    SPViewController *_viewController;​
 +    UIWindow *_window;
 +}
 +
 +- (BOOL)application:​(UIApplication *)application ​
 +        didFinishLaunchingWithOptions:​(NSDictionary *)launchOptions
 +{
 +    // create a full-screen window
 +    CGRect screenBounds = [UIScreen mainScreen].bounds;​
 +    _window = [[UIWindow alloc] initWithFrame:​screenBounds];​
 +    ​
 +    // start up Sparrow
 +    _viewController = [[SPViewController alloc] init];
 +    [_viewController startWithRoot:​[Game class] supportHighResolutions:​YES doubleOnPad:​YES];​
 +    ​
 +    // activate the window
 +    [_window setRootViewController:​_viewController];​
 +    [_window makeKeyAndVisible];​
 +    ​
 +    return YES;
 +}
 +
 +@end
 +</​code>​
 +
 +As you can see, most of the code is actually responsible for standard UIKit setup. To start up Sparrow, we create an instance of the "​SPViewController"​ class and call one of its "​start"​ methods.
 +
 +If you want to make some adjustments on Sparrow properties, this is the right place to do so. Just access the respective properties of the view controller --- here are a few of the most common ones:
 +
 +<code objc>
 +_viewController.showStats = YES;
 +_viewController.multitouchEnabled = YES;
 +_viewController.preferredFramesPerSecond = 60;
 +</​code>​
 +
 +You may have noticed that we're passing a class called "​Game"​ to the start method. This will be the root object of your game, and it's also part of the project.
 +
 +===== Game Class =====
 +
 +This is the starting point of your game. Everything you do in Sparrow will be somehow initiated from this class.
 +
 +<code objc Game.h>
 +@interface Game : SPSprite
 +@end
 +</​code>​
 +
 +<code objc Game.m>
 +@implementation Game
 +
 +- (id)init
 +{
 +    if ((self = [super init]))
 +    {
 +        // this is where the code of your game will start.
 +        // in this sample, we add just a simple quad
 +
 +        SPQuad *quad = [SPQuad quadWithWidth:​100 height:​100];​
 +        quad.color = 0xff0000; // 0xRRGGBB -> this is red
 +        quad.x = 50;
 +        quad.y = 50;
 +        [self addChild:​quad];​
 +    }
 +    return self;
 +}
 +
 +@end
 +</​code>​
 +
 +As you can see, the Game class inherits from ''​SPSprite''​. That's a container object that can take up any display object. To create a game, you populate this container with your content.
 +
 +In the sample, the content is just a simple ''​SPQuad''​ (a red rectangle). It has a color (red), a size (100x100) and a position (50, 50). And it is a child of the game instance. It has to be, otherwise it would not be rendered. This is a part of the "​display tree" architecture of Sparrow, into which we will dive in the following section.
 +
 +Hit the "​Run"​ button to see the project in action. Congratulations,​ you have just started your first Sparrow project!
 +
 +{{ :​manual:​barebone-output.png?​160 |}}
 +
 +-----
 +
 +//Next section: [[Display Objects]]//
  
  manual/the_barebone_project.txt · Last modified: 2013/05/31 08:18 by daniel
 
Powered by DokuWiki