Avatar billede 3dmax Nybegynder
27. januar 2005 - 20:48 Der er 16 kommentarer og
2 løsninger

forskellige vinkler

jeg prøver at lave et spil. en bold_mc rammer en væg og skal så retur igen, men vis den rammer væggen med en spids vinkel, så skal den også væk fra væggen i en spids vinkel, og selvfølgelig modsat, hvis vinkel er stor så skal den retur i et stort "v".

har prøvet lidt forskellig, bl.a.,

myRadians = Math.atan2((bold_mc._y - pin1_mc._y), (bold_mc._x - pin1_mc._x));
minVinkel=(myRadians*180/Math.PI);
boldVinkel= minVinkel/2

Er der nogle som har et godt forslag??
bruger flash 2004
Avatar billede mat Nybegynder
27. januar 2005 - 22:09 #1
indfaldsvinkel = udfaldsvinkel ?
Avatar billede 3dmax Nybegynder
27. januar 2005 - 22:13 #2
nej, vinkel bliver som et "v"
Avatar billede mat Nybegynder
27. januar 2005 - 22:32 #3
se "refleksion", det ligner da et "v"? http://members.lycos.co.uk/fysik/formelsamling/optik/boelger/
Avatar billede 3dmax Nybegynder
27. januar 2005 - 22:37 #4
ok, på den måde, ja det er rigtig
Avatar billede 3dmax Nybegynder
27. januar 2005 - 22:59 #5
men "hvis" det kun er at omvende fx 22 til -22, hvordan gør mandet i flash
Avatar billede mat Nybegynder
27. januar 2005 - 23:00 #6
multiplicer med -1 ;)
Avatar billede 3dmax Nybegynder
27. januar 2005 - 23:10 #7
ja, men hvordan skriver man "-1" i flash, for man kan vel ikke bare bruge minustegnet?
Avatar billede mat Nybegynder
27. januar 2005 - 23:21 #8
joda, prøv at skriv:

var a = 3;
trace(a *= -1);
Avatar billede 3dmax Nybegynder
27. januar 2005 - 23:29 #9
ok, men jeg har ikke fået det til at virke i nu. Kan i se en fejl

if (bold_mc.hitTest(wallH_mc) == true) {
        myRadiansH = Math.atan2((wallH_mc._y - bold_mc._y), (wallH_mc._x -                  bold_mc._x));
        minVinkelH=(myRadiansH*180/Math.PI);
        boldVinkel = minVinkelH*-1;
        trace(minVinkelH);
    };
Avatar billede mat Nybegynder
27. januar 2005 - 23:33 #10
du bevæger vel din bold med en x og en y hastighed? Så er det bare at vende enten y eller x alt efter om det er en vertikal eller horisontal væg den rammer.
Avatar billede mat Nybegynder
27. januar 2005 - 23:37 #11
.  .
. .
  .

y er ganget med -1

.
  .
    .
  .
.

x er ganget med -1
Avatar billede mat Nybegynder
27. januar 2005 - 23:37 #12
ok det gik ikke helt godt med illustrationen :/
Avatar billede 3dmax Nybegynder
27. januar 2005 - 23:42 #13
må lige kigge på det, men det bliver ikke i dag, men tak for din tålmodighed
Avatar billede barklund Nybegynder
28. januar 2005 - 14:18 #14
Hvis det kun er vandrette og lodrette vægge er beregningen ret nem.

Hvis du bevæger sin bold ifølge en vinkel og en hastighed så er det for lodrette vægge blot at trække vinklen fra 180 (v = 180-v) og ved vandrette vægge at ændre fortegn på vinklen (v = -v).

Hvis du bevæger din bold via en x og en y er det blot at skifte fortegn på x ved lodrette vægge og y ved vandrette vægge.

Selve detection for, hvornår din bold har ramt væggen er også forholdsvist simpelt - alt afhængigt af, hvor præcist du ønsker det skal se ud.

Har du vægge i vilkårlige vinkler er det straks mere besværligt. Jeg skal dog gerne ved lejlighed lige notere mig et par artikler om emnet.

Dog en af delovervejelser i dette er, hvornår bolden er så tæt på væggen, at den har ramt væggen. Dette sker, når afstanden fra boldens centrum til væggen er mindre en boldens radius. Dette kan du læse en artikel om her: http://actionscript.dk/artikler/?t=Punkt_til_linje

Mere følger... :)

--
Morten Barklund
Avatar billede 3dmax Nybegynder
28. januar 2005 - 23:58 #15
jamen, det virker. Det som fik det til at virke var (v=180-v).
Men da også Mat hjælp mig meget i går, da vil jeg gerne give jer bakke to point.
Jeg har efterhånden set jeres navne flere gange herinde, det der fedt at i gider at hjælpe os andre.
Til Barklund: har kigget på den side om actionsscrips som du er ved at få gang i, den ser super spændende ud.
Avatar billede barklund Nybegynder
29. januar 2005 - 16:56 #16
Yesh yesh :)
Avatar billede barklund Nybegynder
29. januar 2005 - 16:56 #17
Hov
Avatar billede mat Nybegynder
29. januar 2005 - 17:13 #18
høp hey, og alt det der...
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