0

私は何週間も CCLayerPanZoom で問題を抱えていましたが、ようやく近づきましたが、まだ問題が発生しています。8000 ピクセル x 8000 ピクセルの非常に大きなタイル マップがあり、約 2.0f にズームインし、約 0.4f にズームアウトする機能が必要です。以下のコードは、タイル マップ全体をパンでき、端を越えてパンできないという点でうまく機能します。これは CCLayerPanZoom でよくある問題ですが、このコードではズームインまたはズームアウトができません。どちらも機能していないため、今のところ minScale と maxScale をコメントアウトしました。minScale と maxScale の場所を変更しようとしましたが、どこでも機能しません。minScale と maxScale を機能させてズームが機能するようにする方法を知っている人はいますか?

    //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
4

1 に答える 1

2

最後に、CCPanZoomLayerの上のコードに以下の行を追加することで、最終的にうまく機能することがわかりました。願わくば、このコードが、この cocos2d 拡張機能に苦労している他の人たちを救ってくれることを願っています。

 [[[CCDirector sharedDirector] view] setMultipleTouchEnabled:YES];
于 2012-06-24T03:26:41.827 に答える