嗨,目前我的遊戲正在從fl_food.plist載入fl_gfood.png或fl_bfood.png。這工作正常,但現在我有17個不好的食品項目.png和17個好的食品項目.png。我的問題是如何隨機顯示每個組中的17個項目之一?我能爲sprite文件名做一個通配符嗎?見下面的代碼註釋。還有人建議我可以將.plist文件名加載到一個數組中並隨機選擇一個名稱,這將如何完成。隨機顯示精靈圖像
@implementation Food
+ (void)loadAssets {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
[[FLSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:[AssetHelper getDeviceSpecificFileNameFor:@"fl_food.plist"]];
});
}
- (id)init {
self = [super init];
if (self) {
self.size = CGSizeMake(16 * __HIGHRES_SCALE, 16 * __HIGHRES_SCALE);
self.offset = CGPointMake(8 * __HIGHRES_SCALE, 8 * __HIGHRES_SCALE);
self.removeAfterCollision = YES;
self.collideable = NO;
self.score = 10;
}
return self;
}
- (FLSprite *)sprite {
if(_sprite == nil) {
if(self.score < 10) {
_sprite = [FLSprite spriteWithSpriteFrameName:@"fl_gfood.png"]; // fl_gfood_*.png ... Can I do something like this?
} else {
_sprite = [FLSprite spriteWithSpriteFrameName:@"fl_bfood.png"];
}
}
return _sprite;
}
只是要返回精靈隨機或者根據您想要的任何條件名稱的函數。 – Setrio
@setrio你可以展示並舉例說明如何做到這一點? – acctman
檢查arc4random,用所有圖像名稱構建一個數組,並使用arc4random爲該數組生成idx。只需返回給定的idx – Setrio