我能夠使目標沿着屏幕的頂部隨機產生並消失在屏幕的底部。唯一的問題是每次只有目標移動到一個固定點。我希望他們移動到屏幕底部的隨機點。有任何想法嗎? 謝謝。隨機雪碧目的地
下面是代碼:
- (無效)addTarget {
CCSpriteSheet *sheet = [CCSpriteSheet spriteSheetWithFile:@"meteorImgs.png" capacity:50];
[self addChild:sheet];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"metImg.plist"];
target = [CCSprite spriteWithFile:@"Frame2.png" rect:CGRectMake(0, 0, 60, 120)];
CGSize winSize = [[CCDirector sharedDirector] winSize];
int minY = target.contentSize.height/2;
int maxY = winSize.width*1.5 - target.contentSize.height/2;
int rangeY = maxY - minY;
int actualY = (arc4random() % rangeY) + minY;
target.position = ccp(actualY, target.contentSize.height*5); //- (-target.contentSize.height/2), actualY);
[self addChild:target];
int minDuration = 2.0;
int maxDuration = 4.0;
int rangeDuration = maxDuration - minDuration;
int actualDuration = (arc4random() % rangeDuration) + minDuration;
id actionMove = [CCMoveTo actionWithDuration:actualDuration position:ccp(160,0)];
id actionMoveDone = [CCCallFuncN actionWithTarget:self selector:@selector(spriteMoveFinished:)];
[target runAction:[CCSequence actions:actionMove, actionMoveDone, nil]];
}
上一個:
您好,
我用Ray Wenderlich's code此。我的問題是,如何讓目標在縱向模式下產生在屏幕的頂部,並移動到屏幕的底部。不管我改變什麼,都沒有發生。現在,正如教程所說的那樣,目標從右向左移動。
我想要做的(應該是更具體)是,而不是使目標從屏幕的右側移動到左側,我希望他們從頂部移動到屏幕的底部。(從上到下)。不知何故,代碼告訴目標產生在右側,但我不知道它在哪裏。這是代碼的主要內容,沒有別的可能影響目標的位置。
-(void)addTarget {
CCSprite *target = [CCSprite spriteWithFile:@"dude_jump.png"
rect:CGRectMake(0, 0, 30, 60)];
CGSize winSize = [[CCDirector sharedDirector] winSize];
int minY = target.contentSize.width/2;
int maxY = winSize.width - target.contentSize.width/2;
int rangeY = maxY - minY;
int actualY = (arc4random() % rangeY) + minY;
target.position = ccp(winSize.width + (target.contentSize.width/2), actualY);
[self addChild:target];
int minDuration = 2.0;
int maxDuration = 4.0;
int rangeDuration = maxDuration - minDuration;
int actualDuration = (arc4random() % rangeDuration) + minDuration;
id actionMove = [CCMoveTo actionWithDuration:actualDuration position:ccp(-target.contentSize.width/2, actualY)];
id actionMoveDone = [CCCallFuncN actionWithTarget:self selector:@selector(spriteMoveFinished:)];
[target runAction:[CCSequence actions:actionMove, actionMoveDone, nil]];
}
海僞裝這是怎麼回事? – Will 2010-09-29 11:40:04
感謝您的支持。更好地去除噪音。 :-) – 2010-09-29 14:09:56