Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Движение машины. (http://www.flasher.ru/forum/showthread.php?t=90486)

Led_Zeppelin 11.01.2007 23:08

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

Aziz Zaynutdinoff 11.01.2007 23:09

дальше что?..
Не вижу ни одного вопроса...
Цитата:

Я хочу построить самое большое в мире здание

Led_Zeppelin 11.01.2007 23:11

я незнаю скрипта движения машины

Aziz Zaynutdinoff 11.01.2007 23:13

Код:

function move(car_mc:MovieClip, __x:Number, __y:Number):Void
{
    car_mc._x += __x;
    car_mc._y += __y;
}

где:
car_mc: передвигаемый объект
__x: смещение по оси OX
__y: смещение по оси OY

Led_Zeppelin 11.01.2007 23:24

можно по подробние, я навичёк в этом деле

D12 12.01.2007 00:26

Все заисит от того что ты задумал =) мы ведь не телепаты =) хотя если так дальше пойдет дар начнет уже проявлятся : )
начнем пожалуй =)


моно сделать так :

Код:

this.createEmptyMovieClip("mc", 1);
with (this.mc) {
        lineStyle(2, 0x000000, 100);
        beginFill(0x6633CC);
        moveTo(-25, -25);
        lineTo(-25, -25);
        lineTo(25, -25);
        lineTo(25, 25);
        lineTo(-25, 25);
        endFill();
}
this.mc._x = 275;
this.mc._y = 200;
this.mc._rotation =- 90;
this.mc.onEnterFrame = function() {
        this.zz = 4*Math.cos(this._rotation*(Math.PI/180));
        this.zzz = 4*Math.sin(this._rotation*(Math.PI/180));
        if (Key.isDown(Key.RIGHT)) {
                this._rotation += 3;
        }
        if (Key.isDown(Key.LEFT)) {
                this._rotation -= 3;
        }
        if (Key.isDown(Key.UP)) {
                this._y += this.zzz;
                this._x += this.zz;
        }
        if (Key.isDown(Key.DOWN)) {
                this._y -= this.zzz/2;
                this._x -= this.zz/2;
        }
};


GALERA 12.01.2007 14:58

ого ... а можно хотя бы какие нить комменты возле каждой строчки кода ??? а то телепатами будем мы - новички! ))

Led_Zeppelin 12.01.2007 15:22

Нашёл скрипт он всё работает вот только не пойму, почему он не едет назад моя машина и если вам не трудно можете, объяснит что к чему.

Код:

