Эй, ребята, я подготовил много вопросов по этому вопросу, но я действительно еще не получил правильный.
Итак .. в этом проблема ..
Это мой первый проект с cocos2d, извините за это.
У меня есть одна сцена под названием Геймплей , внутри которой у меня есть один слой с именем Сетка , и внутри этой сетки есть много Блок (Слой тоже ).
Мне нужно проверить, когда вы касаетесь одного блока , я делаю это раньше в Интерфейсном Разработчике, поэтому, когда я вызываю touchesBegin, у меня есть точное касание в одном представлении. Но в cocos2D я понимаю, что вы должны проверять положение объектов, а не проверять удар, верно?!
Так что мои прикосновения начинаются так:
- (void)ccTouchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView: [touch view]];
//location = [[Director sharedDirector] convertCoordinate: location];
for(int i = 0; i < [arrAllBlocks count]; i++)
{
for (int j = 0; j < [[arrAllBlocks objectAtIndex:i] count]; j++)
{
Block *tempBlock = [[arrAllBlocks objectAtIndex:i] objectAtIndex:j];
CGRect mySurface = (CGRectMake(tempBlock.position.x, tempBlock.position.y, tempBlock.contentSize.width,tempBlock.contentSize.height));
if(CGRectContainsPoint(mySurface, location))
{
NSLog(@"Hit Positions %fl:%fl",location.x,location.y);
NSLog(@"Object Positions %fl:%fl",tempBlock.position.x,tempBlock.position.y);
NSLog(@"Object Color:%@ hited", tempBlock.strName);
}
}
}
}
Первая проблема: это выглядит перевернутым! Когда я нажимаю на один из этих блоков в первой строке! Я получил блок в последней строке! Я действительно не понимаю этого! И хит не видится идеальным для меня! И когда я convertCoordinate , это происходит еще хуже!
Кто-то может мне помочь ?! И извините за плохой английский = /