alfray Geschrieben 25. Juni 2009 Geschrieben 25. Juni 2009 He Leute, ich hab angefangen mit Greenfoot ein Pong Spiel zu programmieren. Also einfach Links ein balken, rechts ein balken und ein ball der herumfährt. Das funktioniert so weit auch ganz gut, (habs soweit getestet) der Ball prallt an den Wänden oben und unten ab, habe aber nun das problem mit den Winkeln. Denn: wenn der Ball auf einen Balken trifft sollte er nicht einfach zurückgeworfen werden (so wie er es im Moment macht) sondern eben abhängig davon wo er hrkommt und wo er auf dem Handler aufkommt (also oberhalb/unterhalb des mittelpunkts) wie ichd as mache hab ich mir auch schon überlegt, nur habe ich das Problem das ich bei den x und y Konstanten keine Kommastellen hernemen kann (also kann ich den Ball nur um 1,2,3 y weiter rauf/runter setzen, auf der x-Achse fliegt r Konstant mit +1). So sind keine Winkel zwischen 0 und 45° möglich. Hoffe ihr könnt mir da helfen! mfg Zitieren
flashpixx Geschrieben 25. Juni 2009 Geschrieben 25. Juni 2009 (bearbeitet) Ich gebe Dir mal den Hinweis zu Normalenvektor ? Wikipedia die Du auf Deinen Balken stellst und dann zu Snelliussches Brechungsgesetz ? Wikipedia wobei Du die Materialkonstante als 1 betrachten solltest. Das Problem ist für Deinen Fall recht einfach mit elementarer Trigonometrie zu lösen. Als weiter Hinweis solltest Du nicht mit den Pixelpositionen rechnen, sondern mit einer Darstellung in der Form: Ortsvektor + Lambda * Richtungsvektor. Als Ortsvektor nimmst Du immer den letzten Schnittpunkt von Ball und Balken / Rand und eben der Richtungsvektor (optimal nicht normiert) gibt dann Richtung und die Länge (Norm des Vektors) die Geschwindigkeit an. Du hast eine definierte Startposition, von der die Berechnung startet. Wenn es etwas schwieriger werden sollte, dann veränderst Du den Winkel des Richtungsvektors zur Normalen um einen zufälligen Faktor, damit könntest Du z.B. Unebenheiten der Oberflächen simulieren Phil Bearbeitet 25. Juni 2009 von flashpixx Zitieren
alfray Geschrieben 25. Juni 2009 Autor Geschrieben 25. Juni 2009 He, danke! Hab jetzt auch nen Tipp bekommen der mir geholfen hat das Prob zu lösen, nämlich einfach nicht nach jedem durchlauf x zu erhöhen, sondern eben nur dann wenn y über 1 ist, also z.B. bei jedem 5ten mal, leider hab ich grad das problem mit grenfoot das ich die world und die actors zwar compilen kann, aber wenn ich auf run drücke passiert genau garnix... Zitieren
alfray Geschrieben 25. Juni 2009 Autor Geschrieben 25. Juni 2009 (bearbeitet) So, nach neustart ghts wieder, funktioniert soweit ganz gut! Thx für die Wikipedia Hinweise! Das mit den Vektoren werd ich jetzt mal versuchen! Danke Bearbeitet 25. Juni 2009 von alfray Zitieren
alfray Geschrieben 26. Juni 2009 Autor Geschrieben 26. Juni 2009 (bearbeitet) gelöst Bearbeitet 26. Juni 2009 von alfray gelöst Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.