Ich arbeite gerade an einem Breakout-Spiel, und ich blieb bei einem Mathe-Problem stecken. Hier ist das Szenario.Basic Breakout Scaling Maths
Der Ball hat eine horizontale Geschwindigkeit, genannt bxspd. Der Ball hat eine X-Koordinate namens bx. Der Ball hat eine maximale Geschwindigkeit, genannt bspd. Der Schläger hat x Koordinaten, benannt px.
Wenn der Ball mit der Fledermaus kollidiert, muss er in horizontaler Richtung relativ zur Fledermausposition abprallen. Also mit anderen Worten:
// Kollisionsereignis bxspd = bx - px.
Auf diese Weise, wenn der Ball die linke Seite der Fledermaus trifft, springt der Ball nach links. Je weiter links von der Fledermausmitte, desto schneller wird die horizontale Geschwindigkeit nach links.
Das Problem mit diesem ist meine Fledermaus hat eine Breite von 50 auf jeder Seite von der Mitte. Wie skaliere ich das auf die maximale Geschwindigkeit des Balls? Mit anderen Worten, wenn es die äußerste linke Ecke der Fledermaus trifft, wird das bxspd zu -2 anstelle von -50?
Grüße, Claris
Nachdem ich diese Frage geschrieben hatte, gelang es mir irgendwie, es herauszufinden. Der px-Ursprung ist der linke der Fledermaus, also habe ich die folgende Formel entwickelt: bdx = ((bx - (px + (p width/2)))/(p width/2)) * bspd; – NodziGames
Fühlen Sie sich frei, die Frage zu löschen dann – mplungjan
Vielen Dank für den Vorschlag mplungjan. Ich denke, es wäre profitabler, die Formel als eine Antwort auf die Frage zu schreiben, so dass die Leute sie als Referenz verwenden können, wenn sie die gleiche Frage haben. – NodziGames