2012-06-23 4 views
0

У меня возникли проблемы с CCLayerPanZoom в течение нескольких недель, и, наконец, я был близок, но у меня все еще проблема. У меня есть карта плитки, которая имеет довольно большой размер 8000 пикселей x 8000 пикселей, и то, что я бы хотел, имеет возможность приблизить до 2.0f и уменьшить масштаб до около 0.4f. Следующий код отлично работает, поскольку он позволяет мне перемещаться по всей моей карте плитки и НЕ проходить мимо краев - общая проблема с CCLayerPanZoom, однако код не позволит увеличивать или уменьшать масштаб. Я уже прокомментировал minScale и maxScale, так как ни один из них не работает. Я попытался изменить местоположение minScale и maxScale, и он нигде не работает. Есть ли у кого-нибудь идеи, как заставить minScale и maxScale работать, поэтому масштабирование будет функционировать?CCLayerPanZoom не будет увеличивать или уменьшать масштаб

//PanZoomLayer 

    _panZoomLayer = [[CCLayerPanZoom node] retain]; 
    [self addChild: _panZoomLayer]; 
    _panZoomLayer.delegate = self; 

    [_panZoomLayer addChild: _tileMap z :1 tag: kBackgroundTag]; 

    _panZoomLayer.mode = kCCLayerPanZoomModeSheet; 

    _panZoomLayer.rubberEffectRatio = 0.0f; 
    CCNode *backgroundZ = [_panZoomLayer getChildByTag: kBackgroundTag]; 
    CGRect boundingRect = CGRectMake(0, 0, 0, 0); 
    boundingRect.size = [backgroundZ boundingBox].size; 
    [_panZoomLayer setContentSize: boundingRect.size]; 

    _panZoomLayer.anchorPoint = ccp(0.5f, 0.5f); 
    _panZoomLayer.position = ccp(0.5f * winSize.width, 0.5f * winSize.height); 

    _panZoomLayer.panBoundsRect = CGRectMake(0, 0, winSize.width, winSize.height); 
    _panZoomLayer.minScale = 0.4f; 
    _panZoomLayer.maxScale = 2.0f; 

    //end PanZoomLayer 

ответ

2

Наконец-то выяснилось, добавив нижеприведенную строку к коду выше CCPanZoomLayer, наконец, отлично работает. Надеюсь, этот код надеется, что другие люди, которые боролись с этим расширением cocos2d

[[[CCDirector sharedDirector] view] setMultipleTouchEnabled:YES]; 
Смежные вопросы