nochmal zu kollisionen und types

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Philon

Betreff: nochmal zu kollisionen und types

BeitragDo, Aug 13, 2009 15:03
Antworten mit Zitat
Benutzer-Profile anzeigen
hi!
diesmal will ich, dass meine type-einträge sich alle gegenseitig auf eine kollision überprüfen und wenn es eine giebt dass sich was tut. das funktioniert zwar, aaaber es gibt immer 2 kollisionen, weil z.B. der 1. type mit dem 3. kollidiert, und danach irgendwann der 3. mit dem 1. . ich hoffe das war verständlich..

(jeder type-eintrag hat ein zugehöriges bild, und die BILDER kollidieren natürlich)

Code: [AUSKLAPPEN]
For s1.square=Each square
      For s2.square=Each square
         If s1 <> s2 Then
            If RectsOverlap(s1\xPos,s1\yPos,10,10,s2\xPos,s2\yPos,10,10)=1 Then
               saveVX=s1\vx
               saveVY=s1\vy
               s1\vx=s2\vx            
               s1\vy=s2\vy
               s2\vx=saveVX
               s2\vy=saveVY
               DebugLog "Kollision!"
            EndIf
         EndIf
      Next
   Next
 

n-Halbleiter

BeitragDo, Aug 13, 2009 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist klar, da jeder EIntrag etwas mit jedem Eintrag macht. Wenn Eintrag 1 und 3 geprüft werden, werden Eintrag 3 und 1 auch nochmal geprüft.
Code: [AUSKLAPPEN]
For t1.Ttype=Each Ttype
    t2.Ttype=After t1
    While t2<>Null
       ;Vergleich
      t2=After t2
   Wend
Next


Das müsste das sein, was du suchst. (gelesen in einem Blackeffect-Tutorial (Thema Codeoptimierung) Wink )
mfg, Calvin
Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit
Ploing!
Blog

"Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935)

TimBo

BeitragDo, Aug 13, 2009 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
For t1.Ttype=Each Ttype 
t2.Ttype=After t1
While t2<>Null
;Vergleich

;wenn kollision
handle1=Handle(t1.Ttype)
handle2=Handle(t2.Ttype)
;{
;
;.....Mach was Gamer 2
;
;}


t1.ttype=Object.Ttype(handle1)
;{
;
;........Mach was Gamer 1
;
;}
t2.ttype=Object.ttype(Handle2)
;ENDE wenn kollision vorhanden


t2=After t2
Wend
Next


der code von n-halbleiter ist besser, hier eine kleine erweiterung...


bei jedem gamer , wo eine Kollision stattgefunden hat, wird eine 1 geschrieben. Ich hoffe das kannst du so gebrauchen.

Achja so kollidiert auch nicht gamer 1 mit gamer 1 Very Happy

Grüße
TimBo
  • Zuletzt bearbeitet von TimBo am Do, Aug 13, 2009 15:25, insgesamt einmal bearbeitet
 

Philon

BeitragDo, Aug 13, 2009 15:25
Antworten mit Zitat
Benutzer-Profile anzeigen
danke halbleiter! funktioniert perfekt. irgendwann komm ich auch mal auf sowas....

hey TimBo! bissl kompliziert..
ausserdem-kenn ich dich woher? das foto schaut irgendwie bekannt aus? wie alt bist du

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group