Note that there are some explanatory texts on larger screens.

plurals
  1. POTouch Move Method issue in cocos2d for iphon4
    primarykey
    data
    text
    <p>I am developing one universal puzzle game, in which i have used separate image for iphone4 and for iphone3, iphone4 image is double in size of iphone3 image. My issue is for iphone4, touch area of image for iphone4 image is taking double size, suppose i have an image size for iphone4 is 20*40 and for iphone3 is 10*20, issue is touch area for iphone4 image is 40*80 i don't know how its happening i worked out in my code but i didnt get any solution of this issue, touching is working fine in iphone3, taking with in sprite rectangle.</p> <p>can you one help me to solve this issue or tell me what i am forgetting to code for iphone4 touching so that its take touch with in sprite (image) rectangle </p> <p>Thank in advance. Here is my code:</p> <pre><code> `-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; touchLocation = [touch locationInView: [touch view]]; touchLocation = [[CCDirector sharedDirector] convertToGL:touchLocation]; touchLocation = [self convertTouchToNodeSpace:touch]; NSLog(@"touch location x = %f , y =%f",touchLocation.x,touchLocation.y); CCSprite * sp= [CCSprite spriteWithFile:@"1.png"]; sp.position = ccp(touchLocation.x ,touchLocation.y); // [self addChild:sp z:100]; CGRect myrec = [invisible[0] boundingBox]; if (CGRectContainsPoint(myrec, touchLocation) ) { NSLog(@"oneeeeeeee"); } [self selectSpriteForTouch:touchLocation]; // return TRUE; } - (void)panForTranslation:(CGPoint)translation { if (selSprite) { CGPoint newPos = ccpAdd(selSprite.position, translation); selSprite.position = newPos; } } - (void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; Location = [touch locationInView: [touch view]]; Location = [[CCDirector sharedDirector] convertToGL:Location]; Location = [self convertTouchToNodeSpace:touch]; NSLog(@"touch moved location x = %f , y =%f",Location.x,Location.y); //touchLocation = [self convertTouchToNodeSpace:touch]; CGPoint oldTouchLocation = [touch previousLocationInView:touch.view]; oldTouchLocation = [[CCDirector sharedDirector] convertToGL:oldTouchLocation]; oldTouchLocation = [self convertToNodeSpace:oldTouchLocation]; CGPoint translation = ccpSub(Location, oldTouchLocation); if (CGRectContainsPoint(selspriterect,Location)) { [self panForTranslation:translation]; } if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { NSLog(@"respond to selector"); CGFloat scale = [[UIScreen mainScreen] scale]; if (scale &gt; 1.0) { NSLog(@"iphone 4s"); CGPoint mypoint = CGPointMake(80, 357); CGPoint mypoint1 = CGPointMake(237, 360); CGPoint mypoint2 = CGPointMake(79, 255); CGPoint mypoint3 = CGPointMake(237, 247); CGPoint mypoint4 = CGPointMake(78, 153); CGPoint mypoint5 = CGPointMake(239, 140); CCSprite *disablesprite=nil; switch (selSprite.tag) { case 0: if (CGRectContainsPoint( [dest[0] boundingBox] , mypoint ) ) { NSLog(@"oneeeeee collided"); dest[0].position = ccp(192,380); // selSprite = disablesprite; } break; case 1: if (CGRectContainsPoint( [dest[1] boundingBox] , mypoint1 ) ) { NSLog(@"two collided"); dest[1].position = ccp(258,379); } break; case 2: if (CGRectContainsPoint( [dest[2] boundingBox] , mypoint2 ) ) { NSLog(@"three collided"); dest[2].position = ccp(173,281); } break; case 3: if (CGRectContainsPoint( [dest[3] boundingBox] , mypoint3 ) ) { NSLog(@"four collided"); dest[3].position = ccp(258,281); } break; case 4: if (CGRectContainsPoint( [dest[4] boundingBox] , mypoint4 ) ) { NSLog(@"five collided"); dest[4].position = ccp(166,181); } break; case 5: if (CGRectContainsPoint( [dest[5] boundingBox] , mypoint5 ) ) { NSLog(@"six collided"); dest[5].position = ccp(258,176); } break; default: break; } } else { CGPoint mypoint = CGPointMake(106, 329); CGPoint mypoint1 = CGPointMake(208, 329); CGPoint mypoint2 = CGPointMake(97, 220); CGPoint mypoint3 = CGPointMake(217, 220); CGPoint mypoint4 = CGPointMake(92, 124); CGPoint mypoint5 = CGPointMake(212, 124); CCSprite *disablesprite=nil; switch (selSprite.tag) { case 0: if (CGRectContainsPoint( [dest[0] boundingBox] , mypoint ) ) { NSLog(@"oneeeeee collided"); dest[0].position = ccp(125,320); // selSprite = disablesprite; } break; case 1: if (CGRectContainsPoint( [dest[1] boundingBox] , mypoint1 ) ) { NSLog(@"two collided"); dest[1].position = ccp(200,312); } break; case 2: if (CGRectContainsPoint( [dest[2] boundingBox] , mypoint2 ) ) { NSLog(@"three collided"); dest[2].position = ccp(117,209); } break; case 3: if (CGRectContainsPoint( [dest[3] boundingBox] , mypoint3 ) ) { NSLog(@"four collided"); dest[3].position = ccp(200,208); } break; case 4: if (CGRectContainsPoint( [dest[4] boundingBox] , mypoint4 ) ) { NSLog(@"five collided"); dest[4].position = ccp(113,127); } break; case 5: if (CGRectContainsPoint( [dest[5] boundingBox] , mypoint5 ) ) { NSLog(@"six collided"); dest[5].position = ccp(207,126); } break; default: break; } } } } -(void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{ CGPoint mypoint = CGPointMake(106, 329); CGPoint mypoint1 = CGPointMake(208, 329); CGPoint mypoint2 = CGPointMake(97, 220); CGPoint mypoint3 = CGPointMake(217, 220); CGPoint mypoint4 = CGPointMake(92, 124); CGPoint mypoint5 = CGPointMake(212, 124); switch (selSprite.tag) { case 0: if (CGRectContainsPoint( [dest[0] boundingBox] , mypoint ) ) { NSLog(@"oneeeeee collided"); if (corsprite == TRUE) { correctplace++; corsprite = FALSE; } }else { selSprite.position = ccp(110,50); } break; case 1: if (CGRectContainsPoint( [dest[1] boundingBox] , mypoint1 ) ) { NSLog(@"two collided"); if (corsprite2 == TRUE) { correctplace++; corsprite2 = FALSE; } }else { selSprite.position = ccp(110, 65); } break; case 2: if (CGRectContainsPoint( [dest[2] boundingBox] , mypoint2 ) ) { NSLog(@"three collided"); if (corsprite3 == TRUE) { correctplace++; corsprite3 = FALSE; } }else { selSprite.position =ccp(130, 10); } break; case 3: if (CGRectContainsPoint( [dest[3] boundingBox] , mypoint3 ) ) { NSLog(@"four collided"); if (corsprite4 == TRUE) { correctplace++; corsprite4 = FALSE; } }else { selSprite.position = ccp(215, 10); } break; case 4: if (CGRectContainsPoint( [dest[4] boundingBox] , mypoint4 ) ) { NSLog(@"five collided"); if (corsprite5 == TRUE) { correctplace++; corsprite5 = FALSE; } }else { selSprite.position = ccp(220,70); } break; case 5: if (CGRectContainsPoint( [dest[5] boundingBox] , mypoint5 ) ) { NSLog(@"six collided"); if (corsprite6 == TRUE) { correctplace++; corsprite6 = FALSE; } }else { selSprite.position = ccp(220,70); } break; default: break; } </code></pre> <p>`</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload