2011-05-01 35 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   
    } 
... 

}