Я использую Cocos2D для разработки мини-игры для iPhone. Я хотел обнаружить прикосновение спрайта.Для этого я решил не создавать подкласс класса CCSprite, а вместо этого использовать сенсорные события в классе слоя:
-(void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
CCLOG(@"touch began...");
CCSprite *particularSprite = [self getChildByTag:artSprite];
CCNode *nodeClass = (CCNode*) particularSprite;
CGRect DesiredSprite = CGRectMake(nodeClass.positionInPixels.x, nodeClass.positionInPixels.y,particularSprite.contentSize.width , particularSprite.contentSize.height);
for (UITouch *myTouch in touches) {
CGPoint touchPosition = [myTouch locationInView: [myTouch view]];
if(CGRectContainsPoint(DesiredSprite ,touchPosition ))
{
CCLOG(@"Sprite touched");
}
}
}
К сожалению, неправильные координаты.LocationInView переводит это по-другому.Я использую представление landscapeleft (kCCDeviceOrientationLandscapeLeft.)позиция касания (это то, что я хочу).
Я пытался получить доступ к locationInWindow, но для него нет метода получения.Как я могу это сделать?
Большое спасибо и наилучшие пожелания