Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как разделить время на 4 и более частей (http://www.flasher.ru/forum/showthread.php?t=145094)

Andrej 29.09.2010 11:55

Как разделить время на 4 и более частей
 
Сдраствуйте уважаемые мастера.
Возможно не совсем правельно тему называю.Не знаю, как точно спросить.Проблема такая.Например есть переменная по умолчанию равная 0.
Код AS3:

var time:Number=0;

Далее мы ее плюсуем в функции ENTER_FRAME
Код AS3:

function timeplus(e:Event):void
                {
 
                        times++;
 
if (time ==1000){то останавливаем и что либо делаем}
}


Далее в другой функции исходя из значения time например добовляем очки

Код AS3:

function rezultat(e:Event):void
                {
                if(time<=500  ){score+=200;}
    if(time>=501){score+=100;}        //либо можно else{score+=100;}
 
}

Я разделил на 2 возможных результата.Вопрос как разделить на больше например на 4,что то не могу сообразить.Спасибо.С уважением Андрей.

etc 29.09.2010 12:03

Заголовок темы доставляет, определенно.

А что вам мешает написать кучу if/else if? Или else if не проходили ещё?

Andrej 29.09.2010 13:06

Почему не проходили :)Ясно спасибо.Я что то подумал,что они начнут путаться.Вобщем глупый вопрос.Спасибо.:D

drnet_ua 29.09.2010 13:42

как вариант:

Код AS3:

protected function ScoreTimeBonus(myTime:Number):Number {
            var timeRange:Arraynew Array(100, 200, 300, 400, 500, 600, 700, 800, 900, 1000);
            var scoreBonus:Array = new Array(  11050, 100, 150, 225, 300, 450, 500550);
 
            var i:Number = 0;
 
            while ((myTime > timeRange[i]) && (i<timeRange.length)) { i++ }
 
            return scoreBonus[i];
 
        }

Код AS3:

function rezultat(e:Event):void
        {
  score += ScoreTimeBonus(time);
}


mikhailk 29.09.2010 15:38

единственно, не знаю, какие цели преследуются, но фрагмент кода, где что-то плюсуется по ENTER_FRAME, будет работать непредсказуемо.

надо быть готовым к тому, что у одного пользователя переменная, в которой копится результат, достигнет 100 после 3-й секунды, а у другого - после 5-й (а то и после 10-й)

Andrej 29.09.2010 16:36

Спасибо ребят за советы.

Добавлено через 23 минуты
Цитата:

Сообщение от drnet_ua (Сообщение 939391)
как вариант:

Код AS3:

protected function ScoreTimeBonus(myTime:Number):Number {
            var timeRange:Arraynew Array(100, 200, 300, 400, 500, 600, 700, 800, 900, 1000);
            var scoreBonus:Array = new Array(  11050, 100, 150, 225, 300, 450, 500550);
 
            var i:Number = 0;
 
            while ((myTime > timeRange[i]) && (i<timeRange.length)) { i++ }
 
            return scoreBonus[i];
 
        }

Код AS3:

function rezultat(e:Event):void
        {
  score += ScoreTimeBonus(time);
}



protected function ScoreTimeBonus(myTime:Number):Number

А как правельно ей слушатель добавить,пока еще не использовал такую .Спасибо.

AndreyKlimov592 29.09.2010 17:47

Замечательно!

drnet_ua 29.09.2010 18:17

никак, "protected" вычеркни :)

или так:

Код AS3:

function rezultat(e:Event):void {
            var timeRange:Arraynew Array(100, 200, 300, 400, 500, 600, 700, 800, 900, 1000);
            var scoreBonus:Array = new Array(  11050, 100, 150, 225, 300, 450, 500550);
 
            var i:Number = 0;
 
            while ((time > timeRange[i]) && (i<timeRange.length)) { i++ }
 
            score += scoreBonus[i];
}


Andrej 29.09.2010 22:12

drnet_ua Спасибо.

VovanDymov908 08.10.2010 16:41

все равно не чего не понял (


Часовой пояс GMT +4, время: 19:25.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.