kollisionen gehen sich aus dem weg?
Übersicht

beo6Betreff: kollisionen gehen sich aus dem weg? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo. Ich habe schon sehr viel gelernt, was mit blitzbasic zu tun hat.
nun habe ich jedoch ein problem. Ich versuche eine kollision zu überprüfen. Dafür nehme ich folgende codes. Code: [AUSKLAPPEN] Global schusscol = 1 Global shotercol = 2 Global shotercol2 = 3 Global schusscol2 = 6 EntityType shoter,shotercol EntityType shoter2,shotercol2 EntityType schuss,schusscol EntityType schuss2,schusscol2 Collisions schusscol,shotercol2,1,2 Collisions schusscol2,shotercol,1,2 und versuche es folgendermassen zu überprüfen. Code: [AUSKLAPPEN] If EntityCollided(schuss,shoter2) Then i=100 treffer1=treffer1+1 EndIf If EntityCollided(schuss2,shoter) Then i2=100 treffer2=treffer2+1 EndIf Jedoch werden die treffer nicht gezählt, sondern die kugeln rutschen am ziel vorbei. die kollision geht sich also aus dem weg. Habe schon vieles versucht, und in den meisten samples und codes usw. wird die kollision eben nur mit diesem wegrutschen benutzt, jedoch habe ich nichts gefunden, wo die kollision einfach nur gezählt werden soll. Für jegliche hilfe schonmal vielen herzlichen Dank! |
||
![]() |
Bigmichi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Collisions schusscol,shotercol2,1,2
Collisions schusscol2,shotercol,1,2 einmal reicht voll aus =) das webrutschen ist schon ok kannst aber auch so machen das der schuss dan stehen bleibt wenn er kollidiert das der treffer nicht gezählt wird liegt nicht an der Kol sondern an deiner Abfrage =) du musst es anders machen ![]() also erst abfragen mit wievielen Elementen er kollidiert ist mit countcollision(entity) glaubich bin ent sicher udn dan wenn mehr als 1 dan einfach COLLISIONENTITY(entity,1) und wenn dan bei der abfrage was rauskommt hast du das getroffene entity =) so würde ich es machen aber ich bin ja nur ein kleiner michi ![]() |
||
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
es gibt unter BB auch keine möglichkeit kollisionen zu erkennen und zugleich keine reaktion auf das objekt zu bewirken. entweder stopt dein objekt oder es slidet eben daran vorbei.
du kannst aber eines machen. du merkst dir position und geschwindigkeit vor jedem verschieben der objekte. im falle einer kollision machst du ein hideentity(getroffenes objekt) und bewegst deinen schuss nochmal von der vorherigen position auf deine neue. danach nochmal showentity( getroffenes objekt) wenn die objekte sich erst einmal überschnitten haben wird keine neuerliche kollisionsmeldung mehr rausgegeben und sie können sich auch nicht mehr gegenseitig in der bewegung behindern. mfg stfighter |
||
Denken hilft! |
beo6 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bigmichi hat Folgendes geschrieben: Collisions schusscol,shotercol2,1,2
Collisions schusscol2,shotercol,1,2 einmal reicht voll aus =) Es ist jeweils nur einmal. ![]() ![]() Und vielen dank für die Hilfe. Hat super geklappt. Das mit dem daran vorbei rutschen, war auch nicht so schlimm, da ich sowieso die objekte wieder zurücksetze. Ich dachte eben nur, das es daran liegt, das die objekte daran vorbeirutschen, da so nunmal nicht umbedingt eine kollision zustande kommt. |
||
2paul |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich hab das hinbekommen...
ich guck zuhause mal nach und lad den code hoch oki |
||
2paul |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
For a=1 To CountCollisions(schuss)
For cl.S_client = Each S_client If cl\pivot_handle = CollisionEntity(schuss,a) cl\schaden = cl\schaden + schuss_schaden EndIf Next Next ok, das sollte funktionieren, hab da noch nen bischen rumgekürzt, da bei mir da noch nen bischen mehr passiert client is in diesem fall der spieler... und pivot_handle sind seine füsse |
||
beo6 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja vielen dank. Aber das Problem besteht ja nicht mehr. Ich habe schon einen weg gefunden, wie es funktioniert.
Trozdem noch einmal vielen dank für deinen Lösungsvorschlag. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group