я с 32 спрайтов в моей сцене я устроил мой спрайт, как этотКак переместить спрайт с условиями и ограничивает
o o o
o o o
o o o o o o o
o o o . o o o
o o o o o o o
o o o
o o o
O ---> MovingBall . ---> пустое отверстие
Когда я переведу один спрайт в пустое отверстие, средний спрайт будет удален, и мой спрайт и отверстие должны быть взаимозаменяемы, как это.
o o . -----> . . o
возможные пути:
| | | | | | |
o | | . | | o | . | . | .
o | o o . | o | . o o | o | o | o | o
. | | o | | . | o | o | o
| | | | | | |
Всего 8 возможность перемещения спрайта.
Может ли кто-нибудь помочь мне, как это сделать и что я хочу изменить в своем коде?
Моя кодирование здесь
- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *myTouch = [touches anyObject];
CGPoint location = [myTouch locationInView:[myTouch view]];
location = [[CCDirector sharedDirector] convertToGL:location];
if(movingBall)
{
for(int i = 0; i<32; i++)
{
CCSprite *currentSprite = (CCSprite *)[self getChildByTag:i];
if(CGRectContainsPoint([currentSprite boundingBox],location))
{
// get moving sprite touched
if(movingBall.position.x == hole.position.x+(2*75) || movingBall.position.x == hole.position.x-(2*75) || movingBall.position.y == hole.position.y+(2*75) || movingBall.position.y == hole.position.y -(2*75))
{
movingBall = (CCSprite *)currentSprite;
break;
}
}
}
}
}
-(void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch=[touches anyObject];
CGPoint location=[touch locationInView:[touch view]];
location=[[CCDirector sharedDirector]convertToGL:location];
location=[self convertToNodeSpace:location];
if(!movingBall)
{
return;
}
movingBall.position = location;
for(int i = 0; i<32; i++)
{
CCSprite *currentSprite = (CCSprite *)[self getChildByTag:i];
if(CGRectIntersectsRect([movingBall boundingBox],[currentSprite boundingBox]))
{
// current sprite touched
if(currentSprite.tag == hole.tag)
{
movingBall.position = hole.position;
[self removeChild:currentSprite];
break;
}
}
}}
-(void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
if(!movingBall)
{
return;
}
movingBall = nil;
}
Можете ли вы мне помочь с кодом, потому что я новичок в cocos2d. – iphoneguyzzz
код пожалуйста ..... – iphoneguyzzz
Я не знаю ни одного cocos2d. – Patashu