cocos2d-iphone  2.0
Improved Cocos2D API Reference (iOS version) for www.kobold2d.com developers
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Defines
CCDirector Class Reference

#import <CCDirector.h>

Inheritance diagram for CCDirector:
Collaboration diagram for CCDirector:

List of all members.

Public Member Functions

(CGSize) - winSize
(CGSize) - winSizeInPixels
(void) - reshapeProjection:
(CGPoint) - convertToGL:
(CGPoint) - convertToUI:
(float) - getZEye
 XXX: missing description.
(void) - runWithScene:
(void) - pushScene:
(void) - popScene
(void) - popToRootScene
(void) - replaceScene:
(void) - end
(void) - pause
(void) - resume
(void) - stopAnimation
(void) - startAnimation
(void) - drawScene
(void) - purgeCachedData
(void) - setGLDefaultValues
(void) - setAlphaBlending:
(void) - setDepthTest:
(void) - createStatsLabel
(void) - setOpenGLView:
(CCGLView *) - DEPRECATED_ATTRIBUTE
(void) - setDisplayFPS:
(void) - setContentScaleFactor:
(BOOL) - enableRetinaDisplay:
(CGFloat) - contentScaleFactor

Static Public Member Functions

(CCDirector *) + sharedDirector

Protected Attributes

NSTimeInterval animationInterval_
NSTimeInterval oldAnimationInterval_
BOOL displayStats_
NSUInteger frames_
NSUInteger totalFrames_
ccTime secondsPerFrame_
ccTime accumDt_
ccTime frameRate_
CCLabelAtlasFPSLabel_
CCLabelAtlasSPFLabel_
CCLabelAtlasdrawsLabel_
BOOL isPaused_
BOOL isAnimating_
CCScenerunningScene_
id notificationNode_
CCScenenextScene_
BOOL sendCleanupToScene_
NSMutableArray * scenesStack_
struct timeval lastUpdate_
ccTime dt
BOOL nextDeltaTimeZero_
ccDirectorProjection projection_
id< CCDirectorDelegatedelegate_
CGSize winSizeInPoints_
CGSize winSizeInPixels_
NSThread * runningThread_
CCSchedulerscheduler_
CCActionManageractionManager_
CCGLViewview_

Properties

NSThread * runningThread
CCScenerunningScene
NSTimeInterval animationInterval
BOOL displayStats
BOOL nextDeltaTimeZero
BOOL isPaused
BOOL isAnimating
ccDirectorProjection projection
NSUInteger totalFrames
ccTime secondsPerFrame
BOOL sendCleanupToScene
id notificationNode
id< CCDirectorDelegatedelegate
CCSchedulerscheduler
CCActionManageractionManager
CCTouchDispatchertouchDispatcher

Detailed Description

Class that creates and handle the main Window and manages how and when to execute the Scenes.

The CCDirector is also resposible for:

  • initializing the OpenGL ES context
  • setting the OpenGL pixel format (default on is RGB565)
  • setting the OpenGL buffer depth (default one is 0-bit)
  • setting the projection (default one is 3D)

Since the CCDirector is a singleton, the standard way to use it is by calling:

The CCDirector also sets the default OpenGL context:

  • GL_TEXTURE_2D is enabled
  • GL_VERTEX_ARRAY is enabled
  • GL_COLOR_ARRAY is enabled
  • GL_TEXTURE_COORD_ARRAY is enabled

Member Function Documentation

- (CGFloat) contentScaleFactor

returns the content scale factor

- (CGPoint) convertToGL: (CGPoint)  p

converts a UIKit coordinate to an OpenGL coordinate Useful to convert (multi) touchs coordinates to the current layout (portrait or landscape)

- (CGPoint) convertToUI: (CGPoint)  p

converts an OpenGL coordinate to a UIKit coordinate Useful to convert node points to window points for calls such as glScissor

- (void) createStatsLabel

creates the Stats labels

- (void) drawScene

Draw the scene. This method is called every frame. Don't call it manually.

- (BOOL) enableRetinaDisplay: (BOOL)  enableRetina

Will enable Retina Display on devices that supports it. It will enable Retina Display on iPhone4 and iPod Touch 4. It will return YES, if it could enabled it, otherwise it will return NO.

This is the recommened way to enable Retina Display.

Since:
v0.99.5
- (void) end

Ends the execution, releases the running scene. It doesn't remove the OpenGL view from its parent. You have to do it manually.

- (float) getZEye

XXX: missing description.

- (void) pause

Pauses the running scene. The running scene will be drawed but all scheduled timers will be paused While paused, the draw rate will be 4 FPS to reduce CPU consuption

- (void) popScene

