Avatar billede lokum Nybegynder
28. januar 2004 - 17:01 Der er 22 kommentarer og
1 løsning

kugle acceleration og ind/udfaldsvinkel

Hej,

Sidder og sveder... men kan ikke rigtigt få startet på et script som dirigerer min kugle igennem en "bane" (hittests) af vægge.

Min kugle skal altså skydes afsted med en variabel hastighed og der er INGEN tyngdekraft el.lign. (kun alm. gnidningsmodstand) - blot en række "vægge" den kan ramme på sin vej, og altså "bounce" væk fra med indfaldsvinkel=udfaldsvinkel.

Farten skal aftage til 0 - dvs. kuglen skal stoppe igen (jf. gnidningsmodstanden)!

Get it??

Kys lokum.(o;
Avatar billede pyroman Nybegynder
28. januar 2004 - 17:11 #1
er der runde kanter og er alle lodrette, vandrette og vinkelrette på hinanden??
Avatar billede lokum Nybegynder
28. januar 2004 - 17:13 #2
Ingen runde kanter, kun alt det sidste sku' jeg mene... (lad os f.eks. sige en simpel "hul" L-form).
Avatar billede pyroman Nybegynder
28. januar 2004 - 17:19 #3
er det til minigolf?? :)
Avatar billede lokum Nybegynder
28. januar 2004 - 17:22 #4
Ja, det kan man faktisk godt sammenligne det med. Noget i den stil... Det er jo ikke rigtig noget endnu. ((o;
Avatar billede lokum Nybegynder
28. januar 2004 - 17:22 #5
Men i princippet er det faktisk det samme, ja!!!
Avatar billede pyroman Nybegynder
28. januar 2004 - 17:23 #6
hmmm - det er ikke ligetil...
Hvis der kun er én bold og du så laver dine vægge i et mc - så er det sådan nogenlunde til at overkomme
Avatar billede lokum Nybegynder
28. januar 2004 - 17:50 #7
Ja, der er kun 1 kugle ad gangen! Jeg kan godt se, at ideen i princippet er den samme som minigolf - der er også kun 1 kugle, så vidt jeg husker.
Avatar billede mat Nybegynder
28. januar 2004 - 18:56 #8
det er vel bare at vende hastigheden på den pågældende akse når du rammer?

something like:

onClipEvent (load) {
    x_speed = 5;
    y_speed = 5;
}

onClipEvent (enterFrame) {
    this._x += x_speed;
    this._y -= y_speed;
    if (this.hitTest(_root.wall_x)) {
        x_speed *= -1;
    }
    else if (this.hitTest(_root.wall_y)) {
        y_speed *= -1;
    }
}


Her er der to movieclips (lavet som et hjørne) det der vil påvirke boldens x hedder "wall_x" og likewise med "wall_y" (bare i y-retningen :)

Hvis du vil have friktion må du jo lade speed-variablerne falde i din enterframe indtil den er 0.

...eller hvad?

mvh mat
Avatar billede barklund Nybegynder
29. januar 2004 - 09:29 #9
Jeg tror bestemt bit-101 har en passende tutorial:

http://www.bit-101.com

Men pas på hans laboratory - folk har før siddet fast i timer ;)

Han er den ultimative mester i modelling physics i Flash!
Avatar billede lokum Nybegynder
29. januar 2004 - 10:13 #10
Ja, han er ihvertfald ikke ekspert i brugervenlighed... nu har jeg klikket rundt på et utal af både spændende og uvedkommende sider i meget lang tid, uden at finde tutorials el.lign. (o;
Avatar billede mat Nybegynder
29. januar 2004 - 10:47 #11
http://www.bit-101.com/tutorial er et index over hans tutorials. Men der er altså ikke ret meget mere i "indfaldsvinkel = udfaldsvinkel" end ovenstående er der?
Avatar billede mat Nybegynder
29. januar 2004 - 10:48 #12
..og der skulle et s på: http://www.bit-101.com/tutorials
Avatar billede barklund Nybegynder
29. januar 2004 - 10:48 #13
Næ, den er vist redesignet en del og det ser ud som om, at han har droppet sine tuts :(
Avatar billede lokum Nybegynder
29. januar 2004 - 10:50 #14
Hey mat. (o; Nej, jeg synes ikke det bør være så kompliceret som trigonometriske beregninger og den slags, dit script er en god kick-starter, som jeg dog lige mangler at eksperimentere lidt med... Det er rigtig godt! Skal nok vende tilbage! Er du egentlig på Messenger, mat?
Avatar billede barklund Nybegynder
29. januar 2004 - 10:52 #15
Det kommer an på, hvor generelt man vil lave det og retninger på bander og deres antal...
Avatar billede mat Nybegynder
29. januar 2004 - 10:53 #16
jeps - du har min email, du kan bare add´e mig :)
Avatar billede lokum Nybegynder
29. januar 2004 - 11:00 #17
barklund >>> ja, jeg er også ved at inddrage denne her: http://www.actionscripts.org/tutorials/advanced/trigonometry_and_flash/index.shtml

Men antallet af bander (vægge) er vel et spørgsmål om flere hitTests - jeg har tænkt mig at lægge en hitTest på hver enkelt væg, som så opdaterer de nye positioner.
Avatar billede barklund Nybegynder
29. januar 2004 - 11:40 #18
Tro mig - når bit-101 laver sin bolde der tæsker rundt i massevis og bouncer ind i hinanden og i banderne, så er det i hvert fald ikke hittest - det er beregnet ud fra viden om, hvor boldene er og hvor stregerne er...

Kender du en cirkels centrum og radius sammen med en stregs endepunkter, kan du meget nemt beregne, om de kolliderer... Det vil gå hurtigere end at hitteste og det vil virke med alle streger og alle bolde....
Avatar billede lokum Nybegynder
29. januar 2004 - 12:54 #19
Jeg tror dig.. ((o;
Avatar billede lokum Nybegynder
30. januar 2004 - 10:29 #20
mat - barklund - hvis I vil have point, så post et svar... Ikke at jeg har løst min opgave endnu, men jeg er vel nok på sporet.((o;
Avatar billede mat Nybegynder
31. januar 2004 - 13:23 #21
ok :)
Avatar billede lokum Nybegynder
02. februar 2004 - 09:32 #22
Jeg forsøger at konstruere en funktion som beregner vinklen - og vinklen defineres vha./som speed_x og speed_y (fx. -90/0/90/180 grader = speed_x samme værdi som speed_y). Så mangler vi bare deccelerationen... ((o;
Avatar billede mat Nybegynder
02. februar 2004 - 18:01 #23
barklund > hep hey - http://www.eksperten.dk/spm/460205  :)
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