作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为 IOS 开发一款 sprite-kit 游戏。在我的游戏中,我每 5 秒就会产生碎片,然后像障碍物一样向玩家移动。我为我想使用的碎片制作了一系列图像,但似乎无法弄清楚如何在游戏中随机生成它们?
这是我的代码:
-(void)spawnDebris {
SKSpriteNode * debris = [SKSpriteNode spriteNodeWithTexture:[SKTexture textureWithImageNamed:@"debrisPiece1.png"] size:CGSizeMake(40, 40)];
debris.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:10];
debris.physicsBody.allowsRotation = NO; //might say yes
debris.physicsBody.categoryBitMask = CollisionDebris;
debris.position = CGPointMake(50, 50);
[_debris addObject:debris];
[self addChild:debris];
//next Spawn:
[self runAction:[SKAction sequence:@[
[SKAction waitForDuration:5],
[SKAction performSelector:@selector(spawnDebris) onTarget:self],
]]];
}
父“_debris
”是一个 NSMutableArray * _debris
。我将如何着手编写它以便我也可以生成 debrisPiece 2 或 debrisPiece 3(碎片图像)?我是否在 spriteNodeWithTexture:@[]
中创建另一个数组?这可能吗?
谢谢。
最佳答案
您可以使用 arc4random() 函数生成随机数,因此您可以这样做:
NSString *base = @"debrisPiece";
uint32_t num = arc4random_uniform(number_of_debris_images) + 1; //Generate a random number
NSString *textureName = [base stringByAppendingFormat:@"%d.png", num];
SKSpriteNode * debris = [SKSpriteNode spriteNodeWithTexture:[SKTexture textureWithImageNamed:textureName] size:CGSizeMake(40, 40)];
//...
关于ios - 有没有办法让每次生成元素时都出现随机图像? ( objective-C ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22751262/
我是一名优秀的程序员,十分优秀!