Как плавно прокрутить CCLayer?
Я хочу прокрутить карту, коснувшись. Не могли бы вы дать мне основные понятия, как этого достичь? Вот мой уродливый простой код. Просто измените положение слоя при каждом движении пальца. Это работает, но это не мило, как могло бы быть.
.h
CGPoint *touchBegin;
CGPoint *touchmove;
.m
-(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
CGPoint touchLocation = [touch locationInView:[touch view]];
touchLocation = [[CCDirector sharedDirector]
convertToGL:touchLocation];
touchBegin=new CGPoint(touchLocation);
}
-(void) ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event {
CGPoint touchLocation = [touch locationInView:[touch view]];
touchLocation =
[[CCDirector sharedDirector] convertToGL:touchLocation];
touchmove = new CGPoint(touchLocation);
[self setPosition:ccp(self.position.x/100-(touchBegin->x-touchmove->x),self.position.y/100.0f)];
delete touchmove;
touchmove=NULL;
}
-(void) ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event {
if (touchBegin)
{
delete touchBegin;
touchBegin=NULL;
}
if (touchmove)
{
delete touchmove;
touchmove=NULL;
}
}
1 ответ
Решение
Попробуйте расширение CCScrollLayer. Вот ссылка
"Сначала добавьте оба файла в ваш проект
"В вашей сцене импортируйте CCScrollLayer.h
"В методе init вашей сцены создайте каждый слой и передайте его классу CCScrollLayer
Для получения более подробной информации см. CCScrollLayerTestLayer.m в cocos2d-iphone-extensions