我已经创建了Cocos Apps,然后在其中插入了精灵。我将精灵移动到鼠标移动的位置。精灵的坐标超出了屏幕边框。
任何一个解释如何将精灵坐标转换为屏幕坐标? 那将是(320 * 480)格式!!!
答案 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)