Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben (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 von flashpixx
Geschrieben

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...

Geschrieben (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 von alfray

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...