Abfragen, welches Objekt mit Objekt "A" kollidiert
Übersicht

#ReaperNewsposterBetreff: Abfragen, welches Objekt mit Objekt "A" kollidiert |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Eigentlich sagt meine überschrift ja schon alles aus.. ![]() Also: Ich habe ein Objekt, und will wissen, wenn es kollidiert, mit welchem objekt es kollidiert... ich kenne keine fuktion dazu.. wie geht das den? ![]() MfG #Reaper |
||
FBI-blitz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
collisions
countcollisions entitycollide |
||
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+ Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+ |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi..
nene.. ich muss wissen, mit welchem objekt das obj. "A" kollidierte.. ![]() MfG #Reaper |
||
FBI-blitz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
collisionentity
... ODer meinst du kollidierte (Vergangenheit) |
||
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+ Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+ |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
njoa.. ich versteh das nicht ganz..
bei welchem objekt muss ich denn countcollision einsetzten? ohje..^^ |
||
FBI-blitz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmm.. schau dir mal das Beispiel in der OH an! | ||
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+ Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+ |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich versuchs gerade..^^
kannst du mir etwas beim logischem denken helfen? ^^ biste noch on? icq? |
||
FBI-blitz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab kein ICQ! Aber ich will versuchen, ein kleines Tutorial zu schreiben! Ich schicks dir Morgen per Mail zu! | ||
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+ Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+ |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
oh.. danke! ![]() ich progge gerade ein 3d game.. und check das auch net so richtig, wie ich das machen soll, wie der abfragt, ob ein "schuss" mit einem "spieler" kollidierte..^^ MfG #Reaper |
||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es ist eigentlich egal, ob du testes, ob der Spieler mit dem Schuß kolliediert oder umgekehrt, aber es ist sinnvoller zu testen, ob der Schuss mit irgendetwas anderem collidiert.
Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
![]() |
Seoman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du kannst auch beides machen.
Beim Schuss, damit du weißst, wann er stoppen muss (weil er z.B. durch etwas durchschießt), oder wo er gerade einen Brandfleck verursacht und beim Spieler "Wenn Kollision mit Schuss, dann Lep =Lep-10" "Wenn Kollision mit Lava, dann LEP = LEP -30" mfg Seoman |
||
In Australien...
Projekte sind zur Zeit wieder eingefroren und auf Designlevel zurueckgestuft... Generalueberholungen notwendig ![]() |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi! ![]() njoa... mm.. ist so kompliziert.. irgendwie.. alles.. da ich jeweils beidesmal Arrays durchfortsen muss...also die funktion.. FBI-blitz war so net, und hat mir ein Toturial geschrieben.. ich habe ihn mal gefragt.. da es wohl jetzt eher ein problem meines denkens ist... ![]() MfG #Reaper ![]() |
||
![]() |
Seoman |
![]() Antworten mit Zitat ![]() |
---|---|---|
#Reaper hat Folgendes geschrieben: Hi!
![]() ...da ich jeweils beidesmal Arrays durchfortsen muss...also die funktion.. Wieso? mfg Seoman |
||
In Australien...
Projekte sind zur Zeit wieder eingefroren und auf Designlevel zurueckgestuft... Generalueberholungen notwendig ![]() |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
äm..^^
Die "Schüsse" und die Spieler werden in einem "Type" gespeichert.. ![]() Deshalb halt.. und ich kenn mich noch nicht ganz so damit aus, mit "Type".. ![]() MfG #Reaper |
||
![]() |
Seoman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Lass die "" um Wörter wie Type, Spieler oder Schuss ruhig weg... Sonst klingst du fast wie ein Bot Ich verstehe die Eingabe "Type" nicht. Bitte versuchen sie eien anderen Befehl...
Zitat: ich kenn mich noch nicht so ganz damit aus
Das sollte später nicht so das Problem sein. Wenn man einmal gewisse Grundlegende Dinge gemacht hat (wie z.B. das Suchen eines bestimmten Types), kann man sie später in der Regel einfach immer wieder auf die gleiche Art und Weise anwenden. mfg Seoman |
||
In Australien...
Projekte sind zur Zeit wieder eingefroren und auf Designlevel zurueckgestuft... Generalueberholungen notwendig ![]() |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
naja..![]() ![]() hier ein ausschnitt aus ner mail an FBI, welcher wohl nicht da ist.. :-/ (@FBI: sry, ich kann net warten, mir ist langweilig..^^) Zitat: Ich schreibe ein kleineres Multiplayer Game.. bzw: Soll es mal werden..
![]() Nun folgendes: Ich habe mehrere "Geschosse" welche in einem "Type" abgespeichert werden... Genau so, wie die Spieler, auch in einem "Type"... Nun bin ich mir zum einem nicht sicher, ob ich abfragen soll, ob das "Geschoss" (z.b. Nr.1) abgefragt werden soll, ob es mit einem spieler kollidiert ist, oder ob ich fragen soll, ob ein "Spieler mit dem "Geschoss" kollidiert ist... Ich hab jetzt wahrscheinlich das 2. gemacht... ;D Ich habe einmal die Funktion "UpdateShots()" und noch die 2te, um welche es eigentlich geht "checkDamage()" UpdateShots() (schon mit cheackDamage() verbunden, is so einfacher ![]() Code: [AUSKLAPPEN] Function UpdateShots()
For Shot.Shots=Each Shots If Shot<>Null MoveEntity Shot\Model,0,0,Shot\Speed Shot\Timer=Shot\Timer+50 Shot\del=0 For Players.Players=Each Players If Players<>Null Then Players\countcoll = CountCollisions(Players\ShipModel) For index=1 To Players\countcoll Text x/2,y/2,"Entity="+CollisionEntity(spaceship,index) If EntityCollided(CollisionEntity(spaceship,index),1) Then Shot\del = 0 EndIf Next EndIf Next If Shot\Timer>firefar FreeEntity Shot\Model Shot\del = 1 EndIf If Shot\del=1 Then Delete Shot Fired=Fired-1 EndIf Next End Function -------------------------------------------------------------------------------- Code: [AUSKLAPPEN] ckeckDamage():
For Players.Players=Each Players If Players<>Null Then Players\countcoll = CountCollisions(Players\ShipModel) For index=1 To Players\countcoll Text x/2,y/2,"Entity="+CollisionEntity(spaceship,index) If EntityCollided(CollisionEntity(spaceship,index),1) Then Shot\del = 0 EndIf Next EndIf Next -------------------------------------------------------------------------------- Nun mein problem, welches eher ein Logisches oder Verständniss problem ist: Wie mach ich das nun, das der das "Geschoss" nach der collision mit einem schiff verschwindet (ok, weis ich ja eigentlich fast), und: wie tue ich dem getroffenem schiff Damage im "Type" hinzu? ääm... naja.. das weis ich ja eigentlich.. hab nur probleme, wie ich weis, welches schiff das war... und halt so weiter.. mit den ganzen abfragen check ich net... Ich hoffe, ich konnte mein problem jetzt wenigstens etwas beschreiben... ![]() ![]() MfG #Reaper ![]() PS: hier nochmals die Type-felder: Code: [AUSKLAPPEN] ;Create Arrays
Type Shots Field x,y,z ;position in 3d world Field Model ;Shot Model Field Timer ;Shot Timer Field Speed Field del End Type ;Players Type Players Field x,y,z Field ShipModel Field Nick Field Damage Field countcoll Field Speed End Type |
||
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
vergessts, ich versuchs jetzt anderst mit den spielern..^^
noch ne frage: wie kann man z.b., wenn man eine neue variable erstellt, noch eine zahl an die variable dranhängen? also z.b... Player 1 Player 2 ... das dann immer noch eine zahl dahinter gehangen wird, geht das? MfG #Reaper |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok..ich hab jetzt folgendes gemacht:
Code: [AUSKLAPPEN] ;SpaceShip Global spaceship = LoadMesh("...") EntityRadius spaceship,10000 EntityType spaceship,type_sphere EntityParent camera1,spaceship,1 EntityParent camera2,spaceship,1 ;Laiserschuss laden Global flam = CreateSphere(4) EntityRadius flam,450 EntityType flam,1 ScaleEntity flam,50,50,450 EntityColor flam,125,0,0 EntityBlend flam,1 EntityFX flam,1 HideEntity flam Dim Player1(4) ;Player Player1(1) = False Player1(2) = 0 Player1(3) = 0 Player1(4) = 0 ;Ende Player Function UpdateShots() For Shot.Shots=Each Shots If Shot<>Null MoveEntity Shot\Model,0,0,Shot\Speed Shot\Timer=Shot\Timer+50 Shot\del=0 If EntityCollided(Shot\Model,1) Then Shot\del = 1 coll = CollisionEntity(Player1(1),1) If coll=Player1(1) Then Player1(3)=Player1(3)+10 ElseIf coll=Player2(1) Then Player2(3)=Player2(3)+10 ElseIf coll=Player3(1) Then Player3(3)=Player3(3)+10 ElseIf coll=Player4(1) Then Player4(3)=Player4(3)+10 Else meldung$="Kein Schiff getroffen!" EndIf Else meldung$="Nein" EndIf If Shot\Timer>firefar FreeEntity Shot\Model Shot\del = 1 EndIf If Shot\del=1 Then Delete Shot Fired=Fired-1 EndIf EndIf Next End Function Kurz und knapp: es kommt keine fehler meldung,und es passiert nichts, was es sollte: -Geschoss löschen -Vom Player1 Damage dazusetzten er kommt nur bis zur abfrage, ob das geschoss ( "Shot\Model" ) mit einem objekt collidierte, er meint aber immer nein, was nicht stimmt.. ich weis nicht mehr weiter ![]() MfG #Reaper |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mit types (siehe handel und object) oder mit Dim-Feldern. Zu beidem findest du Infos in der OH oder im Forum (suchen^^).
Jriki [Edit] Bezog sich auf deinen vorherigen Beitrag, ich schau mir den Code mal an. |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
weis niemand was?
![]() MfG #Reaper |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group