计时器
//计时器的存在是需要一个环境,环境就是NSRunLoop
[[NSRunLoop currentRunLoop]run];
-(void)startAttackWithMonster:(Monster *)monster{
_monster = monster;
//计时器,就是死循环
[NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(attackMonster:)
userInfo:nil repeats:YES];
}
/* 时间:表示执行方法的时间间隔 target:执行方法的主体 selector:表示被执行的方法 useInfo:传入的参数 repeats:是否重复 */
-(void)attackMonster:(NSTimer *)timer{
NSLog(@"英雄攻击怪兽");
_monster.curHp -= (self.attackNo - _monster.defenseNo);
self.curHp -= (_monster.attackNo - self.defense);
NSLog(@"英雄当前的血量%f,怪兽当前的血量是%f",self.curHp,_monster.curHp);
if (self.curHp <= 0){
NSLog(@"英雄被打死了");
//停止计时器
[timer invalidate];
}
if (_monster.curHp <= 0){
NSLog(@"怪物被打死啦");
//a += b a=a+b
_curExperienceNo += _monster.experiencesNo;
if (_curExperienceNo >= _levelExperienceNo){
NSLog(@"爸爸你升级啦!");
}
_curExperienceNo -= _curExperienceNo - _levelExperienceNo;
self.level++;
//_level++ 没用到设置器的话只等级增加 攻击力什么的都不会增加
NSLog(@"英雄的等级为%ld,英雄的攻击力为%f,英雄的防御力为:%f",self.level,self.attackNo,self.defense);
停止计时器
[timer invalidate];
}
}