所以我得到了这个工作:
-(void) ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *myTouch = [touches anyObject];
CGPoint location = [myTouch locationInView:[myTouch view]];
location = [[CCDirector sharedDirector] convertToGL:location];
for( UITouch *touch in touches ) {
CGPoint touchLocation = [touch locationInView: [touch view]];
CGPoint prevLocation = [touch previousLocationInView: [touch view]];
touchLocation = [[CCDirector sharedDirector] convertToGL: touchLocation];
prevLocation = [[CCDirector sharedDirector] convertToGL: prevLocation];
CGPoint diff = ccpSub(touchLocation,prevLocation);
[self setPosition: ccpAdd(self.position, diff)];
}
}
我可以用我的手指移动图层但我想移动cccamera但我没有任何cccamera的经验。
任何人都可以帮助我吗?
非常感谢你 祝你有愉快的一天
:)
答案 0 :(得分:2)
这就是我正在使用的......移动相机的实现是我在cocos2d论坛上找到的。
-(void) ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *myTouch = [touches anyObject];
CGPoint location = [myTouch locationInView:[myTouch view]];
location = [[CCDirector sharedDirector] convertToGL:location];
for( UITouch *touch in touches ) {
CGPoint touchLocation = [touch locationInView: [touch view]];
CGPoint prevLocation = [touch previousLocationInView: [touch view]];
touchLocation = [[CCDirector sharedDirector] convertToGL: touchLocation];
prevLocation = [[CCDirector sharedDirector] convertToGL: prevLocation];
CGPoint diff = ccpSub(touchLocation,prevLocation);
[self setPosition: ccpAdd(self.position, diff)];
// Get the camera's current values.
float centerX, centerY, centerZ;
float eyeX, eyeY, eyeZ;
[self.camera centerX:¢erX centerY:¢erY centerZ:¢erZ];
[self.camera eyeX:&eyeX eyeY:&eyeY eyeZ:&eyeZ];
// Increment panning value based on current zoom factor.
diff.x = 2 * diff.x * (1+(eyeZ/832));
diff.y = 2 * diff.y * (1+(eyeZ/832));
// Round values to avoid subpixeling.
int newX = centerX-round(diff.x);
int newY = centerY-round(diff.y);
// Set values.
[self.camera setCenterX:newX centerY:newY centerZ:0];
[self.camera setEyeX:newX eyeY:newY eyeZ:eyeZ];
}
}