Pops out a scene from the queue. This scene will replace the running one. The running scene will be deleted. If there are no more scenes in the stack the execution is terminated. ONLY call it if there is a running scene.

- (void) popToRootScene

Pops out all scenes from the queue until the root scene in the queue. This scene will replace the running one. The running scene will be deleted. If there are no more scenes in the stack the execution is terminated. ONLY call it if there is a running scene.

- (void) purgeCachedData

Removes all the cocos2d data that was cached automatically. It will purge the CCTextureCache, CCLabelBMFont cache. IMPORTANT: The CCSpriteFrameCache won't be purged. If you want to purge it, you have to purge it manually.

Since:
v0.99.3
- (void) pushScene: (CCScene *)  scene

Suspends the execution of the running scene, pushing it on the stack of suspended scenes. The new scene will be executed. Try to avoid big stacks of pushed scenes to reduce memory allocation. ONLY call it if there is a running scene.

- (void) replaceScene: (CCScene *)  scene

Replaces the running scene with a new one. The running scene is terminated. ONLY call it if there is a running scene.

- (void) reshapeProjection: (CGSize)  newWindowSize

changes the projection size

- (void) resume

Resumes the paused scene The scheduled timers will be activated again. The "delta time" will be 0 (as if the game wasn't paused)

- (void) runWithScene: (CCScene *)  scene

Enters the Director's main loop with the given Scene. Call it to run only your FIRST scene. Don't call it if there is already a running scene.

It will call pushScene: and then it will call startAnimation

- (void) setAlphaBlending: (BOOL)  on

enables/disables OpenGL alpha blending

- (void) setContentScaleFactor: (CGFloat)  scaleFactor

The size in pixels of the surface. It could be different than the screen size. High-res devices might have a higher surface size than the screen size. In non High-res device the contentScale will be emulated.

The recommend way to enable Retina Display is by using the "enableRetinaDisplay:(BOOL)enabled" method.

Since:
v0.99.4
- (void) setDepthTest: (BOOL)  on

enables/disables OpenGL depth test

sets the OpenGL default values

returns a shared instance of the director

- (void) startAnimation

The main loop is triggered again. Call this function only if [stopAnimation] was called earlier

Warning:
Dont' call this function to start the main loop. To run the main loop call runWithScene
- (void) stopAnimation

Stops the animation. Nothing will be drawn. The main loop won't be triggered anymore. If you wan't to pause your animation call [pause] instead.

- (CGSize) winSize

returns the size of the OpenGL view in points

- (CGSize) winSizeInPixels

returns the size of the OpenGL view in pixels. On Mac winSize and winSizeInPixels return the same value.


Property Documentation

- (CCActionManager*) actionManager [read, write, retain]

CCActionManager associated with this director

Since:
v2.0
- (NSTimeInterval) animationInterval [read, write, assign]

The FPS value

- (id<CCDirectorDelegate>) delegate [read, write, retain]

CCDirector delegate. It shall implemente the CCDirectorDelegate protocol

Since:
v0.99.5
- (BOOL) displayStats [read, write, assign]

Whether or not to display director statistics

- (BOOL) isAnimating [read, assign]

Whether or not the Director is active (animating)

- (BOOL) isPaused [read, assign]

Whether or not the Director is paused

- (BOOL) nextDeltaTimeZero [read, write, assign]

whether or not the next delta time will be zero

- (id) notificationNode [read, write, retain]

This object will be visited after the main scene is visited. This object MUST implement the "visit" selector. Useful to hook a notification object, like CCNotifications (http://github.com/manucorporat/CCNotifications)

Since:
v0.99.5
- (ccDirectorProjection) projection [read, write, assign]

Sets an OpenGL projection

- (CCScene*) runningScene [read, assign]

The current running Scene. Director can only run one Scene at the time

- (NSThread*) runningThread [read, assign]

returns the cocos2d thread. If you want to run any cocos2d task, run it in this thread. On iOS usually it is the main thread.

Since:
v0.99.5
- (CCScheduler*) scheduler [read, write, retain]

CCScheduler associated with this director

Since:
v2.0
- (ccTime) secondsPerFrame [read, assign]

seconds per frame

- (BOOL) sendCleanupToScene [read, assign]

Whether or not the replaced scene will receive the cleanup message. If the new scene is pushed, then the old scene won't receive the "cleanup" message. If the new scene replaces the old one, the it will receive the "cleanup" message.

Since:
v0.99.0
- (NSUInteger) totalFrames [read, assign]

How many frames were called since the director started

- (CCTouchDispatcher*) touchDispatcher [read, write, retain]

sets the CCTouchDispatcher (iOS only)


The documentation for this class was generated from the following file: