Sri*_*vas 7 iphone objective-c cocos2d-iphone
正在制作一个用于射击物体的正典.柱塞的背面是柱塞的附件.柱塞用于设定速度和角度.佳能旋转0-90度,柱塞前后移动,调节速度.当我通过触摸旋转佳能时,其工作正常.当柱塞通过移动而被拉回并且其旋转意味着柱塞被束缚在佳能之外.
如何控制这个: -
移动时我的柱塞和佳能旋转代码.(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];
}
}
Run Code Online (Sandbox Code Playgroud)
小智 2
您使用 [CCMoveTo actionWithDuration:position:] 方法来执行此操作怎么样?
通过这种方法,您可以通过“actionWithDuration”参数轻松控制速度,该参数采用以秒为单位的整数时间值,而方向可以通过“position”参数调整,该参数采用 ccp(x,y) 作为您想要的点的值您要移动到的柱塞。
你可以像这样使用它......
CCSprite *plunger = [[CCSprite alloc] initWithFile:@"plunger.png"];
plunger.position = ccp(240,240);
[self addChild:plunger z:10];
[plunger release];
id = [CCMoveTo actionWithDuration:3 position:ccp(300,240)];
Run Code Online (Sandbox Code Playgroud)
给出的值是我选择的。您可以根据自己的喜好使用它们。
希望对你有帮助......
| 归档时间: |
|
| 查看次数: |
601 次 |
| 最近记录: |