Apprallen an einer Wand

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Smily

Betreff: Apprallen an einer Wand

BeitragSo, Feb 13, 2005 11:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier ist noch ein Code von mir:
Das Apprallen eines Balls von der Wand.
Mit hoch und Runter kann man den Ball Steuern.
Oben Links stehen folgende Daten:

1: Die RIchtung des Balles in Grad
2: Der Sinuswert der Richtung (Nach X Bewegen)
3: Der Cosinuswert der Richtung (Nach Y Bewegen)
4: Die X Position des Balles
5: Die Y Position des Balles

Der Rest waren nur Experimente

6: Der Arcossinus des Sinuswertes von Richtung
7: Der Arcuskosinus des Cosinus der Richtung
8: Die Berechnung der Richtung aus Arcuskosinus und Arcussinus:
(ATan2(Sin(ri),Cos(Ri))+360) Mod 360

Code: [AUSKLAPPEN]
HidePointer
SeedRnd MilliSecs()
Farbe = Rand(3)
Select Farbe
Case 1
Verlauf$ = "RG"
R = Rand(255)
G = 255 - R
Case 2
Verlauf$ = "GB"
G = Rand(255)
B = 255 - G
Case 3
Verlauf$ = "BR"
B = Rand(255)
R = 255 - B
End Select

SizeX = 1024
SizeY = 768
RI = Rand(360)
X# = Rnd(SizeX)
Y# = Rnd(SizeY)
Graphics SizeX, SizeY, 16, 1
Fliptimer = CreateTimer(60)
Repeat
Select Verlauf$
Case "RG"
R = R - 1
G = G + 1
If R = 0 And G = 255 Then Verlauf$ = "GB"
Case "GB"
G = G - 1
B = B + 1
If G = 0 And B = 255 Then Verlauf$ = "BR"
Case "BR"
B = B - 1
R = R + 1
If B = 0 And R = 255 Then Verlauf$ = "RG"
End Select

If R => 255 And RS = 1 Then R = 255 : RS = - 1: GS = 1
If G => 255 And RG = 1 Then G = 255 : GS = - 1: BS = 1
If B => 255 And RB = 1 Then B = 255 : BS = - 1: RS = 1

Color R,G,B
Oval X#,Y#,10,10
Select True
Case X < 0
RI = 360 - RI
X# = 1
Case X > SizeX - 10
RI = 360 - RI
X# = SizeX - 11
Case Y < 0
If RI > 180 Then RI = 360 - (RI - 180)
If RI < 180 Then RI = 180 - Ri
If RI = 180 Ri = 0
Y# = 1
Case Y > SizeY - 10
If RI > 180 Then RI = 360 - (RI - 180)
If RI < 180 Then RI = 180 - Ri
If RI = 180 Ri = 0
Y# = SizeY - 11
End Select

If RI > 360 Then RI = RI - 360
If RI < 0 Then RI = RI + 360

X# = X# + Sin(RI)
Y# = Y# + -Cos(RI)
If KeyDown(200) ri = Ri + 1
If KeyDown(208) RI = Ri - 1
Locate 1,1
Color 0,0,0
Rect 0,0,100,150
Color 255,255,255
Print Ri
Print Sin(ri)
Print Cos(RI)
Print X#
Print Y#
Print ASin(Sin(ri))
Print ACos(Cos(RI))
Print (ATan2(Sin(ri),Cos(Ri))+360) Mod 360

WaitTimer (Fliptimer)
Until KeyHit(1)
WaitKey()
End
 

Hot-Bit

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragSo, Feb 13, 2005 11:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi.

Ich glaube, du brauchst einen leichten Dämpfer.

Dieser Code ist für die Fische !
Dies ist ein Code-Archive, und keine Spielwiese für Anfänger, welche grad mal irgendwas, für sich selbst außergewöhnliches, geschaffen haben !
Wenn schon was für's Code-Archiv machst, dann laß es vorher von ein paar anderen testen, und wenn es gut ist, dann kannst es hier zur Schau stellen.

Dieser Code ist ein Sauhaufen, der mit allem Möglichen, wie man es nicht macht, gepflastert ist !
Informativ ist er auch nicht, da ja jeder die Möglichkeit hat, sich selbst über Sin- und Cos zu informieren !

Dann noch was:
Wenn schon so etwas bereit stellst, dann vielleicht so, daß die Geschwindigkeit variabel ist, und auch die Berechnung des Abpralles an der Wand KORREKT und INFORMATIV dargestellt wird.

Was glaubst du, wieviel Code- Schnipsel ich hier sonst zur Schau stellen könnte ?

Also, unterlasse solche Kindergarten-Spielereien, und stelle nur was sinnvolles oder außergewöhnliches hierher !

Danke, Toni
... ..... .i.. ...

***
Sieger des BB-Gameboy-Contest 2004
Sieger des Blitzbaster 2D-Minigolf-Contest 2005
***
 

konstantin

BeitragSo, Feb 13, 2005 12:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich wollte gleiches schreiben, aber dann wäre ich ja wieder der Buhmann gewesen Smile
Und du solltesrt dir im generellen angewöhnen, nicht allzuviele neue Threads zu erstellen.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group