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