Avatar billede mymouse Nybegynder
07. marts 2005 - 00:15 Der er 9 kommentarer

Bevæge et MC

Jeg er ved at lave et lille shootemUp spil, hvor jeg skal have et Movieclip til at komme ind nedefra(altså i bunden af scenen) og så bevæge sig opad. MovieClippet skal gentages et tal gange men ikke starte det samme sted hver gang.

Hvorledes lader dette sig gøre?

Hej :-)
Avatar billede barklund Nybegynder
07. marts 2005 - 00:24 #1
Det var lige godt satans.

Sidder netop og roder med nye versioner af mit shootemup-spil, som er den indledende tutorial i Grundlæggende programmering i ActionScript[1] og som har sit eget site[2].

En gang i morgen skulle du kunne downloade et eksempel fra[2] :)

[1] http://globe.dk/?action=detail&vare=FG227-7
[2] http://actionscript.dk/bogen/shootemup/

--
Morten Barklund
Avatar billede kragekjaer Praktikant
07. marts 2005 - 03:13 #2
var ctn:Number=0;
function makeTarget(){
ctn++;
var mc=this.attchMovie("maal","maal"+ctn,this.getNextHigestDepth);
mc._y=Stage.height+100;
mc._x=random(Stage.width);
mc.go();
}

inde i dit maal laver du så en function go(), som bevæger sig selv opad.
Avatar billede mymouse Nybegynder
07. marts 2005 - 08:46 #3
Hej Barklund...
Det må jeg nok sige, du har en bog på gaden d. 11. Tillykke med det!!
Kan være jeg køber den bog.

Men kan være du kan hjælpe mig så, kunne ikke downloade noget nu. Jeg har nemlig et eksemple fra bogen "Macromedia Flash MX Action for fun and games".
Her kommer Movieclip ind fra siden, men jeg kan ikke finde ud af ændre så de kommer nede fra uden at det går ud over deres hastighed og pladsering!!
Avatar billede barklund Nybegynder
07. marts 2005 - 09:13 #4
Well, hvordan ser dit script ud?
Avatar billede mymouse Nybegynder
07. marts 2005 - 09:27 #5
Her er det oprindelige script:
Noget af det skal jeg ikke bruge i mit script, det er hvilken side og højde mc kommer fra.

function newBalloon() {
    // more balloons?
    if (nextBalloon < numBalloons) {

        // time for next?
        if (getTimer() > nextBalloonTime) {

            // 50% chance of a new balloon
            if (Math.Random() < .5) {

                // create new balloon clip
                attachMovie("balloon", "balloon"+nextBalloon, nextBalloon);

                // choose which side to come from and random speed
                if (Math.Random() < .5) {
                    _root["balloon"+nextBalloon]._x = -30;
                    dx = int(Math.Random()*3)+3;
                } else {
                    _root["balloon"+nextBalloon]._x = 580;
                    dx = -int(Math.Random()*3)-3;
                }

                // choose height of balloon
                _root["balloon"+nextBalloon]._y = int(Math.Random()*100)+20;

                // choose color of balloon
                balloonColor = new Color("balloon"+nextBalloon);
                r = int(Math.Random()*5)+1;
                if (r == 1) {
                    balloonColor.setTransform({rb: 255});
                } else if (r == 2) {
                    balloonColor.setTransform({gb: 255});
                } else if (r == 3) {
                    balloonColor.setTransform({bb: 255});
                } else if (r == 4) {
                    balloonColor.setTransform({rb: 255, gb: 255});
                } else if (r == 5) {
                    balloonColor.setTransform({rb: 255, bb: 255});
                }

                // add balloon to array
                balloons.push({clip: "balloon"+nextBalloon, d: dx});

                // set things up for next balloon
                nextBalloon++;
                nextBalloonTime = getTimer() + 2000;
            }
        }
    }
}


function moveBalloons() {
    // loop through balloons in array
    for(i=balloons.length-1;i>=0;i--) {

        // get speed and clip
        dx = balloons[i].d;
        balloon = _root[balloons[i].clip];

        // move balloon
        balloon._x += dx;

        // balloon exit left
        if ((dx < 0) and (balloon._x < -20)) {
            balloon.removeMovieClip();
            balloons.splice(i,1);

        // balloon exit right
        } else if ((dx > 0) and (balloon._x > 570)) {
            balloon.removeMovieClip();
            balloons.splice(i,1);
        }
    }


    // see whether all balloons gone
    if ((nextBalloon >= numBalloons) and (balloons.length < 1)) {
        gotoAndStop("game over");
    }
}
Avatar billede barklund Nybegynder
07. marts 2005 - 09:40 #6
Lav:

                // choose which side to come from and random speed
                if (Math.Random() < .5) {
                    _root["balloon"+nextBalloon]._x = -30;
                    dx = int(Math.Random()*3)+3;
                } else {
                    _root["balloon"+nextBalloon]._x = 580;
                    dx = -int(Math.Random()*3)-3;
                }

                // choose height of balloon
                _root["balloon"+nextBalloon]._y = int(Math.Random()*100)+20;

Til:

                // choose speed
                _root["balloon"+nextBalloon]._y = 430;
                dx = -int(Math.Random()*3)-3;
                // choose position of balloon
                _root["balloon"+nextBalloon]._x = Math.Random()*510+20;

Og i moveBalloons skal:

        // move balloon
        balloon._x += dx;

        // balloon exit left
        if ((dx < 0) and (balloon._x < -20)) {
            balloon.removeMovieClip();
            balloons.splice(i,1);

        // balloon exit right
        } else if ((dx > 0) and (balloon._x > 570)) {
            balloon.removeMovieClip();
            balloons.splice(i,1);
        }

Rettes til:

        // move balloon
        balloon._y += dx;

        // balloon exit top
        if (balloon._y < -20) {
            balloon.removeMovieClip();
            balloons.splice(i,1);
        }

Og se, om ikke det giver noget spændende :)

--
Morten Barklund
Avatar billede barklund Nybegynder
08. marts 2005 - 23:16 #7
Så skulle der også være noget indhold på:

http://actionscript.dk/bogen/shootemup/

Og dér nogle eksempler på sådanne spil - og mulighed for at uploade egne.

--
Morten Barklund
Avatar billede barklund Nybegynder
12. februar 2007 - 09:02 #9
:|
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