onClipEvent (load) {
        this.dam = 0;
        this.br = 0.06;
        var MAXspeed = 5;
        var frontMAXspeed = -1;
        this.a = 0.01;
        this.b = 0.02;
        var aksel_koeff = a+b;
        var BreakPathKoeff = 0.005;
        var Akseleration = 0;
        this.nosz._alpha = 0;
        this._rotation = 90;
        this.fuel = 80;
        this.x0 = 100;
        this.nos = 0;
        this.ch = 0;
}
onClipEvent (enterFrame) {
        if (this.Akseleration>0) {
                if (Key.isDown(Key.RIGHT)) {
                        if (this.lw._rotation<35) {
                                this.lw._rotation++;
                                this.rw._rotation++;
                        }
                        if (Akseleration>0) {
                                this._rotation += afront;
                        } else if (Akseleration<0) {
                                this.arear = math.atan((Akseleration-1)*-Akseleration*2.4);
                                this._rotation += arear;
                        }
                } else if (Key.isDown(Key.LEFT)) {
                        if (this.lw._rotation>-35) {
                                this.lw._rotation--;
                                this.rw._rotation--;
                        }
                        if (Akseleration>0) {
                                this._rotation -= afront;
                        } else if (Akseleration<0) {
                                this.arear = math.atan((Akseleration-1)*-Akseleration*2.4);
                                this._rotation -= arear;
                        }
                } else if (!Key.isDown(Key.RIGHT) && !Key.isDown(Key.LEFT)) {
                        this.lw._rotation = 0;
                        this.rw._rotation = 0;
                }
                var brake_koeff = br;
        } else if (Akseleration<0) {
                var brake_koeff = -br*2;
        }
        this._x = this.vx+this.x0;
        this._y = this.vy+this.x0;
        if (Key.isDown(Key.ENTER)) {
                if (this.Akseleration<3) {
                        this.dl.play();
                        this.ch = 1;
                        point = new Object();
                        point.x = mc3._x;
                        point.y = mc3._y;
                        localToGlobal(point);
                        _root.man._x = point.x;
                        _root.man._y = point.y;
                        _root.mcc._x = point.x;
                        _root.mcc._y = point.y;
                }
        }
        if (this.hitTest(_root.w)) {
                _root.ma._alpha = 100;
                _root.ma._x = _x;
                _root.ma._y = _y;
                _root.ma._rotation = _rotation;
        } else if (this.hitTest(_root.p)) {
                _root.ma._alpha = 100;
                _root.ma._x = _x;
                _root.ma._y = _y;
                _root.ma._rotation = _rotation;
        } else {
                if (_root.ma._alpha>0) {
                        _root.ma._alpha -= 5;
                }
        }
        this.vx += akseleration*math.sin(this._rotation*(math.pi/180));
        this.vy -= akseleration*math.cos(this._rotation*(math.pi/180));
        this.afront = math.atan((akseleration+1)*akseleration*2.4);
        if (Key.isDown(Key.UP)) {
                if (this.key.isdown(Key.SHIFT) && this.nos>0) {
                        this.nosz._alpha = 100;
                        this.nos -= 1;
                        if (this.Akseleration<this.maxspeed) {
                                this.Aksel_koeff = a+b*1.5;
                        }
                } else {
                        this.Aksel_koeff = a+b;
                        this.nosz._alpha = 0;
                }
                if (this.Akseleration<this.MAXSpeed) {
                        this.Akseleration += aksel_koeff;
                }
        } else if (Key.isDown(Key.DOWN)) {
                this.Akseleration -= brake_koeff;
        }
        if (!Key.isDown(Key.UP) && !Key.isDown(Key.DOWN)) {
                if (this.Akseleration>0) {
                        this.Akseleration -= BreakPathKoeff;
                        if (this.Akseleration<0) {
                                this.Akseleration = 0;
                        }
                } else if (this.Akseleration<0) {
                        this.Akseleration += BreakPathKoeff;
                        if (this.Akseleration>0.5) {
                                this.Akseleration = 0;
                        }
                }
                if (Key.isDown(Key.SPACE)) {
                        this.Akseleration /= 1.06;
                }
        }
}

[color="White"][iNils: Для оформления своего кода, надо использовать теги [code][/code], а не [noparse][quote][/code][/quote].][/color]

iNils 12.01.2007 19:52

2 D12: Опять zzz...?

D12 12.01.2007 22:12

Код:

//////////////////////////////////
/////создаём машинку =)///////////
//////////////////////////////////
this.createEmptyMovieClip("mc", 1);//здесь мы создаенм муви-клип оболочку, это не так обязательно просто изврат =) вы можете использовать свой обьект нарисованный в мувике дав ему на сцене имя //"mc"
with (this.mc) {//здесь мы рисуем то что будет в нашей оболочке муви-клипе с именем "mc"
        lineStyle(2, 0x000000, 100);
        beginFill(0x6633CC);
        moveTo(-25, -25);
        lineTo(-25, -25);
        lineTo(25, -25);
        lineTo(25, 25);
        lineTo(-25, 25);
        endFill();
}
///////////////////////////////////
///////задаем координаты на поле///
///////////////////////////////////
this.mc._x = 275;//здесь задаем первоначальные координаты расположения на по оси икс
this.mc._y = 200;//здесь по игрику
this.mc._rotation = -90;//этой командой мы задаем поворот нашей манинки если мы этого несделаем то она может ездить боком =) если машинка нарисована не програмно это необязательно развернуть можно вручную
////////////////////////////////////
////////задаём управление///////////
////////////////////////////////////
this.mc.onEnterFrame = function() {//этим мы создаем блок в котором будем писать команды которые будет выполнять наша машинка
        if (Key.isDown(Key.RIGHT)) {//этой командой мы крутим машинку вправо
                this._rotation += 3;//_rotation значит вращать
        }
        if (Key.isDown(Key.LEFT)) {//этой командай задаем поворот влево
                this._rotation -= 3;
        }
        if (Key.isDown(Key.UP)) {//задаем движение вперед
                this._y += 4*Math.sin(this._rotation*(Math.PI/180));//вычисляем синус
                this._x += 4*Math.cos(this._rotation*(Math.PI/180));//вычисляем косинус угла поворота машинки переводя его в радианы,так же обратите внимание число 4 отвечает за величену радиуса поворота тоесть тем выше число тем больше радиус
        }
        if (Key.isDown(Key.DOWN)) {//задаем движение назад при этом скорость уменьшаем в 2 раза
                this._y -= (4*Math.sin(this._rotation*(Math.PI/180)))/2;
                this._x -= (4*Math.cos(this._rotation*(Math.PI/180)))/2;
        }
};

