Mehrere Type Kisten Kollidieren lassen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Raiden93

Betreff: Mehrere Type Kisten Kollidieren lassen

BeitragSa, Jun 04, 2011 13:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey,
ich habe gerade ein kleinen Test gemacht und würde gerne wissen wie es möglich ist Types untereinander auf Koordinaten zu testen?

Mein Code sieht wie folgt aus:
Code: [AUSKLAPPEN]

   ;Kisten Gravity
   For Kiste = Each KisteTyp
      If (Kiste\y <= 499 -50) Or (Kiste\y <>= Kiste = Each KisteTyp)
         Kiste\y = Kiste\y *Kiste\Geschwindigkeit
      End If
   Next


Die 499-50 ist der Boden und (Kiste\y <>= Kiste = Each KisteTyp) funktioniert ja so nicht.

Xeres

Moderator

BeitragSa, Jun 04, 2011 14:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Gab es die Frage mittlerweile noch nicht oft genug...?
Eine Möglichkeit:
BlitzBasic: [AUSKLAPPEN]
Local k1.TKiste, k2.TKiste
For k1 = Each TKiste
For k2 = Each TKiste
If k1 <> k2 Then

EndIf
Next
Next
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Raiden93

BeitragSo, Jun 05, 2011 8:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe jetzt mal Extra ein kleines Test programm gecodet weil ich es gerade nicht wirklich verstehe.Wie würde man hier Prüfen können ob eine Kiste mit der anderen gerade Kollidiert?


Code: [AUSKLAPPEN]
AppTitle "Test"
Graphics 800,600,32,2
SetBuffer BackBuffer ()
Global FPSTimer = CreateTimer (60)

Type KistenTyp
   Field X#, Y#
End Type
Global Kiste.KistenTyp


Repeat
   Cls
   
   Boden_Zeichnen ()
   Kiste_Erstellen ()
   Kisten_Zeichnen ()
   Gravity ()
   
   
   Flip (0)
   WaitTimer (FPSTimer)
Until KeyHit (1)

;Kiste Erstellen
Function Kiste_Erstellen ()
   If MouseHit (1)
      Kiste= New KistenTyp
      Kiste\X = MouseX ()
      Kiste\Y = MouseY ()
   End If
End Function

;Kiste Zeichnen
Function Kisten_Zeichnen ()
   For Kiste = Each KistenTyp
      Color 200,100,0
      Rect Kiste\X,Kiste\Y,20,20,0
   Next
End Function

;Boden Zeichnen
Function Boden_Zeichnen ()
   Color 255,255,255
   Line 0,500,800,500
End Function

;Gravity/Schwerkraft
Function Gravity ()
   For Kiste = Each KistenTyp
      If Kiste\Y < 499-20 ;[Boden-KistenGroße]
         Kiste\Y = Kiste\Y +3
      End If
   Next
End Function

Moep

BeitragSo, Jun 05, 2011 9:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Für jede Kiste die du überprüft , gehst du jede andere Kiste durch, die nicht gleich der zu prüfenden Kiste ist und vergleichst die Koordinaten.
Das genannten Beispiel mit der verschachtelten Vor-Schleife ist die Umsetzung davon.

mfg
Hardstyle Schleichwerbung:
http://www.youtube.com/user/Hackepeter42

Achtung: Suchtgefahr!
moep123.ohost.de
 

Hangman

BeitragSo, Jun 05, 2011 13:11
Antworten mit Zitat
Benutzer-Profile anzeigen
und für die kollission hilfreich: https://www.blitzforum.de/help/RectsOverlap
Ich habe Berthold gebrochen.

Moep

BeitragSo, Jun 05, 2011 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Moep hat Folgendes geschrieben:
Für jede Kiste die du überprüft , gehst du jede andere Kiste durch, die nicht gleich der zu prüfenden Kiste ist und vergleichst die Koordinaten.
Das genannten Beispiel mit der verschachtelten For-Schleife ist die Umsetzung davon.

mfg


Edit : "Vor"-Schleife, wie peinlich, naja, war ja früh morgen Smile
Hardstyle Schleichwerbung:
http://www.youtube.com/user/Hackepeter42

Achtung: Suchtgefahr!
moep123.ohost.de

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group