2011-05-01 74 views
-1

我有两个图像。你必须使用acceleremoter移动一个男人,并避免一个大的高峰。这是我的.h编码:碰撞检测中的动作(CGRectIntersectsRect)

IBOutlet UIImageView *rect1; 

IBOutlet UIImageView *rect2; 

这里是我的.m:

bool CGRectIntersectsRect (CGRect rect1, CGRect rect2); 

我已经连接笔尖文件的一切,我知道,因为没有错误不会有事的。我需要这两样东西来碰撞,然后生成一个结束画面。但是怎么样我会采取行动。谢谢!

.M

#import "GameScreen.h" 


@implementation GameScreen 
@synthesize ball, delta; 


-(void)viewDidLoad { 


    UIAccelerometer *accel = [UIAccelerometer sharedAccelerometer]; 
    accel.delegate = self; 
    accel.updateInterval = 1.0f/60.0f; 

    [super viewDidLoad]; 


} 

-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { 
    NSLog(@"x : %g", acceleration.x); 
    NSLog(@"y : %g", acceleration.y); 
    NSLog(@"z : %g", acceleration.z); 

    delta.y = acceleration.y * 70; 
    delta.x = acceleration.x * 70; 

    ball.center = CGPointMake(ball.center.x + delta.x, ball.center.y + delta.y); 

    // Right 
    if(ball.center.x < 0) { 
     ball.center = CGPointMake(320, ball.center.y); 
    } 

    // Left 

    if(ball.center.x > 320) { 
     ball.center = CGPointMake(0, ball.center.y); 

    } 

    // Top 

    if(ball.center.y < 0) { 
     ball.center = CGPointMake(ball.center.x, 460); 

    } 

    // Bottom 
    if(ball.center.y > 460){ 
     ball.center = CGPointMake(ball.center.x, 0); 

    } 


    } 




bool CGRectIntersectsRect (CGRect rect1, CGRect rect2); 



-(void)dealloc { 
    [super dealloc]; 
} 






@end 
+0

你能后整个.m文件 – edo42 2011-05-01 04:17:16

+0

这是所有我实际上在.m文件中有关于CGRects的内容,但是如果你想要它很好 – user722566 2011-05-01 04:21:26

+0

这是.m文件 – user722566 2011-05-01 04:22:19

回答

2

你有

-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration 

刚刚结束之前把这个代码

if(CGRectIntersectsRect(ball.bounds , man.bounds)) 
{ 
    UIImage *image = [UIImage imageNamed:@"endScreenImage.png"]; 
    UIImageView *imageview = [[UIImageView alloc] initWithImage:image]; 
    [self.view addSubView:imageview]; 
    [imageview release]; 
} 

但我也认为你必须买一个Objective- C编程书籍并阅读它,而不是发送StackOverflow与许多类似的问题。我写这篇文章是因为我认为它对你有用,而不是让你生气。

+0

以及好,谢谢,但我有一个问题,我很抱歉,我怎么能定义//做点什么 – user722566 2011-05-01 04:41:52

+0

另一件事,这些图片只是UIImageViews的方式,基本上只是从Photoshop的屏幕截图 – user722566 2011-05-01 04:42:47

+0

//做些什么是评论,你必须插入自己的代码来显示结束屏幕。 – edo42 2011-05-01 04:43:15

0

你可以试试这个,只是邓恩如果用的ImageView

初始化

[self schedule:@selector(update:)]; 

要去工作做一个空白

- (void)update:(ccTime)dt { 
... 

CGRect absoluteBox = CGRectMake(ball.position.x, ball.position.y, [ball boundingBox].size.width, [ball boundingBox].size.height); 
if (CGRectIntersectsRect([ball boundingBox], [man boundingBox])) { 
     // SOME CODE HERE   
    } 
... 

}