Сегодня я расскажу, как сделать простенький класс для измерения FPS. Там все просто, как 1+1, пишу просто от нечего делать.
Итак, Как он работает? Все очень просто. Каждый фрейм к переменной прибавляется 1. Каждую секунду по таймеру эта переменная приравнивается к нулю и ее значение выводится на экран.
Впере-е-ед!
Шаг 1. Создаем класс FPSInspector. У меня он называется SBFPSInspector, но это не суть важно. Шаг 2. Создаем переменные
Code
private var fps:int; //Собственно, FPS private var fpsMeterTF:TextField = new TextField(); //TextField, чтобы выводить FPS на экран. private var timer:Timer = new Timer(1000, 0);
//Тот-самый-таймер. Шаг 3. Создаем функции onTimerTick и onEnterFrame. Так, как они должны быть повешены на событие, оба должны иметь один аргумент типа Event.
onTimerTick:
Code
private function onTimerTick(e:Event):void { fpsMeterTF.text = "FPS: " + String(fps);//Выводит FPS на экран fpsMeterTF.textColor = 0xFF0000;//Меняет цвет на красный, если FPS меньше 10. if(fps>10) { fpsMeterTF.textColor = 0xFFFF00; //Меняет цвет на желтый, если FPS больше 10, но меньше 25 } if(fps>25) { fpsMeterTF.textColor = 0x33FF00; //Меняет цвет на зеленый, если FPS больше 25. } fps = 0; }
onEnterFrame:
Code
private function onEnterFrame(e:Event):void { fps++; //+1 к FPS. }
Как видите, все очень просто. Шаг 4. Функция инициализации
Code
this.addChild(fpsMeterTF); //Добавляет TextField fpsMeterTF.textColor = 0xFFFFFF; //Устанавливает изначальный цвет на белый fpsMeterTF.antiAliasType = "Use device fonts"; //Устанавливает Anti-Alias fd psMeterTF.width = 96; //Ширина timer.addEventListener(TimerEvent.TIMER, onTimerTick); //Листенер для таймера timer.start(); //Старт таймера stage.addEventListener(Event .ENTER_FRAME, onEnterFrame); //Листенер для смены кадра
Шаг 5. Привязываем к муви-клипу и пихаем на сцену/добавляем сами кодом.
public class SBFPSInspector extends MovieClip { private var fps:int; private var fpsMeterTF:TextField = new TextField(); private var timer:Timer = new Timer(1000, 0);
GIMP (лагает, ужасно глючный, но мощный и поддерживает плагин normalmappinga для Этана)
Врать не надо. Если у тебя корень рук находится в заднице - гимп тут не причем. У меня под убунтой работает просто прекрасно. Good отстой, Neutral - параша, Evil, хой, победа наша!
ну иногда особо разницы не видно аи или человек, есть такой народ который молчком играет
В любом случае, диаблу ММО это не делает. А майнкрафт какие-то плешивые плагины точно рпг никогда не сделают. Хоть ты тресни. Good отстой, Neutral - параша, Evil, хой, победа наша!
Hank, разницы по сути нет. Все одинаково удобные Вроде есть еще какой-то готовый сервер от Adobe специально для флеша. Good отстой, Neutral - параша, Evil, хой, победа наша!
3) Если не так объясните "КАК И НА ЧЁМ ЭТО ДЕЛАЕТСЯ"
Игра пошаговая? Простейший вариант - сервер на PHP, клиент на Flash. Игра реалтайм? Сервер на чем угодно, клиент на Flash. Good отстой, Neutral - параша, Evil, хой, победа наша!
Я вообще из онлайн-игр признаю только WC3 и UT. А мморпг - скучный идиотизм. Была бы в них хоть боевка интересная, может бы и играл. А так - кликнул - бьешь-бьешь-бьешь - убил - скучно. Good отстой, Neutral - параша, Evil, хой, победа наша!