Cocos2d Part 4 (Collision Detection)

 

HelloWorldLayer.h代码

 

@interface HelloWorldLayer : CCLayer <GKAchievementViewControllerDelegate, GKLeaderboardViewControllerDelegate>
{
    CCSprite *brid;
}

@property (nonatomic,retain) CCSprite *bird;

+(CCScene *) scene;

@end

 HelloWorldLayer.m代码

 

@synthesize bird;
+(CCScene *) scene
{
	CCScene *scene = [CCScene node];
	HelloWorldLayer *layer = [HelloWorldLayer node];
	[scene addChild: layer];
  	return scene;
}
-(void) finishCall{
    float x = arc4random()%320;
    float y = arc4random()%480;
    id moveToAction = [CCMoveTo actionWithDuration:0.9 position:ccp(x, y)];
    id finishCallAction =[CCCallFunc actionWithTarget:self selector:@selector(finishCall)];
    [self.bird runAction:[CCSequence actions:moveToAction,finishCallAction, nil]];}
-(id) init
{
	
	if( (self=[super init]) ) {
        isTouchEnabled_ = YES;
        self.bird =[CCSprite spriteWithFile:@"head.png"];
        float x = arc4random()%320;
        float y = arc4random()%480;
        
        id moveToAction = [CCMoveTo actionWithDuration:0.9 position:ccp(x, y)];
        id finishCallAction =[CCCallFunc actionWithTarget:self selector:@selector(finishCall)];
        [self.bird runAction:[CCSequence actions:moveToAction,finishCallAction, nil]];
        [self addChild: self.bird];
	}
	return self;
}
-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch =[touches anyObject];
    CGPoint location = [touch locationInView:[touch view]];
    location=[[CCDirector sharedDirector] convertToGL:location];
    float distance =powf(self.bird.position.x-location.x, 2)+powf(self.bird.position.y-location.y, 2);
    distance = sqrtf(distance);
    if(distance<25){
        id rotateAction = [CCRotateBy actionWithDuration:0.9 angle:360 ];
        [self.bird runAction:rotateAction];
    }
    
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值