What is Layer?
- A CCLayer has a size of the whole drawable area, and knows how to draw itself.
- It can be semi transparent (having holes and/or partial transparency in some/all places), allowing to see other layers behind it.
- Layers are the ones defining appearance and behavior, so most of your programming time will be spent coding CCLayer subclasses that do what you need.
- Each Scene contains several Layers
- The CCLayer is where you define event handlers and where user interacts with Cocos2d objects.
- Events are propagated to layers (from front to back) until some layer catches the event and accepts it.
- Although some serious apps will require you to define custom CCLayer classes, cocos2d provides a library of useful predefined layers ( a simple menu layer: CCMenu, a color layer: CCColorLayer, a multiplexor between other layers: CCMultiplexLayer, and more ).
- Layers can contain CCSprite objects, CCLabel objects and even other CCLayer objects as children.
- Since layers are subclass of CCNode, they can be transformed manually or by using actions.
- Each layer (CCLayer) can in turn have sprites (CCSprite), labels (CCLabel), and other objects you want to display onscreen.
Working Example
BackgroundLayer.h
#import <Foundation/Foundation.h>
#import "cocos2d.h"
@interface BackgroundLayer : CCLayer {
}
@end
BackgroundLayer.m
#import "BackgroundLayer.h"
@implementation BackgroundLayer
-(id)init {
self = [super init];
if (self != nil) {
CCSprite *backgroundImage;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
// Indicates game is running on iPad
backgroundImage = [CCSprite
spriteWithFile:@"background.png"];
backgroundImage = [CCSprite
spriteWithFile:@"backgroundiPhone.png"];
}
CGSize screenSize = [[CCDirector sharedDirector] winSize];
[backgroundImage setPosition:
}
} else {
CGPointMake(screenSize.width/2, screenSize.height/2)];
[self addChild:backgroundImage z:0 tag:0];
}
return self;
@end
No comments:
Post a Comment