Obj-C创造了战斗场景?

时间:2015-06-19 01:21:29

标签: ios objective-c

这对我来说已经有一个问题差不多一个星期所以我想我会在这里发帖求助。我还在学习Obj-C,所以请耐心等待。生病了我的代码,然后解释我正在尝试做什么:

- (void) resetStats {
self.heroHpLabel.text = [NSString stringWithFormat:@"0"];
self.heroAtkLabel.text = [NSString stringWithFormat:@"0"];
self.heroDefLabel.text = [NSString stringWithFormat:@"0"];
self.heroSpdLabel.text = [NSString stringWithFormat:@"0"];
self.enemyHpLabel.text = [NSString stringWithFormat:@"0"];
self.enemyAtkLabel.text = [NSString stringWithFormat:@"0"];
self.enemyDefLabel.text = [NSString stringWithFormat:@"0"];
self.enemySpdLabel.text = [NSString stringWithFormat:@"0"];
}

- (void) setHeroStats {
self.heroHpLabel.text = [NSString stringWithFormat:@"%i", heroHp];
self.heroAtkLabel.text = [NSString stringWithFormat:@"%i", heroAtk];
self.heroDefLabel.text = [NSString stringWithFormat:@"%i", heroDef];
self.heroSpdLabel.text = [NSString stringWithFormat:@"%i", heroSpd];
}

- (void) enemy1 {
enemyHp = 100;
enemyAtk = 1;
enemyDef = 0;
enemySpd = 5;
int enemy1Hp;
enemy1Hp = enemyHp;
self.enemyHpLabel.text = [NSString stringWithFormat:@"%i", enemyHp];
self.enemyAtkLabel.text = [NSString stringWithFormat:@"%i", enemyAtk];
self.enemyDefLabel.text = [NSString stringWithFormat:@"%i", enemyDef];
self.enemySpdLabel.text = [NSString stringWithFormat:@"%i", enemySpd];
enemy1Alive = YES;
if (enemyHp <= 0) {
    NSLog(@"the enemy is dead");
    [self resetStats];
}
}


- (IBAction)fight:(id)sender {
if (battleActive == NO) {
    self.fightOutlet.hidden = YES;
    [self setHeroStats];
    [self enemy1];
    battleActive = YES;
    if (heroHp <= 0) {
        battleActive = NO;
        self.fightOutlet.hidden = NO;
        [self resetStats];
    }
} else if (battleActive == YES)
    useless = 0;

}

所以,解释这个烂摊子。我想要做的是创造一个非常简单的“战斗”场景,其中英雄将与4种不同的统计数据对抗敌人。当我按下“战斗按钮”(战斗动作)VC上的标签(没有足够的代表发布图像)更新,以显示产生Hp,Atk,Def,Spd的英雄和敌人的统计数据。

我要做的是让它如果敌人的生命值为0或更低,那么敌人1将停止运行并且敌人2将被调用,这将相应地改变所有敌人的统计数据(敌人2尚未制造)然而,因为我坚持下一部分)我无法弄清楚要做的是让敌人受到伤害(出于学习原因并保持简单,我已经制作了一个可以带走100的按钮生命值)。

示例因为我很困惑只写这个:

用户按下“战斗”按钮

统计标签会相应更新

用户按下一个按钮,对敌人造成的伤害等于英雄的攻击减去敌人的防御。

当敌人的生命值<= 0时,敌人的统计数据将更新为敌人2的统计数据

这个循环将继续,直到英雄的健康状况<= 0(英雄攻击后,敌人将攻击,除非它被所述攻击杀死)当英雄死亡时,所有属性将被重置为“0”并且它可以再做一次。

就像我说的那样,我是新人,并且已经坚持了一段时间,所以如果这很简单,我道歉。

由于

1 个答案:

答案 0 :(得分:1)

首先你应该让你的问题更具体,例如:怪物没有消失,游戏没有结束等等。 我没有真正阅读你的代码,但我认为你应该学习如何首先使用类而不是只使用函数。 **顺便说一句,您的代码不起作用,因为您只更改标签的文本而不是这些实例的实际VALUE ** 此外,每次调用该函数时,重置敌人的hp时,敌人的功能永远不会起作用。 为怪物创建一个类,为英雄创建另一个类,至少你的代码可以不那么杂乱和可读。