Avatar billede _michael_ Nybegynder
17. september 2002 - 14:12 Der er 11 kommentarer og
1 løsning

Vel mest til Legende...

Hvordan laver man den effekt på dit skydespil, hvor kanonkuglen rent faktisk skyder derhen, hvor man sigter. Det er en cool funktion... :o)

Men hvordan skal man lave den?
Kan du ikke lige sætte mig lidt igang... :o)

/Michael
Avatar billede barklund Nybegynder
17. september 2002 - 15:09 #1
Jeg tror jeg gav legenden scriptet i første omgang... Lav et movieclip med din kugle, træk det ind på stage og giv det instance-navnet "bullet" i instance-panellet. Giv det derefter følgende kode (skrevet i hånden = ikke testet):

onClipEvent(load) {
    if (_name == "bullet") {
        _visible = 0;
        function shoot() {
            var x = int(_root._xmouse);
            var y = int(_root._ymouse);
            this.duplicateMovieClip("bull_"+x+"_"+y, ++depth);
        }
        this.prototype.move = function() {
            if (this._x < this.end_x && this._y < this.end_y) {
                this._x += this.dx;
                this._y += this.dy;
            } else {
                this.removeMovieClip();
            }
        }
    } else {
        var s = _name.split("_");
        end_x = int(s[1]);
        end_y = int(s[2]);
        var speed = 10;
        var angle = Math.atan2(end_y-_y, end_x-_x);
        dx = speed*Math.cos(angle);
        dy = speed*Math.sin(angle);
    }
}
onClipEvent(mouseDown) {
    if (_name == "bullet" && t && !(--t)) {
        shoot();
        t = 5;
    }
}
onClipEvent(enterFrame) {
    if (_name != "bullet") this.move();
}

Skal have udvidet funktionalitet (tjekke om den rammer noget, når den stopper) så skal det tilføjes efter removeMovieClip()... Eller hvis der hele tiden skal tjekkes, om den er oven i et target, så kan synlige bullets gemmes i et array i _root eller på bullet...

/Barklund
Avatar billede baitianlong Nybegynder
17. september 2002 - 15:12 #2
Jeg har lavet den sådan her (script på kuglen)...

onClipEvent(load) {
    x_min = _x;
    y_min = _y;
function skyd() {
    slut = _root._ymouse - 20;
    angle = _root.gun._rotation;
    speed = 25;
    x_step = (Math.sin((Math.PI/180)*angle))*speed;
    y_step = (Math.cos((Math.PI/180)*angle))*speed;
    afsted = true;
    }
}
onClipEvent(mouseDown) {
    skyd();
}
onClipEvent(enterFrame) {
    if(afsted) {
        _x += x_step;
        _y -= y_step;
    }
    if(_y <= slut) {
        _x = x_min;
        _y = y_min;
        afsted = false;
    }
}

Hvis man skal kunne skyde salver, skal du naturligvis duplicateMC

legendarisk, ikke ? ((o;
Avatar billede baitianlong Nybegynder
17. september 2002 - 15:14 #3
..øhh men allright, jeg har lært metoden af Barklund
Avatar billede baitianlong Nybegynder
17. september 2002 - 16:35 #4
Jaa. Jeg kan da lige tilføje at på Barklund manér kommer min _root.gun._rotation i scriptet sådan her:

_root.gun._rotation = 270 + 180/Math.PI*Math.atan2(_y-_root._ymouse,_x-_root._xmouse);

De "trigonometriske/pythagoraske" beregninger på arctangens, cosinus osv. er så lækre synes jeg, og bruges nu af legenden i så godt som alle spil til et eller andet... Når man lige har styr på hosliggende/modstående katete er det bare derudaf ((o; (en glad scripter)
Avatar billede _michael_ Nybegynder
18. september 2002 - 14:41 #5
Sorry for den lange svartid... Comp'en crashede for vildt! :o(

Tak for svarene...
Barklund> Jeg kan dog ikke dit eksempel til at virke. Sikkert mig der er en skovl til as.
Legende> Din virker perfekt! Specielt med din ekstra tilføjelse. :o) (og så ærger jeg mig pissegul og blå over, at jeg var så god til at pjække fra matematik). Det skulle bruges hertil, som en spyt-funktion: http://www.haiku.dk/tmp/spyt.htm, den er dog ikke helt færdig endnu.

Så jeg ved ikke, hvad med pointene... Vil I dele dem eller hvad?
Avatar billede baitianlong Nybegynder
18. september 2002 - 15:02 #6
De skal vel gå til det script, der virker *GG*
Avatar billede nikolajdu Nybegynder
18. september 2002 - 16:28 #7
Du fører dig rigtgt frem var??? *GGG*
Avatar billede baitianlong Nybegynder
18. september 2002 - 16:31 #8
Jeg sparker røv (o; Mangler 450 points for at komme på top 10
Avatar billede nikolajdu Nybegynder
18. september 2002 - 16:36 #9
:)
Avatar billede _michael_ Nybegynder
18. september 2002 - 17:34 #10
OK! :o)
Barklund overlever vel din jagt efter top 10... *G*
Avatar billede baitianlong Nybegynder
18. september 2002 - 17:43 #11
tak for points _michael_ . skulle det være en anden gang
Avatar billede _michael_ Nybegynder
18. september 2002 - 17:59 #12
Bare rolig.. Den anden gang kommer nok... :o)
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