Avatar billede Slettet bruger
21. december 2005 - 07:47 Der er 7 kommentarer og
1 løsning

Til Barklund

Du bør nu stadig seriøst lave det smartere og eventuelt giver nogle klasser ind over. Det er virkelig ikke en god måde at bygge det op på :)

Well, held og lykke :)

> Har du et forslag?
Jeg synes selv, min kode er rodet - og den får systemet til at lagge.
Så: Har du et smartere forslag ved hånden?
Avatar billede Slettet bruger
21. december 2005 - 07:48 #1
Koden er:

i = 1;
setInterval(function(){
    _root.attachMovie("test", "test", 1);
    _root.test._x = _x;
    _root.test._y = _y;
    _root.test._rotation = Math.atan((_root.test._y-_root.player._y)/(_root.test._x-_root.player._x))*180/Math.PI-90;
    if (_root.test._x < _root.player._x) {
        _root.test._rotation += 180;
    }
    while (!_root.level.hitTest(_root.test._x, _root.test._y, 1) && _root.test._x > 0 && _root.test._x < 800 && _root.test._y > 0 && _root.test._y < 600) {
        if (_root.player.hitTest(_root.test._x, _root.test._y, 1)) {
            _rotation = Math.atan((_y-_root.player._y)/(_x-_root.player._x))*180/Math.PI-90;
            if (_x < _root.player._x) {
                _rotation += 180;
            }
            _root.attachMovie("shot", "shot_enemy"+i, i+200);
            _root["shot_enemy"+i]._x = _x;
            _root["shot_enemy"+i]._y = _y;
            _root["shot_enemy"+i]._rotation = _rotation;
            i ++;
        }
        _root.test._x += Math.sin(_root.test._rotation*(Math.PI/180));
        _root.test._y += Math.cos(_root.test._rotation*(Math.PI/180))*-1;
    }
    _root.test.removeMovieClip();
}, 100);

(http://eksperten.dk/spm/672936)
Avatar billede barklund Nybegynder
21. december 2005 - 10:29 #2
Det er nu den grundlæggende opbygning, der ikke er så gennemskuelig. Jeg har ikke lige tid og overskud til at sætte mig ind i det, men prøv at isolere dine 2-3 objekter, lav dem som klasser istedet og lav en fjerde klasse som manager af det hele. Så får du scriptet delt mere logisk op.
Avatar billede Slettet bruger
21. december 2005 - 12:19 #3
Jeg forstår det ikke - hvad er det, man bruger klasser til i praksis?
Avatar billede barklund Nybegynder
21. december 2005 - 12:33 #4
Til objekt-orienteret programmering. I stedet for, at du har script på frames rundt omkring, har du det liggende i nogle passende klasser.
Avatar billede Slettet bruger
22. december 2005 - 17:16 #5
Hmm... Er det noget i retning af funktioner?
Avatar billede barklund Nybegynder
28. december 2005 - 08:51 #6
Selvfølgelig bruges funktioner. Objekt-orienteret programmering er dog ikke så meget et spørgsmål om syntaks, som det er et spørgsmål om tankegang. Men jeg skal gerne lave et eksempel på ovenstående. Dog findes der nu rigeligt af bøger på engelsk om fornutig brug af ActionScript2 :)
Avatar billede Slettet bruger
01. januar 2006 - 16:07 #7
Godt nytår!
Jeg ville være meget glad for sådan et eksempel...
Min egen kode er jo lidt uoverskuelig og krævende for systemet.
Avatar billede Slettet bruger
01. april 2006 - 08:13 #8
Nå.

--- 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