我需要帮助解决用手指旋转精灵的问题。精灵可以旋转,但是在我的手指刚接触到精灵时,它会自己旋转几度。
此外,只有当手指围绕精灵中心旋转时,旋转才有效。
我正在尝试模拟自行车轮,并将齿轮精灵和踏板精灵作为齿轮精灵的子节点。我希望在摇动踏板并旋转时,自行车轮能够旋转。但我还没有做到这一步,现在我正试图解决如何消除齿轮在初始时的旋转。
以下是完整代码:
#import "BicycleScene.h"
@implementation BicycleScene
+(id) scene
{
// 'scene' is an autorelease object.
CCScene *scene = [CCScene node];
// 'layer' is an autorelease object.
BicycleScene *layer = [BicycleScene node];
// add layer as a child to scene
[scene addChild: layer];
// return the scene
return scene;
}
-(id) init
{
if ((self=[super init])) {
CGSize winSize = [[CCDirector sharedDirector] winSize];
//place the bicycle sprite
bicycleSprite = [CCSprite spriteWithFile:@"bike_gear.png"];
bicycleSprite.position = ccp(bicycleSprite.contentSize.width/2 + 100, winSize.height/2);
[self addChild:bicycleSprite z:1];
//place the pedal sprite
pedalSprite = [CCSprite spriteWithFile:@"bike_pedal.png"];
[bicycleSprite addChild:pedalSprite z:1];
pedalSprite.position = ccp(150, 15);
//enable touch
self.isTouchEnabled = YES;
[self schedule:@selector(gameLoop:) interval:.1/100];
}
return self;
}
-(void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
NSLog(@"Touch begun");
}
-(void)gameLoop:(ccTime) dt{
bicycleSprite.rotation = cocosAngle;
}
-(void) ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
NSLog(@"Touch moved");
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:[touch view]];
CGPoint previousLocation = [touch previousLocationInView:[touch view]];
CGPoint touchingPoint = [[CCDirector sharedDirector] convertToGL:location];
CGPoint previousTouchingPoint = [[CCDirector sharedDirector] convertToGL:previousLocation];
CGPoint vector = ccpSub(touchingPoint, bicycleSprite.position);
CGFloat rotateAngle = -ccpToAngle(vector);
previousAngle = cocosAngle;
cocosAngle = CC_RADIANS_TO_DEGREES( rotateAngle);
//bicycleSprite.rotation = cocosAngle;
}
@end
我有些困惑这句话的意思:
CGPoint vector = ccpSub(touchingPoint, bicycleSprite.position);
应该实际如下:
CGPoint vector = ccpSub(touchingPoint, previousTouchingPoint );
我也尝试了那个方法,但它没有起作用。
我还将我的完整的xcodeproj上传到4shared供任何想查看的人使用,链接在这里:http://www.4shared.com/file/5BaeW4oe/Healthy.html