cocos2d установил точку мыши для координат спрайта - PullRequest
1 голос
/ 07 сентября 2010

Я создал Cocos Apps, затем вставил в него спрайт.Я переместил спрайт в местоположение, перемещенное мышью. Координаты спрайта находятся за пределами экрана.

Кто-нибудь может объяснить, как я могу преобразовать координаты спрайта в экранные координаты?Это было бы в (320 * 480) формате !!!

Ответы [ 2 ]

3 голосов
/ 07 сентября 2010

Поскольку система координат Cocos "вверх ногами" по сравнению с системой координат экрана iPhone, вам необходимо сделать:

- (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 метод.

0 голосов
/ 29 сентября 2010
-(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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...