Avatar billede wqazr Nybegynder
18. oktober 2004 - 14:41 Der er 9 kommentarer og
1 løsning

Send scorre, til gameover.php, som post

Er der nogle der kan lave så, at når man er "gameover" bliver man sendt til siden gameover.php og en scorre bliver sendt med, som post? altså ikke til gameover.php?scorre=34 men som post, så det ikke kan ses? På den her kode:

blockSize = 8;
gameHeight = 30;
gameWidth  = 45;
SNAKE_BLOCK = 1;

keyListener = new Object();
keyListener.onKeyDown = function() {
    var keyCode = Key.getCode();
   
    if (keyCode > 36 && keyCode < 41) {
        if (game.onEnterFrame != undefined) {
            if (keyCode-37 != turnQueue[0]) {
                turnQueue.unshift(keyCode-37);
            }
        }
    } else if (keyCode == 32) {
        if (!gameRunning) {
            startGame();
        }
    } else if (keyCode == 80) {
        if (gameRunning) {
            if (game.onEnterFrame) {
                delete game.onEnterFrame;
                textMC.gotoAndStop("paused");
            } else {
                game.onEnterFrame = main;
                textMC.gotoAndStop("hide");
            }
        }
    }
};
Key.addListener(keyListener);

mouseListener = new Object();
mouseListener.onMouseDown = function() {
    if (!gameRunning) {
        startGame();
    }
};
Mouse.addListener(mouseListener);


function startGame() {
    x = int(gameWidth/2);
    y = gameHeight-2;
   
    xVelocity = [-1, 0, 1, 0];
    yVelocity = [0, -1, 0, 1];
   
    map = new Array();
    for (var n=0;n<gameWidth;n++) {
        map[n] = new Array();
    }

    turnQueue = new Array();
   
    game.createEmptyMovieClip("food", 1);
    game.createEmptyMovieClip("s", 2);
    scoreTextField.text = "Score: 0";
   
    foodCounter = 0;
    snakeBlockCounter = 0;
    currentDirection = 1;
    snakeEraseCounter = -1;
    score = 0;

    placeFood("new");
   
    textMC.gotoAndStop("hide");
    game.onEnterFrame = main;
    gameRunning = true;
}


function main() {
    if (turnQueue.length > 0) {
        var dir = turnQueue.pop();
        if (dir % 2 != currentDirection % 2) {
            currentDirection = dir;
        }
    }
   
    x += xVelocity[currentDirection];
    y += yVelocity[currentDirection];
   
    if (map[x][y] != SNAKE_BLOCK && x > -1 && x < gameWidth && y > -1 && y < gameHeight) {
        game.s.attachMovie("snakeMC", snakeBlockCounter, snakeBlockCounter, {_x: x*blockSize, _y: y*blockSize});
        snakeBlockCounter++;
   
        if (typeof(map[x][y]) == "movieclip") {
            score += 10;
            scoreTextField.text = "Score: " + score;
            snakeEraseCounter -= 5;
            placeFood(map[x][y]);
        }
       
        map[x][y] = SNAKE_BLOCK;
       
        var tailMC = game.s[snakeEraseCounter];
        if (tailMC) {
            delete map[tailMC._x/blockSize][tailMC._y/blockSize];
            tailMC.removeMovieClip();
        }
        snakeEraseCounter++;
    } else {
        gameOver();
    }
}


function gameOver() {
    textMC.gotoAndStop("gameOver");
    delete game.onEnterFrame;
    gameRunning = false;
}


function placeFood(foodMC) {
    do {
        var xFood = random(gameWidth);
        var yFood = random(gameHeight);
    } while (map[xFood][yFood]);
   
    if (foodMC == "new") {
        foodMC = game.food.attachMovie("foodMC", foodCounter, foodCounter);
        foodCounter++;
    }
   
    foodMC._x = xFood*blockSize;
    foodMC._y = yFood*blockSize;
   
    map[xFood][yFood] = foodMC;
}
Avatar billede barklund Nybegynder
18. oktober 2004 - 15:03 #1
Jeg gider absolut ikke læse hele din kode igennem, men vil gerne fortælle dig, hvordan du simpelt overfører en variabel med POST:

var send_score = new LoadVars;
send_score.score = 34;
send_score.send("gameover.php", "_self", "POST");

--
Morten Barklund
Avatar billede wqazr Nybegynder
18. oktober 2004 - 15:09 #2
Jeg er lidt i tvivel over disse to linjer:

var send_score = new LoadVars;
send_score.score = 34;

1. linje forstår jeg ikke helt? Skal jeg udskifte noget?
og i 2. linje skal jeg der fjerne 34 og skrive score? Når score er angivet sådan her, fra start:

score = 0;

;)
Avatar billede barklund Nybegynder
18. oktober 2004 - 15:15 #3
Første linje laver en ny variabel "send_score" som er en instans af LoadVars-klassen. Ret simpelt. Og nej, det skal ikke ændres, hvorfor dog?

Anden linje sætter hvilke værdi "score" variablen skal have når den sendes til php-siden. Skal den være 34 skrives 34 som i ovenstående, skal den være indholdet af variablen score, skrives score. Ret simpelt.
Avatar billede wqazr Nybegynder
18. oktober 2004 - 15:16 #4
mange tak, jeg vil lige prøve det ;)
Avatar billede wqazr Nybegynder
18. oktober 2004 - 15:28 #5
YES det virker :D jeg siger 100000000000000 tak ;D smider du lige et svar?
Avatar billede barklund Nybegynder
18. oktober 2004 - 15:35 #6
Sure sure :)
Avatar billede barklund Nybegynder
18. oktober 2004 - 15:36 #7
og 100 billioner er mange! :)
Avatar billede wqazr Nybegynder
18. oktober 2004 - 15:48 #8
Ja det er det nemlig ;D
Avatar billede barklund Nybegynder
18. oktober 2004 - 15:53 #9
Tark for points :)
Avatar billede barklund Nybegynder
18. oktober 2004 - 15:54 #10
(og giv lidt karma, please :))
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