iphone中cocos2d中的CCMoveBy Action还有其他选择吗?
如果有人知道这个..请回复。
答案 0 :(得分:2)
使用动作移动精灵的另一种方法是使用简单的物理学。您可以扩展CCSprite类以包含更新方法以及ivars / properties以跟踪x和y速度。
在更新方法中,在每个方向上按速度* dT移动精灵。 在游戏场景的更新方法中调用sprite更新方法。
MovingSprite.h
#import <Foundation/Foundation.h>
#import "cocos2d.h"
@interface MovingSprite : CCSprite {
float _vx;
float _vy;
}
-(void) update:(ccTime)dt;
@property (nonatomic, assign) float vx;
@property (nonatomic, assign) float vy;
@end
MovingSprite.m
#import "MovingSprite.h"
@implementation MovingSprite
@synthesize vx = _vx;
@synthesize vy = _vy;
-(void)update:(ccTime)dT
{
self.vy -= (kGravity * dT); //optionally apply gravity
self.position = ccp(self.position.x + (self.vx*dT), self.position.y + (self.vy*dT));
}
将[self scheduleUpdate];
添加到游戏图层的init方法中。然后在游戏层中添加一个更新方法,在其中为所有移动的精灵调用update。
现在您只需要添加碰撞检测以检查汽车是否与轨道两侧发生碰撞。