cocos2d iPhoneで、Layerを使って、タップの移動量によりスクロールさせようとすると、移動量に比例して黒い四角が表示される件

cocos2d iPhoneで、マルチとして、ひとつのレイヤをタップの移動量によりスクロールさせようとすると、移動量に比例して黒い四角が表示されてしまうのですが、解決策は無いでしょうか?シミュレーターでは不具合なく、実機で試すと出てしまうんです。><

cocos2d iPhoneで、マルチとして、ひとつのレイヤをタップの移動量によりスクロールさせようとすると、移動量に比例して黒い四角が表示されてしまうのですが、解決策は無いでしょうか?シミュレーターでは不具合なく、実機で試すと出てしまうんです。><

  • タグ:
  • タグはありません
//
//  TextLayer.m
//  scrollTest
//
//  Created by admin on 11/09/05.
//  Copyright 2011年 __MyCompanyName__. All rights reserved.
//

#import "TextLayer.h"

@implementation TextLayer

static BOOL headerMarkFlg;
static BOOL footerMarkFlg;
static int limitSelfSize;
static CGPoint lastTouchLocation;

+ (CCScene *) scene{
    CCLOG(@"%@ : %@", NSStringFromSelector(_cmd), self);
    
    CCScene *scene = [CCScene node];
    TextLayer *layer = [TextLayer node];
    [scene addChild:layer];
    
    return scene;
}

- (void) dealloc
{
    CCLOG(@"%@ : %@", NSStringFromSelector(_cmd), self);
    
	[super dealloc];
}

- (id)init
{
    CCLOG(@"%@ : %@", NSStringFromSelector(_cmd), self);
    
    self = [super init];
    if (self) {
        // Initialization code here.
        headerMarkFlg = YES;
        footerMarkFlg = YES;
        
        //出力テキスト
        NSArray *textArray = [[NSArray alloc] initWithObjects:
                              @"背景画像出典: pro.foto",
                              @"http://pro.foto.ne.jp",
                              @"",
                              @"以下の文章は次を引用した。",
                              @"ただしこれは出力文字のサンプル",
                              @"として使用するものであり",
                              @"正確性を保証しない。",
                              @"",
                              @"GNU 劣等一般公衆利用許諾契約書",
                              @"バージョン 2.1、1999年2月",
                              @"日本語訳、2002年8月14日",
                              @"ソフトウェア向けライセンスの",
                              @"大半は、あなたがそのソフトウェア",
                              @"を共有したり変更したりする自由を",
                              @"奪うよう設計されています。",
                              @"対照的に、各種のGNU 一般公衆",
                              @"利用許諾契約書は、あなたがフリー",
                              @"ソフトウェアを共有したり改変",
                              @"したりする自由を保証する",
                              @"--すなわち、ソフトウェアが",
                              @"そのユーザすべてにとって",
                              @"フリーであることを保証する",
                              @"ことを目的としています。",
                              @"",
                              @"このライセンス、",
                              @"「劣等一般公衆利用許諾契約書」は、",
                              @"フリーソフトウェア財団やこの契約書",
                              @"を適用すると決めたフリーソフト",
                              @"ウェア財団以外の作者による特定の",
                              @"ソフトウェアパッケージ--典型的には",
                              @"ライブラリ--のいくつかに適用され",
                              @"ます。あなたもこの契約書を適用する",
                              @"ことができますが、私たちとしてはまず",
                              @"最初に、ある特定の用途においてこの",
                              @"契約書と通常の一般公衆利用許諾契約書",
                              @"のどちらを適用するのが戦略としてより",
                              @"優れているかを、以下の説明に即して",
                              @"注意深く考えてみることをおすすめし",
                              @"ます。",
                              nil];
        
        //表示
        int i=100;
        limitSelfSize = 400;
        for(NSString *str in textArray){
            CCLabelTTF *label1 = [CCLabelTTF labelWithString:str fontName:@"HiraKakuProN-W3" fontSize:17];
            label1.color = ccWHITE;
            label1.position = ccp(label1.contentSize.width/2+10, limitSelfSize);
            [self addChild:label1 z:2*i tag:2*i];
            
            CCLabelTTF *label2 = [CCLabelTTF labelWithString:str fontName:@"HiraKakuProN-W3" fontSize:17];
            label2.color = ccBLACK;
            label2.position = ccp(label1.position.x+2, label1.position.y-2);
            [self addChild:label2 z:2*i-1 tag:2*i-1];
            limitSelfSize -= 22;
            i++;
        }
        
        self.isTouchEnabled = YES;
    }
    
    return self;
}

- (void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    CCLOG(@"%@ : %@", NSStringFromSelector(_cmd), self);
    
    UITouch *touch = [touches anyObject];
    lastTouchLocation = [self convertTouchToNodeSpace:touch];
    [self stopActionByTag:ActionTagHelloWorldLayerMovesBack];
}

-(void) ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    CCLOG(@"%@ : %@", NSStringFromSelector(_cmd), self);
    
    UITouch *touch = [touches anyObject];
    CGPoint currentTouchLocation = [self convertTouchToNodeSpace:touch];
    CGPoint moveTo = ccpSub(lastTouchLocation, currentTouchLocation);
    moveTo = ccp(0, moveTo.y*(-1));
    
    CGPoint checkLocation = ccpAdd(self.position, moveTo);
    if((!headerMarkFlg && checkLocation.y < 0) || (!footerMarkFlg && checkLocation.y > 50-limitSelfSize)){
        CCLOG(@"Scroll stoped");
        return;
    }
    self.position = checkLocation;
    
    if(self.position.y < 0){
        headerMarkFlg = NO;
        footerMarkFlg = YES;
    }else if(self.position.y > 50-limitSelfSize){
        headerMarkFlg = YES;
        footerMarkFlg = NO;
    }else{
        headerMarkFlg = YES;
        footerMarkFlg = NO;
    }
    
}
@end