Collisions ein- und ausschalten?
Übersicht

NerleBetreff: Collisions ein- und ausschalten? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Kollegen,
Eine 3D-Frage. Jemand meinte neulich zu mir, Kollisionsabfragen sind immer sehr aufwendig und performance raubend. Darum möchte ich mit dem Collisions-Befehl möglichst sparsam umgehen - und die Kollisionsabfrage nur stellenweise anschalten - wenn sie wirklich gebraucht wird, und ansonsten wieder ausschalten. Denn die verschiedenen Kollisionsabfragen häufen sich langsam etwas, und nicht jede wird immer benötigt. Aber geht das mit Blitz eigentlich? Einmal den Befehl "Collisions" ausgeführt ist die entsprechende Kollisionsabfrage ja eingeschaltet. Weshalb es ja z.B. auch unsinnig wäre, diesen Befehl in die MainLoop zu setzen. Was aber schaltet diese eigentlich wieder aus? ![]() Ich würde nämlich den Befehl "Collisons" gerne an eine IF-Bedingung knüpfen, und ansonsten wieder ausschalten. Ist das möglich? |
||
![]() |
mahe |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du könntest die gesamte Kollisionsliste mittels ClearCollisions leeren und die benötigten wieder neu anlegen.
Ob sich das allerdings lohnt weiß ich nicht. So aufwendig sind Kollisionen nämlich nicht. Vorallem Kugel-Kugel-Kollisionen tun ganz bestimmt nicht weh. |
||
ʇɹǝıdɯnɹɹoʞ ɹnʇɐuƃıs - ǝpoɥʇǝɯ-ɹoɹɹıɯ ɹǝp uı ,ɹoɹɹǝ, |
Nerle |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen Dank mahe für Deinen Tipp, genau das suchte ich. Diesen Befehl hatte ich total übersehen!
![]() Eine Frage habe ich noch: Ist es eigentlich unnötig performance verbrauchend, wenn der "Collisions"-befehl tatsächlich in der MainLoop steht? Oder innerhalb einer Funktion, die immer wieder aufgerufen wird? Wird hier also unnötig ein Befehl immer wieder ausgeführt - oder handelt Blitz automatisch so, dass ein Collisionsbefehl sowieso ignoriert wird, wenn er bereits eingeschaltet wurde? |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Collisions hat nix in der Hauptschleife zu suchen .
Wenn du die Collisions ausschaltest möchtest kannste den EntityType auf 0 stellen . Collisionen zu Polygonen kosten mehr Zeit . Kugel->Kugel ist wohl am schnellsten . Kugel->Würfel Kugel->Polygon Wenn du z.B. LinePick benutzt um nen Spieler Objekt zu finden macht es Sinn den Pickmode z.B. beim Terrain auszuschalten . LinePicks auf kurze Distance sind auch schneller . |
||
Nerle |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Collisionen zu Polygonen kosten mehr Zeit .
Kugel->Kugel ist wohl am schnellsten . Das Problem ist, sobald ich Kugel-Kugel-Collision einstelle, funktioniert die Collisionsbfrage nicht. Obwohl ich bei allen entsprechenden Entitys einen Entity-Radius angegeben habe. Woran kann es denn noch liegen? Und zu LinePick - was dürfte denn performance sparender sein: Eine permanente Kollisionsbfrage (Schuss-Gegner) oder ein Line-Pick bei jedem Schuss? Und angenommen, die Schussfolge ist äußerst rasch (z.B. mind. 5 Schuss pro Sekunde). Die Entfernung wäre immer nur max. einen Screen weit, meist geringer. |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
die Collision geht nur von bewegten Objekten aus,
vieleicht haste das falsch herum programmiert . Schuss Gegner Collision taugt nix da das Objekt deinen Spieler überspringen kann . ich habs über LinePick gemacht mit der Entfernung wie sich das Objekt auch nach vorne bewegt . Das geht zum einen bei Projektilen die man sehen will und auch direkt wenn man von A nach B springt . |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group