2014-01-09 4 views
0

Я программирую игру в стиле тамагоцци, и мне нужно здоровье один раз в секунду. У меня уже есть номер счета, который изменяется, когда вы кормите цель. Я был бы невероятно благодарен, если бы кто-то мог дать мне руку на редактирование текущего кода, который у меня есть на данный момент, чтобы уменьшить здоровье на 1 секунду. Вот мой код, если кто-то должен его увидеть;Снижение здоровья на 1 раз в секунду

 health=100 
     txtform.font = "Arial"; 
     txtform.color = 0x000000; 
     txtform.size = 24; 
     txtform.bold = true; 
     healthdisplay.defaultTextFormat=txtform; 
     addChild(healthdisplay); 
     healthdisplay.text=("Health: " + health) 
     healthdisplay.x=75 
     healthdisplay.y=-20 
     healthdisplay.autoSize=TextFieldAutoSize.CENTER; 

    } 

    public function IncreaseHealth(points:int){ 
     health+=points 
     healthdisplay.text=("Health: " + health) 
     healthdisplay.defaultTextFormat=txtform; 
    } 

ответ

0

Сделайте функцию DecreaseHealth(), которую вы вызываете каждую секунду. Что-то вроде:

var timer:Timer = new Timer(1000); // 1 second = 1000 milliseconds. 
timer.addEventListener(TimerEvent.TIMER, DecreaseHealth); 

timer.start(); 

Где DecreaseHealth() имеет следующую подпись:

function DecreaseHealth(event:TimerEvent):void 
{ 
    health -= 1; 
    // Do printing or whatever else here. 
} 
+0

спасибо за ответ. Вероятно, это со мной совсем не обращает внимания, но после ввода кода я получаю ошибку компилятора «Доступ, возможно, неопределенного свойства TIMER через ссылку со статическим типом класса». – user3179788

+0

@ user3179788 Попробуйте образец кода сейчас, я уверен, он жаловался, потому что у меня был 'Timer.TIMER' вместо' TimerEvent.TIMER'. – Keeler

+0

Ну, это соответствует теперь, спасибо! Я добавил его к моей функции аватара, чтобы попытаться уменьшить значение Здравоохранения, но не удачи. Я получаю вывод как ArgumentError: Ошибка # 1063: несоответствие счетчика аргументов для Avatar/DecreaseHealth(). Ожидаемый 0, получил 1. \t at flash.utils :: Timer/_timerDispatch() \t at flash.utils :: Timer/tick() Любые идеи? – user3179788

Смежные вопросы