Kriege irgendwie die Collision Detected nicht auf die Reihe
Ich habe zwei UIImageView. Das eine bewegt sich mittels Animation ohne Drag Touch auf das andere (fix Positioniert) zu.
Die Animation klappt auch hervorragend, aber wie ich es auch immer anstelle, funktioniert die Erkennung wenn die zwei UIImageView's aufeinander treffen nicht.
Aufgerufen wird die Klasse cShootsItem von gameViewController.m mit der Methode setItems.
Vielleicht sieht hier jemand, wo bei mir der Denkfehler liegt
gameViewController.h
gameViewController.m
Alles anzeigen
cShootsItem.m
Alles anzeigen
Ich habe zwei UIImageView. Das eine bewegt sich mittels Animation ohne Drag Touch auf das andere (fix Positioniert) zu.
Die Animation klappt auch hervorragend, aber wie ich es auch immer anstelle, funktioniert die Erkennung wenn die zwei UIImageView's aufeinander treffen nicht.
Aufgerufen wird die Klasse cShootsItem von gameViewController.m mit der Methode setItems.
Vielleicht sieht hier jemand, wo bei mir der Denkfehler liegt
gameViewController.h
gameViewController.m
Quellcode
cShootsItem.m
Quellcode
- - (void) setShoot:(UIImageView*)image{
- if (hasShoot == NO) {
- [UIView beginAnimations:@"shoot" context:nil];
- //[UIView setAnimationDelegate:self];
- [UIView setAnimationWillStartSelector:@selector(didStart:context:)];
- [UIView setAnimationDidStopSelector:@selector(didStop:finished:context:)];
- [UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
- [UIView setAnimationDuration:1.0];
- shootItem.transform = CGAffineTransformMakeTranslation(_xTransF, _yTransF);
- [UIView commitAnimations];
- btnAniStarted = FALSE;
- shootTimer=[NSTimer scheduledTimerWithTimeInterval: 1.0 target:self selector:@selector(onTimer) userInfo:nil repeats:YES];
- collisionTimer=[NSTimer scheduledTimerWithTimeInterval: 0.03 target:self selector:@selector(checkCollison) userInfo:nil repeats:YES];
- }else {
- shootItem.transform = CGAffineTransformIdentity;
- }
- }
- - (void) checkCollison{
- if (!paused) {
- CGRect frame1 = shootItem.frame;
- CGRect frame2 = heroHit.frame;
- if (CGRectIntersectsRect(frame1, frame2) || CGRectContainsRect(frame1, frame2) || CGRectContainsRect(frame2, frame1)) {
- NSLog(@"Hero getroffen!");
- }
- NSLog(@"enemy Y:%f enemy X:%f",frame1.origin.y,frame1.origin.x);
- }
- }
- - (void)setShootItem:(UIImageView*)image{
- shootRect = CGRectMake(0.0f, 0.0f, 78.0, 70.0);
- shootRect.origin = CGPointMake(_xPoint2, _yPoint2);
- //shootItem=gameview.imgShoot;
- shootItem = [[UIImageView alloc] initWithFrame:shootRect];
- [shootItem setImage:[UIImage imageNamed:@"crumpled_shoot.png"]];
- [self setShoot:shootItem];
- btnAniStarted = TRUE;
- [image addSubview:shootItem];
- }
- - (void) setHero:(UIImageView*)image{
- CGRect dragRect = CGRectMake(322.0f, 325.0f, 50.0, 110.0);
- heroHit = [[UIImageView alloc] initWithFrame:dragRect];
- //[heroHit setBackgroundColor:[UIColor redColor]];
- heroHit.alpha=0.5;
- [image addSubview:heroHit ];
- }
- - (void) startItems:(id)sender levelID:(int)levelID{
- intLevelID=levelID;
- [self setHero:sender];
- [self setCrumple:sender];
- }
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von hst68 ()