таймер отображения действий - PullRequest
0 голосов
/ 03 июня 2010

хорошо, так что я использую настоящий базовый код для небольшой игры, и у меня есть таймер, настроенный на одну комнату, и я не могу заставить его отображаться в комнате для финальных игр, пожалуйста, помогите?

это код, который я использовал

var gameStartTime:uint;
var gameTime:uint;

var gameTimeField:TextField;

gameTimeField = new TextField();
gameTimeField.x = 900;
gameTimeField.y = 50;


addChild(gameTimeField);

gameStartTime = getTimer();
gameTime = 0;

addEventListener(Event.ENTER_FRAME,showTime);

function showTime(event:Event) 
{gameTime = getTimer()-gameStartTime;
gameTimeField.text = "Time: "+clockTime(gameTime);
}
function clockTime(ms:int)
{
    var seconds:int = Math.floor(ms/100);
    var minutes:int = Math.floor(seconds/60);
    seconds -= minutes*60;

    var timeString:String = minutes+":"+String(seconds+100).substr(1,2);

    return timeString;
}

1 Ответ

0 голосов
/ 04 июня 2010

Если весь ваш код происходит на временной шкале одного мувиклипа, вы можете сохранить gameTime как элемент мувиклипа, а не на временной шкале. Это возможно, так как MovieClip является «открытым» классом, он позволяет вам добавлять члены (переменные, функции) к его экземплярам.

так вместо

var gameTime:uint;
gameTime = getTimer()-gameStartTime;

Вы должны использовать 'this' для ссылки на текущий мувиклип, поэтому используйте:

this.gameTime = getTimer() - gameStartTime;

теперь вы можете ссылаться на this.gameTime в других кадрах вашего мувиклипа, чтобы прочитать значение.

В общем, я бы не советовал программировать свой игровой код следующим образом - когда ваш код начинает расти, лучше добавить фактический файл, содержащий код, в противном случае вы быстро потеряете информацию о том, где находится, прочитайте http://www.adobe.com/devnet/flash/quickstart/external_files_as3/ для быстрого ознакомления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...