J'essaie de créer un jeu très simple où vous pouvez faire glisser un simple imageView. La chose est qu'il y a un mur dans le cadre (juste un rectangle) sur lequel l'image ne devrait pas aller. donc je l'ai fait quelque chose comme ceci:Contraindre un objet touché à entrer en collision avec des murs?
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
if ([touch view] == myImage) {
if (CGRectContainsRect (CGRectMake(0, 0, 800, 768), [myImage frame]))
{
myImage.center = [touch locationInView:self.view];
}
}
}
Mais le problème est que l'image ne sortit de lui est des bornes, puis est arrivé là bloqué et le touchesMoved a pris fin.
donc j'ai ajouté ceci:
else if (CGRectIntersectsRect (CGRectMake(801, 0, 223, 768), [myImage frame])) {
CGPoint touchedPoint = [touch locationInView:self.view];
myImage.center = CGPointMake(730, touchedPoint.y);
}
Mais cela fait l'image pour lancer vacillante lorsque l'intersection avec le « mur » et, finalement, est resté coincé là non plus. Je pense qu'il doit y avoir un moyen simple de le faire. quelqu'un pourrait m'éclairer s'il vous plaît?