2012-04-20 10 views
1

私はcocos2dアプリケーションでCCScrollLayerを動作させようとしていますが、スクロールしません。ここでCCScrollLayerをスクロールする方法は?

は私がやったことです:

  1. はcocos2dテンプレートを使用して、iOSのcocos2dプロジェクトを作成しました。 CCScrollLayerファイルを追加し、HelloWorldLayerクラスにインポートしました。レイヤーを作成するメソッド "layerWithLevelName"を追加しました。

  2. initでは、テスト用にいくつかのレイヤーを作成しました。以下は私のHelloWorldLayer実装のコードです。私はスクロールするためにいくつかのレイヤーを取得しようとしているので、非常に基本的です。

// HelloWorldLayer implementation 
#import "HelloWorldLayer.h" 
#import "CCScrollLayer.h" 
@implementation HelloWorldLayer 


+(CCScene *) scene 
{ 
    CCScene *scene = [CCScene node];  
    HelloWorldLayer *layer = [HelloWorldLayer node];  
    [scene addChild: layer]; 

    // return the scene 
    return scene; 
} 

-(CCLayer*) layerWithLevelName:(NSString*)name number:(int)number screenSize:(CGSize)screenSize 
{ 
    CCLayer *layer = [[[CCLayer alloc] init]autorelease]; 

    int largeFont = [CCDirector sharedDirector].winSize.height/9; 
    CCLabelTTF *layerLabel = [CCLabelTTF labelWithString:name fontName:@"Marker Felt" fontSize:largeFont]; 
    layerLabel.position = ccp(screenSize.width/2 , screenSize.height/2 + 10); 
    layerLabel.rotation = -6.0f; 
    layerLabel.color = ccc3(95,58,0); 
    [layer addChild:layerLabel]; 

    return layer; 
} 

// on "init" you need to initialize your instance 
-(id) init 
{ 
    // always call "super" init 
    // Apple recommends to re-assign "self" with the "super" return value 
    if((self=[super init])) 
    { 

     // ask director the the window size   
     NSMutableArray* _layers = [[NSMutableArray alloc]init]; 
     CGSize screenSize = [CCDirector sharedDirector].winSize; 

     for (int i=0; i<3; i++) 
     { 
      int number = i; 
      NSString* name = [[NSString alloc]initWithFormat:@"level%d",i]; 
      CCLayer* layer = [self layerWithLevelName:name number:number screenSize:screenSize]; 
      [_layers addObject:layer]; 

      [name release]; 
     } 

     // Set up the swipe-able layers 
     CCScrollLayer *scroller = [[CCScrollLayer alloc] initWithLayers:_layers 
                  widthOffset:230]; 
     [self addChild:scroller]; 
//  [scroller selectPage:0]; 

     [scroller release]; 
     [_layers release]; 

    } 
    return self; 
} 

- (void) dealloc 
{ 
    [super dealloc]; 
} 
@end 

あなたがコードを実行した場合、あなたはレベル/スクロール層を見ることができることがわかります - >正しくロードされているようです。しかし、スクロールすることはできません。私は何をするのを忘れましたか?私は間違って何をしていますか?

編集:私はこれが1.1beta2の問題であると思われcocos2d-iphoneの1.1beta2

答えて

1

を使用しています。

一時的な回避策は、scroller.stealTouches = NOを設定することです。

これには他にどのような副作用があるのか​​わかりません。

EDIT:

修正:使用更新CCTouchDispatcherファイル:

https://github.com/cocos2d/cocos2d-iphone/blob/develop/cocos2d/Platforms/iOS/CCTouchDispatcher.m と.hファイル https://github.com/cocos2d/cocos2d-iphone/blob/develop/cocos2d/Platforms/iOS/CCTouchDispatcher.h

対応
関連する問題