Hallo
ich stehe gerade vor einem problem: ich möchte die move_bounce funktion nachstellen.
Ich habe einen punkt. Dieser punkt hat ein paar variablen die mir zu verfügng stehen: Die koordinaten, die hspeed und vspeed.
Ich habe mir das mal so vorgestellt. Ich muss erst den winkel der oberfläche finden (grüner strich). Danch den einfallswinkel (rot), disen um die hellgrüne akse spiegeln, und dann diesen winkel wieder an hspeed und vspeed anpassen.
Da stehe ich vor ein paar problemen:
Spoiler anzeigen
Alles anzeigen
MfG SDX
ich stehe gerade vor einem problem: ich möchte die move_bounce funktion nachstellen.
Ich habe einen punkt. Dieser punkt hat ein paar variablen die mir zu verfügng stehen: Die koordinaten, die hspeed und vspeed.
Ich habe mir das mal so vorgestellt. Ich muss erst den winkel der oberfläche finden (grüner strich). Danch den einfallswinkel (rot), disen um die hellgrüne akse spiegeln, und dann diesen winkel wieder an hspeed und vspeed anpassen.

Da stehe ich vor ein paar problemen:
- Wie finde ich den winkel der oberfläche?
- wie spiegle ich den einfallswinkel um die hellgrüne akse?

GML-Quellcode
- // gibt den winkel zwischen der richtung und der oberfläche des anderen objectes wieder
- // get_collision_angle(faktor)
- // faktor = 1 -> unendlich (in pixeln, wie weit weg von der kollsion sollen punkte gecheckt werden um den vinkel zu ermessen)
- l=argument // ein faktor
- ang='';
- dir=point_direction(x,y,xprevious,yprevious);
- xx=x // noch sind das die koordinaten des objectes. Der sinn ist es die koordinaten vom punkt zu nehmen
- yy=y
- for(i=0;i<360;i+=1)
- {
- if collision_point(xx+lengthdir_x(l,i),yy+lengthdir_y(l,i),all,true,false) {
- ang=i;
- i=360 // damit es endet
- }
- }
- return ang;
MfG SDX
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von SDX ()