2012-04-22 10 views
0

私はここに新しいです 私は2つのボールでゲームをプログラミングする必要があります。最初はユーザーによって制御され、2番目はプログラミングでなければなりません。 2番目のボールがユーザーからのボールを防ぐ方法を知りませんか? 私は中間です。 私を助けることができますか? 変更するコードがあります: `CGRect tableRect = self.view.bounds; CGRect enemyRect = self.enemy.frame;目的-c:2つのボールの衝突を避けるには?

if (CGRectGetMinX(enemyRect)<CGRectGetMinX(tableRect) || 
    CGRectGetMaxX(enemyRect)>CGRectGetMaxX(tableRect)) { 
    playerValue++; 
    playerlabel.text = [NSString stringWithFormat: @"%d", playerValue]; 
    enemylabel.text = [NSString stringWithFormat: @"%d", enemyValue]; 
    moveX = -moveX; 

} 
if (CGRectGetMinY(enemyRect)<CGRectGetMinY(tableRect) || 
    CGRectGetMaxY(enemyRect)>CGRectGetMaxY(tableRect)) { 
    playerValue++; 
    playerlabel.text = [NSString stringWithFormat: @"%d", playerValue]; 
    enemylabel.text = [NSString stringWithFormat: @"%d", enemyValue]; 
    moveY = -moveY; 
} 
CGPoint center = enemy.center; 
center.x += moveX; 
center.y += moveY; 
enemy.center = center; 
[self performSelector:@selector(move) withObject:nil afterDelay:timerIntervale]; 


if (CGRectIntersectsRect(enemyRect, player.frame)) { 
    CGRect frame = [player frame]; 
    frame.origin.x = 137.0f; 
    frame.origin.y = 326.0; 
    [player setFrame:frame]; 

    CGRect frame2 = [enemy frame]; 
    frame2.origin.x = 137.0f; 
    frame2.origin.y = 20.0; 
    [enemy setFrame:frame2]; 
    enemyValue++; 
    playerlabel.text = [NSString stringWithFormat: @"%d", playerValue]; 
    enemylabel.text = [NSString stringWithFormat: @"%d", enemyValue]; 

}` 

私はコードを変更したり、行を追加するかどうかを知りたいです。 大変ありがとうございました。

AddGame

+0

は、あなたが任意の物理エンジンを見てありますか? box2dとChipmunk –

+0

いいえ、私のゲームはUIKitで作成する必要がありますが、chipmunkやBox2Dのソリューションを知っていますか? – AddGame

答えて

1
enemy.userInteractionEnabled = NO; 
+0

しかし、あなたは本当にOpenGLや何かの物理エンジンを見るべきです、あなたは長期的にあなた自身の時間を節約します。 – prince

+0

問題が解決しました。 – AddGame

+0

答えに印を付けてください。 – prince

関連する問題