Я делаю канон для стрельбы объектов. назад канона прикреплен плунжер. плунжер действует для заданной скорости и угла. канон вращается на 0-90 градусов, а поршень перемещается вперед и назад для регулировки скорости. когда я вращаю канон, прикасаясь, его рабочий тон. , когда плунжер оттягивается тросами, перемещается и вращается, означает, что плунжер находится за пределами канона.Ограничение спрайт в cocos2d
как контролировать это: -
мой код для плунжера и вращения каноническому на касаний перемещается. (Para3 является каноном, para6 моего поршня): -
CGPoint touchLocation = [self convertTouchToNodeSpace:touch];
CGPoint oldTouchLocation = [touch previousLocationInView:touch.view];
oldTouchLocation = [[CCDirector sharedDirector] convertToGL:oldTouchLocation];
oldTouchLocation = [self convertToNodeSpace:oldTouchLocation];
if (CGRectContainsPoint(CGRectMake(para6.position.x-para6.contentSize.width/2, para6.position.y-para6.contentSize.height/2, para6.contentSize.width, para6.contentSize.height), touchLocation) && (touchLocation.y-oldTouchLocation.y == 0))
{
CGPoint diff = ccpSub(touchLocation, oldTouchLocation);
CGPoint currentpos = [para6 position];
NSLog(@"%d",currentpos);
CGPoint destination = ccpAdd(currentpos, diff);
if (destination.x < 90 && destination.x >70)
{
[para6 setPosition:destination];
speed = (70 + (90-destination.x))*3.5 ;
}
}
if(CGRectIntersectsRect((CGRectMake(para6.position.x-para6.contentSize.width/8, (para6.position.y+30)-para6.contentSize.height/10, para6.contentSize.width, para6.contentSize.height/10)),(CGRectMake(para3.position.x-para3.contentSize.width/2, para3.position.y-para3.contentSize.height/2, para3.contentSize.width, para3.contentSize.height))))
{
[para3 runAction:[CCSequence actions:
[CCRotateTo actionWithDuration:rotateDuration angle:rotateDiff],
nil]];
CGFloat plungrot = (rotateDiff);
CCRotateTo *rot = [CCRotateTo actionWithDuration:rotateDuration angle:plungrot];
[para6 runAction:rot];
}
}
Я добавил в качестве ребенка. все же его ограничивающий спрайт (плунжер ограничивает пушку), когда он прикасается к методу завершения, он будет работать правильно. в прикосновениях перемещается все еще, он ограничивается после добавления ребенка. – Srinivas