Avatar billede hobn00b Nybegynder
12. september 2004 - 14:34 Der er 19 kommentarer og
2 løsninger

Et flydende hop

Hejsa, jeg har fået en opgave i skolen, hvor vi skal lave et spil.. vi har lidt en smule flash, så ved hvordan jeg får ting til at bevæge sig og basis ting som det..
Men jeg skal lave en bold der kan hoppe, eller jeg skal bruge en hoppe funktion.
Nogle der ved ca. hvordan jeg kan lave det ?
Avatar billede nikolajdu Nybegynder
12. september 2004 - 14:37 #1
hvad er "hoppe" funktionen....??

Duu kan bruge almindelige motion tweenings.
Avatar billede hobn00b Nybegynder
12. september 2004 - 14:40 #2
nej nej, det skal jo være til et spil...
det skal jo være en række af functioner der får bolden til at ryge op, og så ned igen...
Avatar billede larsholmgaard_dk Nybegynder
12. september 2004 - 18:39 #3
Du kan lave det med sinuskurver, hvis du nøjes med at beholde den positive amplitude.

Lav et movieclip med en bold. Smæk dette script på movieclippet og du har en bold, der hopper matematisk, uden brug af tweens:

onClipEvent (load) {
  i = 0;
  h=200;
}
onClipEvent (enterFrame) {
  i += 0.1;
  _y = -h*Math.abs(Math.sin(i));
}

Variablen i fortæller, hvor hurtigt bolden skal hoppe og variablen h fortæller, hvor højt den skal hoppe. Det er lige til at gå til.
Avatar billede larsholmgaard_dk Nybegynder
12. september 2004 - 18:43 #4
Skal det være en smule frækkere, så kan vi tilføje noget ekstra kode, der sørger for at klemme bolden flad, når den er nederst i bevægelsen og gør den smal, når den er øverst:

onClipEvent (load) {
  i = 0;
  h = 200;
}
onClipEvent (enterFrame) {
  i += 0.1;
  sine = Math.abs(Math.sin(i));
  _y = -h*sine;
  _yscale = 50+(sine*50);
  _xscale = 100-(sine*15);
}

Held og lykke med spillet - I må meget gerne sende et link, når det er færdigt, så vi kan se, hvad I har fået lavet. :-) Hvilken uddannelse er det I går på?
Avatar billede hobn00b Nybegynder
13. september 2004 - 18:10 #5
hey, det virker godt nok! udover at, bolden starter med at hoppe ét bestemt sted uanset hvad jeg gør ?
og har du evt. nogle nemme koder til at få bolden til at flytte sig med piletasterne?
synes ikke helt dem jeg har lært virker så godt...
Avatar billede larsholmgaard_dk Nybegynder
13. september 2004 - 18:19 #6
Aaarhh... jeg vil altså ikke lave din skole-opgave for dig. Ovenstående kode til at få bolden til at hoppe må være mere end rigeligt til at I kan komme i gang.

Uden negativ tone overhovedet, så kan jeg ikke forstå I får en så stor opgave som "at lave et spil", hvis I ikke ved hvordan I får piletasterne til at fungere? Pointen er vel at I lærer, hvordan det hele fungerer ved selv at finde ud af det og selv sidder og roder med koden, ikke ved at få 'nogle nemme koder' som du selv skriver.

I har fået lidt hjælp til at få bolden til at hoppe og det var dét spørgsmålet gik ud på - resten må I, med al respekt, selv klare. Det skal dog ikke afholde mig fra at ønske jer held og lykke med opgaven herfra. :-)
Avatar billede hobn00b Nybegynder
13. september 2004 - 18:25 #7
så fortæl mig hvad der er galt her når der er frame 1 er sat dx = 10
og det her står i frame 2:
bold._x = bold._x+dx;
listener = new object();
listener.onKeyDown = nyretning;
function nyretning() {
  if (Key.getCode() = = Key.LEFT) dx =-10;
  if (Key.getCode() = = Key.RIGHT) dx =10;
}
Key.addListener(listener)
Avatar billede hobn00b Nybegynder
13. september 2004 - 18:27 #8
for lige at fortælle om "os/mig" så går jeg i gym, og det er vores første opgave i datalogi...
vores spil skal bare være en bold der hopper, som man så styrer rundt på kasser og sådan, ting der omkring... skidtet vil bare ikke lige virker du ved :P al hjælp fra nettet vil selvfølgelig blive beskrevet i vores report... :)
Avatar billede larsholmgaard_dk Nybegynder
13. september 2004 - 18:38 #9
Okay, jeg kan give jer nogle hints ;-) Jeg ville sgu godt nok ønske jeg kunne have valgt flashprogrammering da jeg gik på HTX i sin tid... det var da lidt sjovere end nogle af de andre ting vi lavede!

