首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IF语句更改图像

使用IF语句更改图像
EN

Stack Overflow用户
提问于 2014-07-13 21:01:40
回答 1查看 728关注 0票数 1

我已经在我的游戏中设置了一个燃料条,但是我试图使用if语句来根据燃料百分比的低来改变条形图。由于某些原因,图像并没有随着百分比的变化而变化。因此,酒吧仍然是满的。这里发生什么事情?

代码语言:javascript
复制
fuelRemaining = 100;
    FuelRemaining.text = [NSString stringWithFormat:@"%i%%", fuelRemaining];
    FuelBar.image = [UIImage imageNamed:@"fuel_bar_100.png"];
    if (fuelRemaining > 90) {
        FuelBar.image = [UIImage imageNamed:@"fuel_bar_100.png"];
    }
    else if (fuelRemaining > 80 && fuelRemaining <= 90) {
        FuelBar.image = [UIImage imageNamed:@"fuel_bar_90.png"];
    }
    else if (fuelRemaining > 70 && fuelRemaining <= 80) {
        FuelBar.image = [UIImage imageNamed:@"fuel_bar_80.png"];
    }
    else if (fuelRemaining > 60 && fuelRemaining <= 70) {
        FuelBar.image = [UIImage imageNamed:@"fuel_bar_70.png"];
    }
    else if (fuelRemaining > 50 && fuelRemaining <= 60) {
        FuelBar.image = [UIImage imageNamed:@"fuel_bar_60.png"];
    }
    else if (fuelRemaining > 40 && fuelRemaining <= 50) {
        FuelBar.image = [UIImage imageNamed:@"fuel_bar_50.png"];
    }
    else if (fuelRemaining > 30 && fuelRemaining <= 40) {
        FuelBar.image = [UIImage imageNamed:@"fuel_bar_40.png"];
    }
    else if (fuelRemaining > 20 && fuelRemaining <= 30) {
        FuelBar.image = [UIImage imageNamed:@"fuel_bar_30.png"];
    }
    else if (fuelRemaining > 10 && fuelRemaining <= 20) {
        FuelBar.image = [UIImage imageNamed:@"fuel_bar_20.png"];
    }
    else if (fuelRemaining > 0 && fuelRemaining <= 10) {
        FuelBar.image = [UIImage imageNamed:@"fuel_bar_10.png"];
    }
    else {
        FuelBar.image = [UIImage imageNamed:@"fuel_bar_0.png"];
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-13 21:16:14

首先,用一些基本的数学来简化它:

代码语言:javascript
复制
int fuelRounded = 10.0 * floor((fuelRemaining/10.0)+0.5);
NSString *fuelImageString = [NSString stringWithFormat:@"fuel_bar_%d.png", fuelRounded];
FuelBar.image = [UIImage imageNamed:fuelImageString];

(根据游戏逻辑和fuelRemaining的可能值,数学可能需要调整。)

第二,在方法顶部将fuelRemaining设置为100。在fuelRemaining更改为其他内容之后,您需要再次设置图像。

例如:

代码语言:javascript
复制
- (void) updateFuelViews {
    FuelRemaining.text = [NSString stringWithFormat:@"%i%%", fuelRemaining];

    int fuelRounded = 10.0 * floor((fuelRemaining/10.0)+0.5);
    NSString *fuelImageString = [NSString stringWithFormat:@"fuel_bar_%d.png", fuelRounded];
    FuelBar.image = [UIImage imageNamed:fuelImageString];
}

然后,每次[self updateFuelViews];更改时都调用fuelRemaining

您可能需要研究键值观察,这将允许您在fuelRemaining更改时自动更新燃料视图。这有点让人头痛,但如果你有很多事情在不断地变化,它可能会让你更容易管理。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24726987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档