P.S. Если есть вопросы спрашивайте, вообщето таких машинок полно в интернете достаточно по поиску полазит и на этом форуме на моей память я видел с пяток различных примеров вот например http://www.script.ukrhosting.com/lab_27_11_02_car.php

P.S.2 За "zz" прошу прощения вы неподуйте что я кинулся опять во все тяжкие, просто я храню различные коды мои и чужие в текстовых документах вчера просто тупо скопировал .

Kikasso 13.01.2007 04:37

Цитата:

Сообщение от D12
P.S.2 За "zz" прошу прощения вы неподуйте что я кинулся опять во все тяжкие, просто я храню различные коды мои и чужие в текстовых документах вчера просто тупо скопировал .

нет не простим - zz это для мопеда, для машинки надо писать uu

D12 14.01.2007 00:56

Вложений: 2
а вот цеплятся неприлично ... вот =)

"ПЛЕННЫХ НЕБРАТЬ =)" The Game :)Вложение 16224
А вообще если кому интересно то код для оного обьекта будет таким :

Код:

border_rotation = 0;
Time_move = -0.01;
Control_turn = 1;
to_speed_up_turn = 0;
this.createEmptyMovieClip("mc", 1);
with (this.mc) {
        lineStyle(2, 0x000000, 100);
        beginFill(0x6633CC);
        moveTo(-5, -5);
        lineTo(-5, -5);
        lineTo(5, -5);
        lineTo(5, 5);
        lineTo(-5, 5);
        endFill();
}
this.mc._x = 275;
this.mc._y = 200;
this.mc._rotation = -90;
this.mc.onEnterFrame = function() {
        with (this) {
                Time_move += 0.1;
                if (Control_turn == 1) {
                        if (Time_move>=border_rotation) {
                                border_rotation = int(Math.random()*4);
                                Time_move = 0;
                        }
                        if (to_speed_up_turn<border_rotation) {
                                to_speed_up_turn += 0.5;
                        }
                        if (to_speed_up_turn>border_rotation) {
                                to_speed_up_turn -= 0.5;
                        }
                        _rotation += (to_speed_up_turn*2);
                        if (border_rotation == 2) {
                                Control_turn = 2;
                        }
                }
                //             
                if (Control_turn == 2) {
                        if (Time_move>=border_rotation) {
                                border_rotation = int(Math.random()*4);
                                Time_move = 0;
                        }
                        if (to_speed_up_turn<border_rotation) {
                                to_speed_up_turn += 0.5;
                        }
                        if (to_speed_up_turn>border_rotation) {
                                to_speed_up_turn -= 0.5;
                        }
                        _rotation -= (to_speed_up_turn*2);
                        if (border_rotation == 1) {
                                Control_turn = 1;
                        }
                }
                _y += 4*Math.sin(this._rotation*(Math.PI/180));
                _x += 4*Math.cos(this._rotation*(Math.PI/180));
                //////////////////////////// 
                if (_x<0) {
                        _x = 550;
                }
                if (_x>550) {
                        _x = 0;
                }
                if (_y<0) {
                        _y = 400;
                }
                if (_y>400) {
                        _y = 0;
                }
        }
};


Kikasso 14.01.2007 19:15

Цитата:

Сообщение от D12
а вот цеплятся неприлично ... вот =)

Простите пожалуйста уважаемый я больше не буду.:o

iNils 14.01.2007 19:23

Цитата:

Сообщение от D12
а вот цеплятся неприлично ... вот =)

"ПЛЕННЫХ НЕБРАТЬ =)" The Game :)

У меня одно животное не убивается, а зависает. Или оно на клей наступило?

D12 14.01.2007 21:21

Цитата:

У меня одно животное не убивается, а зависает. Или оно на клей наступило?
Бфывает =)
Ребят это просто "шарж" юмор на юмор =) если обидел прошу прощения неберите близко к сердцу : )

Kikasso 14.01.2007 21:36

Цитата:

Сообщение от D12
Бфывает =)
Ребят это просто "шарж" юмор на юмор =) если обидел прошу прощения неберите близко к сердцу : )

http://www.flasher.ru/forum/showthread.php?t=90590
Какой-какой говорите у вас адрес?


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

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