I want to add two sprites by replacing one sprite on touch. I tried the following code. it works fine only when sprite is horizontal. How to make it work if sprite is moving or not horizontal.
I am using cocos2d box2d physics.
CCLOG(@"Touch Detected");
CGPoint pos=touchedSprite.position;
[touchedSprite removeSelf];
LHSprite *myNewSprite = [loader createSpriteWithName:@"Red_10" fromSheet:@"images" fromSHFile:@"BreakGlassResources" ];
myNewSprite.uniqueName=@"Red_10";
myNewSprite.tag=BRICK;
[myNewSprite transformPosition:ccp(pos.x,pos.y)];
myNewSprite.anchorPoint=ccp(1,0.5);
[myNewSprite registerTouchBeganObserver:self selector:@selector(touchBeginOnSprites:)];
LHSprite *myNewSprite1 = [loader createSpriteWithName:@"Blue_10" fromSheet:@"images" fromSHFile:@"BreakGlassResources" ];
myNewSprite1.uniqueName=@"Blue_10";
myNewSprite1.tag=BRICK;
[myNewSprite1 transformPosition:ccp(pos.x+myNewSprite.size.width,pos.y)];
myNewSprite1.anchorPoint=ccp(1,0.5);
Thanks in Advance. :)
According to your code snippet, you're never setting the new sprites positions. The
anchorPosition
andtransformPosition
are relative to the sprite itself and defines anchors for position and transform, but does not position the sprite itself. theposition
property is what you're looking for.