1

をタッチして地図をスクロールしたい。そこに到達するための基本的な概念を教えてください。これが私の醜い単純なコードです。タッチを動かすたびにレイヤーの位置を変更するだけです。動作しますが、可愛くはありません。

.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;
        }
    }
4

1 に答える 1

0

CCScrollLayer拡張機能を試してください。ここにリンクがあります

«最初に両方のファイルをプロジェクトに追加します

«シーンでCCScrollLayer.hをインポートします

«シーンのinitメソッドで各レイヤーを作成し、CCScrollLayerクラスに渡します

詳細については、cocos2d-iphone-extensionsのCCScrollLayerTestLayer.mを参照してください。

于 2013-02-05T18:35:58.640 に答える