Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Не сайты (http://www.flasher.ru/forum/forumdisplay.php?f=82)
-   -   покритикуйте движение машинки (http://www.flasher.ru/forum/showthread.php?t=143910)

mamtn 29.08.2010 09:49

покритикуйте движение машинки
 
Вложений: 1
Код AS1/AS2:

var v:Number = 0;// Cкорость
var vX:Number = 0;//Горизонтальная скорость
var vY:Number = 0;//Вертикальная скорость
var Ug:Number = 0;// Угол поворота машинки вокруг своего центра в радианах
var usk:Number = 0.1;// Ускорение машинки
var KoefTreniya = 0.95;//Коээффициент трения. Действует, если не нажаты клавиши управления машинкой
var speedUp:Number = 0.9;// Скорость разгона (чтобы машинка не двигалась резко с места)
var decay:Number = 0.9;//Константа затухания скорости (действует, когда не нажата клавиша SPACE)
var maxV:Number = 20;//Максимальная скорость машинки
var perX:Number = 300;// Для хранения  в памяти  координат машинки по оси Х
var perY:Number = 300;// Для  хранения  в памяти координат  машинки по оси Y
 
_root.onEnterFrame = function() {        //Вызов функций, выполняющихся при каждой смене кадра
        dvMC();        // вызов функции движения машинки
};
function dvMC() {        // Движение  машинки
        if (Key.isDown(Key.SPACE)) {                //Разгон машинки
                usk += 0.1;
        } else {                // Если клавиша Key.SPACE не нажата, замедление
                usk *= 1-decay;
                if (usk<0.1) {
                        usk = 0.1;
                }
        }
        // Движение вперед
        if (Key.isDown(Key.UP)) {               
                v += usk;
                //Умножаем на скорость разгона, чтобы скорость не менялась резко
                vX = speedUp*v*Math.cos(Ug);
                vY = speedUp*v*Math.sin(Ug);
                // Поворот влево во время движения вперед
                if (Key.isDown(Key.LEFT)) {
                        Ug -= 0.04;
                }
                // Поворот вправо во время движения вперед                         
                if (Key.isDown(Key.RIGHT)) {
                        Ug += 0.04;
                }
        }
        // Движение назад
        if (Key.isDown(Key.DOWN)) {
                v -= usk;
                vX = v*Math.cos(Ug);
                vY = v*Math.sin(Ug);
                // Поворот влево во время заднего хода
                if (Key.isDown(Key.LEFT)) {
                        Ug -= 0.02;
                        // Торможение при заднем повороте
                        vX *= KoefTreniya;
                        vY *= KoefTreniya;
                }
                // Поворот вправо во время заднего хода                       
                if (Key.isDown(Key.RIGHT)) {
                        Ug += 0.02;
                        // Торможение при заднем повороте
                        vX *= KoefTreniya;
                        vY *= KoefTreniya;
                }
        }
        // Если не нажата никакая  клавиша  - торможение
        if (!Key.isDown(Key.DOWN) && !Key.isDown(Key.UP) && !Key.isDown(Key.RIGHT) && !Key.isDown(Key.LEFT)) {
                vX *= KoefTreniya;
                vY *= KoefTreniya;
                v *= KoefTreniya;
        }
        //------------------- Контроль скорости-------------------------------------     
        if (v>=maxV) {
                v = maxV;
        }
        perX += vX;        // Координата машинки  по оси Х
        perY += vY;        // Координата машинки по оси У
        mc._rotation = Ug*180/Math.PI;        // Поворот машинки
        mc._x = perX;
        mc._y = perY;
}


Zebestov 29.08.2010 14:58

главный минус — колеса рулят только пока жмешь вперед/назад. это мешает в полной мере оценить управление. но из того что можно было увидеть — да норм машинка катается =)

mamtn 30.08.2010 22:47

Как они могли рулить, когда их там просто нет!!!!! Издеваетесь?!?!
А почему swf файл не запускается, не подскажете? Мы не местные...

Zebestov 30.08.2010 23:01

тихонечко! сейчас разберемся со всем по порядку ;)

1. "колеса рулят" — управление виртуальными колесами (пабарабану, что они не отрисованы) происходит только во время нажатия вперед/назад. плохо.

2. а почему это swf не запускается?

samana 31.08.2010 00:08

Мне особенно водитель понравился, у него такая прикольная кепочка в шашечку!

mamtn 05.09.2010 23:52

Для Zebestov: Cпасибо, кажется, поняла.
Насчет запуска файла swf -не запускается. Почему-то он стал в формате htm ...
Для samana:Вот как надену ему шапочку с помпончиком, тогда и заносы при движении получатся...

zveryuka 06.09.2010 14:04

Вот вам в помощь - чтобы колеса норм поворачивались http://xitri.com/2008/07/09/flash-pr...ive-a-car.html

TERRORist 06.09.2010 17:16

управление кривое

mamtn 12.09.2010 10:05

для zveryuka: Спасибо за помощь!
для TERRRist: Согласна

tsarapkabel 01.10.2010 15:29

Помимо того, что машинка не поворачивает без газа, надо поменять местами правый и левый поворот когда задом едешь.


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

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