Adding two sprites by replacing another sprite

105 Views Asked by At

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. :)

1

There are 1 best solutions below

2
On

According to your code snippet, you're never setting the new sprites positions. The anchorPosition and transformPosition are relative to the sprite itself and defines anchors for position and transform, but does not position the sprite itself. the position property is what you're looking for.