Avatar billede Slettet bruger
21. januar 2006 - 15:02 Der er 8 kommentarer og
1 løsning

level._x = undefined - Hvorfor?!

Hej eksperter!
Her er en kode til et spil:

---------------------------

level = 0;
levels = 0;

// Starting positions (level0x, level0y, ..., ..., levelnx, levelny)
array = new Array(675, 100);

setup();

function setup() {
    createEmptyMovieClip("particles", 1);
    attachMovie("player", "player", 2);
    attachMovie("level"+level, "level", 3);
    attachMovie("interface", "interface", 4);

    // Keys
    left = 65;
    right = 68;
    up = 87;
    down = 83;
   
    // Physics
    gravity = .5;
    friction = .25;

    // Position
    player._x = array[level+levels];
    player._y = array[level+levels+1];
   
    // Current speed
    xspeed = 0;
    yspeed = 0;
   
    // Acceleration
    xacceleration = 1;
    yacceleration = 1;
   
    // Rate of movement
    xrate = .05;
    yrate = .05;
   
    // Maximum speed
    maxxspeed = 50;
    maxyspeed = 50;

    // Level
    level._x = 0;
    level._y = 0;

    setInterval(game, 15);
}

function game() {

    // Move left
    if (Key.isDown(left)) {
        xspeed -= xacceleration;
        if (player._currentframe >= 1 && player._currentframe < 9 ) {
            player.play();
        }

    // Move right
    } else if (Key.isDown(right)) {
        xspeed += xacceleration;
        if (player._currentframe >= 9) {
            player.play();
        }

    // Slow down
    } else if (xspeed < 0) {
        xspeed = Math.min(xspeed+friction, 0);
    } else if (xspeed > 0) {
        xspeed = Math.max(xspeed-friction, 0);
    }

    // Move up
    if (Key.isDown(up)) {
        yspeed += yacceleration;

    // Move down
    } else if (Key.isDown(down)) {
        yspeed -= yacceleration+gravity;

    // Fall
    } else {
        yspeed -= gravity;
    }

    // Keeping speed above minumum and below maximum
    xspeed = Math.max(Math.min(xspeed, maxxspeed), maxxspeed*-1);
    yspeed = Math.max(Math.min(yspeed, maxyspeed), maxyspeed*-1);

    // Collission
    if (level.hitTest(player._x, player._y, true)) {
        attachMovie("explosion", "explosion", 10);
        explosion._x = player._x;
        explosion._y = player._y;
        fscommand("quit");
    } else {

    // Positioning
        player._x += xrate*xspeed;
        player._y -= yrate*yspeed;
    }
}

----------------------------------------------------------

Men den registrerer aldrig hitTest som true; hvorfor ikke?
Jeg har testet med trace, og level._x = undefined.
Hvordan kan dette lade sig gøre???
Avatar billede rohaje Nybegynder
21. januar 2006 - 22:40 #1
prøv med _level3.level , for det er vel der du har smidt mc'et

du kan jo også lige lave en level=_level3.level; et sted
Avatar billede rohaje Nybegynder
21. januar 2006 - 22:43 #2
hov,, glem det,, var lige lidt hurtig :D
Avatar billede rohaje Nybegynder
21. januar 2006 - 22:45 #3
du har en variable der hedder level ,, ikke smart når du også navngiver mc'et level
hvad sker der hvis du laver trace(level);
Avatar billede Slettet bruger
21. januar 2006 - 23:55 #4
Nåååja.
Det ved var-mc kollissionen har jeg prøvet før; måske oven i købet i et spil af samme type!
Tjekker lige...
Avatar billede Slettet bruger
21. januar 2006 - 23:58 #5
TAK GUUUD,
FORDI DU ER SÅ HY-YL!!!

Det var fordi, variablen og mcet havde samme navn!
YEAH!
Gogol plex tak!

Bare smid et svar!
Avatar billede rohaje Nybegynder
22. januar 2006 - 08:44 #6
:)
Avatar billede rohaje Nybegynder
22. januar 2006 - 09:08 #7
tak for det!
Avatar billede maqhem Nybegynder
02. februar 2006 - 07:46 #8
hy-yl :S hvad er nu det for et lækkert udtryk 2 :P
Avatar billede maqhem Nybegynder
02. februar 2006 - 07:47 #9
og så hedder det gogool-plex ;)
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