objekt prallt von draw_line ab

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • mhhh...ja aber wie bringe ich dann ein objekt dazu das es von der linie abprallt?mit dem bounce event?das funktioniert ja aber jedoch nur mit "richtigen" objekten und nicht mit einer linie ,oder? ?(

    geht das wirklich nur mit objekten und nicht mit draw events?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von kowiak ()

  • mhhh...danke für die erklärung,sie wird mir noch bei anderen projekten weiterhelfen.

    wenn man das nicht mit draw events nicht hinbekommt,wie kann man dann linien (die ja dann nicht aus einem draw event bestehen,sondern aus sprites) mit der maus ziehen und dass dann halt das sprite umgeformt wird...lässt sich schlöecht erklären hier mal ein beispiel:
    Dateien
    • linie.zip

      (1,98 kB, 148 mal heruntergeladen, zuletzt: )
  • Dein Beispiel geht garnicht. Aber deine Theorie mit Sprites ginge. Mit image_xscale und image_angle (nur in der Regstrierten Version von GM verfügbar) könnte man das umsetzen.

    Jedoch gibt es noch ein Problem (Ich denke du willst das die Linien sich während des Spielverlaufs verändern sollen): Wenn die Linien den Ball berühren und nicht umgekehrt dann bleibt der Ball meist in der Wand stecken. Die Wand müsste den Ball verschieben. Das auch noch umzusetzen ist eine große Herrausforderung (denke ich).
  • eigentlich kein problem, auch ohne die befehle image_x/y-scale.
    das einzige was du dazu brauchst ist ein bischen vektorrechung:

    *ich gehe mal von der linie "draw_line(x2,y1,x2,y2);" aus.
    1.) den normalenvektor ("n") der wand suchen, das geht zb. so:
    nx=-(x2-x1);
    xy = y2-y1;
    2.) den winkel des normalenvektors suchen etwa duch den tangens:
    ndir = tan(ny/nx);
    3.) die baldirection, aber die hast du ja sowieso
    4.) mithilfe dieser angaben kans du ein einfalswinkel =ausfallswinkel prinzip entwickeln, etwa so:
    alpha = balldirection-ndirection;
    5.) der ausfallswinkel ist dan die momentane direction +2*alpha
    balldirection += 2*alpha;

    das ganze in entsprechenden events und ein paar ausnahme regeln dazu, dan sollte das klappn.
    :) Nobody is perfect (-:

    "Dummköpfe sind Denkerköpfen weit überlegen. Zahlenmäßig." Ernst Ferstl
  • ich habe kurz versucht ein example oder sowas zu machen wie er die collision berechnen kann
    aber den apprallwinkel kriege ich einfach nicht hin :(
    wenigstens erkennt er schonmal wenn er die linie berührt :D

    einer von euch, der sich damit besser auskennt könnte es mal versuchen^^

    und das von dir Nobody-86 hat bei mir leider nicht geklappt
    Dateien
    Die Schönheit liegt im Auge des Betrachters :D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Andyworld ()

  • Wie war das? Einfallswinkel = Ausfallswinkel? Da mußt Du doch nur den Winkel der Linie berechnen, oder? Das geht doch bestimmt ganz einfach mit point_direction, werd ich gleich mal ausprobieren.

    So gehts:

    Quellcode

    1. linie_winkel=point_direction(linie_x1,linie_y1,linie_x2,linie_y2)
    2. einfallswinkel = linie_winkel - direction
    3. ausfallswinkel = linie_winkel + einfallswinkel


    Dann muß nur noch im Kollisionsevent die direction auf ausfallswinkel gesetzt werden :)

    Edit: Ich hab vergessen, am Ende zu überprüfen, ob der Ausfallswinkel im legalen Bereich (0-360) liegt...
    Dateien
    • rebound.zip

      (2,78 kB, 159 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Melancor ()

  • ich danke dir auch Melancor :D :D :D
    diese funktion als code hab ich schon ziehmlich oft gebracht aber net kapiert^^ bis jetzt^^

    noch eins...
    wenn man zu viele linien macht oder zu lange, dann kann das game langsamer werden...
    am besten ist es immernoch objecte zu benutzen :D
    Die Schönheit liegt im Auge des Betrachters :D