Avatar billede madsringblom Nybegynder
27. februar 2005 - 21:52 Der er 3 kommentarer og
1 løsning

acceleration til min bil!

Hej Folkens!
Jeg er igang med at lave et simpelt spil i flash og har lavet et script der skal få en bil til at køre ved hjælp af piletasterne.

scriptet ser således ud:

// -------- car move script
stop();
car.carHor = 0;
car.carVer = 5;
car.frame = 1;
car.speed = 1;
function myCarMove() {
    car.onEnterFrame = function(){
        if (Key.isDown(Key.LEFT)) {
            if (car.frame >= 1 && car.frame <= 5){
                car.frame += 1;
                car.carHor += car.speed;
                car.carVer -= car.speed;
                car.gotoAndStop(car.frame);

            }
            else if (car.frame >= 6 && car.frame <= 10){
                car.frame += 1;
                car.carHor -= car.speed;
                car.carVer -= car.speed;
                car.gotoAndStop(car.frame);
            }
            else if (car.frame >= 11 && car.frame <= 15){
                car.frame += 1;
                car.carHor -= car.speed;
                car.carVer += car.speed;
                car.gotoAndStop(car.frame);
            }
            else if (car.frame >= 16 && car.frame < 20){
                car.frame += 1;
                car.carHor += car.speed;
                car.carVer += car.speed;
                car.gotoAndStop(car.frame);
            }
            else if (car.frame = 20){
                car.frame = 1;
                car.carHor += car.speed;
                car.carVer += car.speed;
                car.gotoAndStop(car.frame);

            }
        }
        if (Key.isDown(Key.RIGHT)) {
            if (car.frame >= 2 && car.frame <= 6){
                car.frame -= 1;
                car.carHor -= car.speed;
                car.carVer += car.speed;
                car.gotoAndStop(car.frame);

            }
            else if (car.frame >= 7 && car.frame <= 11){
                car.frame -= 1;
                car.carHor += car.speed;
                car.carVer += car.speed;
                car.gotoAndStop(car.frame);
            }
            else if (car.frame >= 12 && car.frame <= 16){
                car.frame -= 1;
                car.carHor += car.speed;
                car.carVer -= car.speed;
                car.gotoAndStop(car.frame);
            }
            else if (car.frame >= 17 && car.frame <= 20){
                car.frame -= 1;
                car.carHor -= car.speed;
                car.carVer -= car.speed;
                car.gotoAndStop(car.frame);
            }
            else if (car.frame = 1){
                car.frame = 20;
                car.carHor -= car.speed;
                car.carVer -= car.speed;
                car.gotoAndStop(car.frame);

            }
            trace("--------------------");
            trace("LEFT  " + car.carHor);
            trace("UP    " + car.carVer);
            trace("FRAME  " + car.frame);
        }
       
        if (Key.isDown(Key.UP)) {
            car._y -= car.carVer;
            car._x -= car.carHor;
        }

    }
}

var myListener = new Object();
myListener.onKeyDown = myCarMove;
Key.addListener( myListener );


//-------------hittest script

onEnterFrame = function(){
    if (_root.car.hitTest(_root.block1) || _root.car.hitTest(_root.block2) || _root.car.hitTest(_root.block3) || _root.car.hitTest(_root.block4) || _root.car.hitTest(_root.block5) || _root.car.hitTest(_root.block6) || _root.car.hitTest(_root.block7)){
        trace("hit");
    car._x += car.carHor * 3;
    car._y += car.carVer * 3;
    _global.Behaviors.Sound.bounce.start(0,1);
    }
}

______________________________________________________
______________________________________________________

Du kan se et eksempel på www.palermosurf.dk/bil/bil.html

mit problem er at jeg gerne vil have tilføjet acceleration til min bil men ikke har matematisk sans nok til at se hvordan jeg skal kringle den ind i mit script.

På forhånd tak for alt hjælp !
Avatar billede madsringblom Nybegynder
28. februar 2005 - 12:17 #1
Ups Nu virker linket !!!

PS.  ved godt det er lidt meget kode men det er mest gentagelser :)
Avatar billede madsringblom Nybegynder
28. februar 2005 - 12:18 #2
du skal lige klikke på flash objektet for at få det til at virke!
Avatar billede madsringblom Nybegynder
16. marts 2005 - 18:05 #3
Nåå ikke meget aktivitet her! men efter et kig i gamle matematik bøger og et kompromis med hensyn til 3D effekten er jeg selv kommet frem til en løsning!

her er det færdige script som ligger i filmens første frame!

stop();
car.origSpeed = 0.7;
car.acc = 1.07;
car.deAcc = 0.5;
car.turn = 3;
car.speed = 0.7;
car.move_x = 1;
function myCarMove() {
    for (i=0; i<10; i++){
    car.onEnterFrame = function(){
        if (Key.isDown(Key.LEFT)) {
            car._rotation -= car.turn;
            car.move_x = Math.cos(Math.PI/180 * car._rotation);
            car.move_y = Math.sin(Math.PI/180 * car._rotation);
        }
        if (Key.isDown(Key.RIGHT)) {
            car._rotation += car.turn;
            car.move_x = Math.cos(Math.PI/180 * car._rotation);
            car.move_y = Math.sin(Math.PI/180 * car._rotation);
        }
       
        if (Key.isDown(Key.UP)) {
            car.move2_y = car.move_y * car.speed;
            car.move2_x = car.move_x * car.speed;
            car._y += car.move2_y;
            car._x += car.move2_x;
            if (car.speed < 3){
                car.speed *= car.acc;
            }
        }
        if (Key.isDown(Key.DOWN)) {
            car.move2_y = -(car.move_y * car.speed);
            car.move2_x = -(car.move_x * car.speed);
            car._y += car.move2_y;
            car._x += car.move2_x;
            if (car.speed < 2){
                car.speed *= car.acc;
            }
        }
        else if (!(Key.isDown((Key.UP) || (Key.DOWN)))){
            car.speed = car.origSpeed;
        }
    }
    }
}

var myListener = new Object();
myListener.onKeyDown = myCarMove;
Key.addListener( myListener );
Avatar billede madsringblom Nybegynder
16. marts 2005 - 18:05 #4
hermed lukket !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester