cocos2d将mousepoint设置为sprite坐标

时间:2010-09-07 07:22:38

标签: cocos2d-iphone

我已经创建了Cocos Apps,然后在其中插入了精灵。我将精灵移动到鼠标移动的位置。精灵的坐标超出了屏幕边框。

任何一个解释如何将精灵坐标转换为屏幕坐标? 那将是(320 * 480)格式!!!

2 个答案:

答案 0 :(得分:3)

因为与iPhone屏幕坐标系相比,cocos坐标系是“倒置”,所以你需要这样做:

- (void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *) event
{

    UITouch *touch = [touches anyObject];
    CGPoint point = [touch locationInView: [touch view]];

    CGPoint touchCorrected;
    touchCorrected.x = point.x;
    touchCorrected.y = 480 - point.y;

}

但是,如果你的精灵是一个层次结构或一堆精灵的一部分,你需要使用CCNodes convertToNodeSpace方法将(校正的)触摸坐标转换为精灵本地坐标。

答案 1 :(得分:0)

-(BOOL)ccTouchBegan:(UITouch *)touches withEvent:(UIEvent *)event  
{  
    CGPoint location = [touches locationInView: [touches view]];  
    location = [[CCDirector sharedDirector] convertToGL:location];  
        NSLog(@"X=%f Y=%f",location.x,location.y);  
        return YES;  
}

它将返回屏幕坐标(320 * 480)