1: Syntaxen er for det første lidt skidt i jeres key-kode, der er nogle if-sætninger, der lige skal stå rigtigt mht. tuborgklammer osv.

2: = = skal være ==

3: og lidt mere til...


Jeg ville nok lave på en lidt anden måde, nemlig sætte checket på om højre eller venstre piletast er nedtrykket, i selve movieclippet:

if (Key.isDown(Key.LEFT)) {
  _x -= 10;
} else if (Key.isDown(Key.RIGHT)) {
  _x += 10;
}

Hvis du sætter ovenstående kode ind i enterFrame event'en efter "_xscale" sætningen i min 2. kode ovenfor, så har du pludselig en smooth styring over bolden... :-)
Avatar billede hobn00b Nybegynder
13. september 2004 - 18:58 #10
så var det det ikke virkede
onClipEvent (load) {

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 1: Statement must appear within on/onClipEvent handler
    if (Key.isDown(Key.LEFT)) {

Total ActionScript Errors: 1     Reported Errors: 1
??
Avatar billede hobn00b Nybegynder
13. september 2004 - 19:02 #11
det skal lige siges at det er præcis det problem jeg ALTID løber ind i når jeg skal lave en styring
Avatar billede larsholmgaard_dk Nybegynder
13. september 2004 - 19:04 #12
Okay...

onClipEvent (load) {
    i = 0;
    h = 200;
}
onClipEvent (enterFrame) {
    //_x+=2;
    i += 0.1;
    sine = Math.abs(Math.sin(i));
    _y = -h*sine;
    _yscale = 50+(sine*50);
    _xscale = 100-(sine*15);
    if (Key.isDown(Key.LEFT)) {
        _x -= 10;
    } else if (Key.isDown(Key.RIGHT)) {
        _x += 10;
    }
}

Det skal stå efter "_xscale" sætningen, som jeg skrev... ovenstående virker. :-)
Avatar billede hobn00b Nybegynder
13. september 2004 - 19:10 #13
damn smooth!
er du uddannet eller bare hobby programør ?
lige en ting... bolden starter stadig ved en ret underlig x/y værdi... har prøvet at sætte
bold._x = 100; og
bold._y = 100;

virker ikke...

og nu må jeg jo hellere lave lidt selv, men giv mig lige et hint, kan man bruge "hitTest" til at lave kasser bolden kan hoppe på ? ja eller nej :P
Avatar billede hobn00b Nybegynder
13. september 2004 - 19:11 #14
og hvordan giver jeg dig de skide point, den vil ikke :P
Avatar billede hobn00b Nybegynder
13. september 2004 - 19:14 #15
hmm har fattet ud fra din scripting at det er _x og _y jeg skal bruge... og jeg kan sætte dem i (load)
men i (enterFrame) har du jo allerede sat dem ?
Avatar billede hobn00b Nybegynder
13. september 2004 - 19:19 #16
okay okay jeg har fattet lidt mere
_y = -h*sine+200;  (eller hvad det nu skal være)
og _x sættes bare i (load)
så mangler det med kasserne bare :P
Avatar billede larsholmgaard_dk Nybegynder
13. september 2004 - 19:22 #17
Ja, det må du altså selv rode med... nu lukker Palles Gavebod! :-)

Hehe... "uddannet, eller bare hobby programmør?" - tjae, vel ingen af de to. Du er velkommen til at kigge i mit portfolio på www.larsholmgaard.dk. Der er en del eksempler, der endnu ikke har fundet vej til mit portfolio pga. travlhed, deriblandt www.isvaflen.dk og www.labconfidential.dk + en del andre ting, men så har du lidt at kigge på. Alt, hvad du ser af grafik og programmering er lavet 100% fra bunden.

Du godkender et svar, ved at vælge navnet og trykke Godkend (tror jeg nok!).
Avatar billede larsholmgaard_dk Nybegynder
13. september 2004 - 19:24 #18
Hov, sætningen //_x+=2 er jo fuldstændig ligegyldig, det var bare en test fordi jeg skulle se, hvilken x-hastighed, der passede til y-bevægelsen. Den linie kan du bare slette.
Avatar billede larsholmgaard_dk Nybegynder
13. september 2004 - 19:51 #19
Thanks... held og lykke med det!
Avatar billede hobn00b Nybegynder
13. september 2004 - 19:53 #20
tak, sidder og roder lidt med det, kan bare ikke helt få det til at funge, men det kommer, vi har 4 uger..
men kan se på det hele at du jo er en proff. type :P
sku en nice side du har, det må jeg sige!
Avatar billede larsholmgaard_dk Nybegynder
13. september 2004 - 19:54 #21
Ååååårh.... tak skal du ha'! :-))
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