Problem mit Kollision mit einer Wand

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

eziX

Betreff: Problem mit Kollision mit einer Wand

BeitragMo, Aug 08, 2005 14:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich will ein Fussballspiel programmieren, wo der Ball immer an der Wan abprallt und wenn ein Spieler den Ball berührt, der Ball seine richtung ändert, ich weiß aber nicht, wie ich das machen soll.

Alfadur

BeitragMo, Aug 08, 2005 14:28
Antworten mit Zitat
Benutzer-Profile anzeigen
na hui, das sind aber mal wenig infos...
2d.... 3d?
zeig doch was du schon hast, dann sagen wir dir was du falsch gemacht hast...
aber spaßeshalber würde ich mal sagen : geschwindigkeitsvektor umdrehen...
A Cray is the only computer that runs an endless loop in less than four hours.

eziX

BeitragMo, Aug 08, 2005 14:36
Antworten mit Zitat
Benutzer-Profile anzeigen
es ist 2d

Das Feld ist ein Quadrat.

Kannst mir bitte in Beispiel nennen, den ich kapier das nicht so Embarassed

eziX

BeitragMo, Aug 08, 2005 14:37
Antworten mit Zitat
Benutzer-Profile anzeigen
im Moment hab ich das so:

Code: [AUSKLAPPEN]

repeat

a = a +1

if a = 600 then a -1

until keydown(1)


aber dann macht er ja nur einmal minus

Alfadur

BeitragMo, Aug 08, 2005 14:43
Antworten mit Zitat
Benutzer-Profile anzeigen
dann macht er garnix.... ist nämlich keine zuweisung.

der ball fliegt mit einer gewissen geschwindigkeit in x richtung und in y richtung. von mir aus mit der geschwindigkeit 1. wenn er jetzt an eine wand trifft dann dreht sich die geschwindigkeit einfach um. trifft er rechts auf die wand wird die x geschwindigkeit negativ, trifft er links auf die wand wird sie positiv. mit y geschwindigkeit das gleiche... damit solltest du was anfangen können, code gibts von mir nämlich nicht....
A Cray is the only computer that runs an endless loop in less than four hours.

Klip

BeitragMo, Aug 08, 2005 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

Repeat
Cls

Oval x,y,10,10,1 ; Ball malen.
x = x + xspeed ; Ball um \"xspeed\" nach rechts verschieben.
y = y + yspeed ; Ball um \"yspeed\" nach unten verschieben.

If x >= 600 ; Wenn Ball Wand berührt...
xspeed = xspeed * (-1) ; Kehre Bewegungsrichtung um.
EndIf

Flip
Until KeyHit(1) = True
End


Dasselbe müsstest du noch für die andere Seite machen, sowie für oben und unten und den Spieler.
Wie du das nun anstellst, solltest du selbst herausfinden.
  • Zuletzt bearbeitet von Klip am Mo, Aug 08, 2005 14:48, insgesamt 3-mal bearbeitet

Klip

BeitragMo, Aug 08, 2005 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
EDIT: Tut mir leid. Doppelpost wegen Auto-Startseite alle paar Stunden. Dämlicher Internetanbieter.
Bitte löschen.

eziX

BeitragMo, Aug 08, 2005 15:55
Antworten mit Zitat
Benutzer-Profile anzeigen
jo es geht!

Ich hab es jetzt auch mit dem Spielern gemacht, klappt auch ganz gut, wenn die Spieler stehen, aber wenn die spieler sich bewegen geht der Ball in den Spieler rein und spirngt dann immer hin und her, denn immer wenn der Ball den Spieler berührt, ändert er ja immer seine richtung...

Klip

BeitragDi, Aug 09, 2005 1:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann könntest du eine Toleranzgrenze einbauen, in der der Ball nicht bewegt wird (zum Beispiel, wenn er im Brustkorb des Spielers liegt und nicht vor den Füßen).

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group