randomPointメソッドに従わないNSMutableArray(コインという名前)があります。iOSシミュレーターに行くと、コインは表示されず(画像がないため)、ランダムに割り当てられたポイントではなく、画面の中央に留まります。これが新しいコインを作るためのものです:
if ([coins count] == 0){
CGSize windowSize = [CCDirector sharedDirector].winSize;
CGPoint randomPointOnScreen = ccp((float)(arc4random() % 100) / 100 * windowSize.width, (float)(arc4random() % 100) / 100 * windowSize.height);
randomCoinType = arc4random() % kNumberOfCoinTypes + 1; // I have this because my files are named like "coin.1.png" and such
kNumberOfCoinTypesは10として定義されており、1から10までの数値が得られます。これは、コインを作成する必要がある対応するボイドです。
-(void)createCoinsAt:(CGPoint)position withCointype:(int)type{
NSString *imageFile;
switch (type) {
case 1:
imageFile = @"coin.1.png";
break;
case 2:
imageFile = @"coin.2.png";
break;
case 9:
case 3:
imageFile = @"coin.3.png";
break;
case 7:
case 8:
default:
case 4:
imageFile = @"coin.4.png";
break;
case 5:
imageFile = @"coin.5.png";
break;
case 6:
imageFile = @"coin.6.png";
break;
}
Coins *c = [Coins spriteWithFile:imageFile];
//Coins *c = [Coins spriteWithFile:[NSString stringWithFormat:@"coin.%d.png", arc4random() % 5 + 1 ]];
c.type = type;
c.position = position;
c.velocity = ccp(0,0);
[coins addObject:c];
[self addChild:c z:2];
}
ある番号を別の番号より頻繁に表示する方法がわからないため、1つのコマンドの後に複数のケースがあります。