Fork me on GitHub

[译]Chipmunk教程 - 3 初始化

初始化Chipmunk需要三件事情要去做:

  1. 初始化它
  2. 使用一个 timer 来让Chipmunk计算模拟器的步骤。
  3. 创建并且配置Space

 

初始化Chipmunk是很简单的一部分,你只需要调用cpInitChipmunk 函数就行了,把它放在程序初始化的地方。时间的设置,使用一个简单的NSTimer对象,或者一些你想要使用的游戏引擎。也许你要用的Timer就在引擎自身里面。最后,创建一个新的Space,只需要使用cpSpaceNew方法就行了。

为了完成这三步,只需要再你的controller文件,引入chipmunk.h头文件就好了。

 
#import "chipmunk.h"  
之后,在文件的开始,定义两个可以存储我们space的变量,以及两个方法,当头文件定义完了以后,将会看到如下的效果:
#import <UIKit/UIKith.>  

#import "chipmunk.h"

@interface ChipmunkTutorialViewController : UIViewController {

UIImageView *floor; // Holds our floor image

UIImageView *ball; // Holds our ball image

cpSpace *space; // Holds our Space object

}

- (void)setupChipmunk; // Bootstraps chipmunk and the timer

- (void)tick:(NSTimer *)timer; // Fires at each "frame"

@end
在实现文件里面,viewDidLoad调用这个方法。:
[self setupChipmunk];  
最后,实现我们声明的两个方法:
// Bootsraps chipmunk and the timer  

- (void)setupChipmunk {

// Start chipmunk

cpInitChipmunk();

// Create a space object

space = cpSpaceNew();

// Define a gravity vector

space->gravity = cpv(0, -100);

// Creates a timer firing at a constant interval (desired frame rate)

// Note that if you are using too much CPU the real frame rate will be lower and

// the timer might fire before the last frame was complete.

// There are techniques you can use to avoid this but I won't approach them here.

[NSTimer scheduledTimerWithTimeInterval:1.0f/60.0f target:self selector:@selector(tick:) userInfo:nil repeats:YES];

}

// Called at each "frame" of the simulation

- (void)tick:(NSTimer *)timer {

// Tell Chipmunk to take another "step" in the simulation

cpSpaceStep(space, 1.0f/60.0f);

}

posted on 2012-03-09 23:02  pengyingh  阅读(280)  评论(0)    收藏  举报

导航