Gamestudio Links
Zorro Links
Newest Posts
Zorro 2.70
by jcl. 09/29/25 09:24
optimize global parameters SOLVED
by dBc. 09/27/25 17:07
ZorroGPT
by TipmyPip. 09/27/25 10:05
assetHistory one candle shift
by jcl. 09/21/25 11:36
Plugins update
by Grant. 09/17/25 16:28
AUM Magazine
Latest Screens
Rocker`s Revenge
Stug 3 Stormartillery
Iljuschin 2
Galactic Strike X
Who's Online Now
3 registered members (AndrewAMD, TipmyPip, OptimusPrime), 15,229 guests, and 7 spiders.
Key: Admin, Global Mod, Mod
Newest Members
krishna, DrissB, James168, Ed_Love, xtns
19168 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Bounding-Box problemlos vergrößern, aber wie? #232571
10/22/08 14:28
10/22/08 14:28
Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
A
Alexander Offline OP
Member
Alexander  Offline OP
Member
A

Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
Hallo liebe Entwickler,
ich habe ein kleines Problem mit dem vergrößern der Bounding-Box.

Folgende Situation gibt es: ich möchte die BBox von meinem Player wenn er von der Animation "stand" oder "walk" auf "attack" wechselt, vergrößern. Dazu benutze ich den C-Lite Befehl "c_updatehull". Soweit auch kein Problem, die BBox wird problemlos vergrößert.

Im Handbuch gibt es bei "c_updatehull" jedoch den folgenden berechtigten Hinweis:

Quote:
... c_updatehull prüft keine Überschneidungen. Deswegen müssen Sie sichergehen, dass beim Vergrößern der Bounding-Box genug Platz vorhanden ist. ...


Genau jetzt kommen wir zu meinem Problem, bzw. zu meinem Anliegen.

Ich habe mir jetzt mal 3 von meinen erfolgversprechendsten Ideen herausgesucht und zeige warum keine davon richtig, bzw. nur unzureichend funktioniert.


Idee 1
Ich vergrößere die BBox des Players zum testen für 1-2 Frames und überprüfe mit EVENT_BLOCK und EVENT_ENTITY ob ein Hindernis im Weg ist.

Problem
Wenn die BBox beim vergrößern bereits durch eine Wand oder in ein anderes Model ragt, nimmt EVENT_BLOCK und EVENT_ENTITY das leider nicht wahr. Deshalb würde die BBox dann fälschlicherweise auf die "attack" Animation vergrößert werden.


Idee 2
Ich erstelle in dem Player eine Box (Model) als "Sensor" und wenn die BBox vergrößert werden soll, schiebt sich der "Sensor" mit c_move bis zu den Grenzen der BBox, die sie bei der "attack" Animation hätte. Durch EVENT_BLOCK und EVENT_ENTITY könnte wieder geprüft werden, ob kein Hindernis vorhanden ist.


Problem
Der Player müsste den "you" Pointer bekommen, damit der Sensor bei c_move den Player ignoriert. Jetzt wäre aber das Problem, wenn ein Gegner mit einer c_trace Waffe auf den Player schießen würde, der Strahl von c_trace an der Box, bzw. "Sensor" enden würde. Ich kann das "IGNORE_YOU" Flag ja nicht setzen, da der Player den Pointer "you" leider schon besitzt und nicht der "Sensor".


Idee 3
Mit c_trace könnte man einen Strahl in die Blickrichtung des Players schicken und schauen ob eine Wand in der Nähe ist und dazu noch c_scan benutzen um mögliche Entitys zu orten.

Problem
Mit 1x c_trace könnte nur eine Wand mit einer gewissen Höhe erkannt werden, d.h. ist z.B. eine Theke oder sonstiges, was nicht so hoch ist im weg, würde ein c_trace das nicht erkennen (sinngemäß auch für Wände von oben nach unten, z.B. ein Eingang einer Höhle). Ein weiteres Problem von c_scan wäre, dass es nicht von der Kollisionshülle eines anderen Entitys ausgeht, sondern vom Urspruch des Objektes. Bei größeren Objekten würde das System leider nicht zu 100% funktionieren.



Meine Vorschläge wären:

- c_scan könnte auch Wände erfassen und man könnte sich aussuchen ob man vom Ursprung des Objektes geht, oder von der Kollisionshülle

- man könnte bei c_move und c_trace neben "IGNORE_ME" und "IGNORE_YOU" ein weiteres Flag einfügen mit z.B. "IGNORE_PLAYER"


Jedenfalls bin ich im Moment ratlos und weiß keine Lösung für mein, so dachte ich zumindest, einfaches Problem. wink


Gruß
Alex =)
Re: Bounding-Box problemlos vergrößern, aber wie? [Re: Alexander] #232680
10/23/08 06:36
10/23/08 06:36
Joined: Jul 2000
Posts: 28,024
Frankfurt
jcl Offline

Chief Engineer
jcl  Offline

Chief Engineer

Joined: Jul 2000
Posts: 28,024
Frankfurt
Von den Methoden 1 und 3 rate ich ab, aber Methode 2 müsste funktionieren. Allerdings verstehe ich Ihr Problem mit den Pointern nicht. Sie können den you Pointer doch nach dem Kollisionstest wieder auf NULL setzen.

Re: Bounding-Box problemlos vergrößern, aber wie? [Re: jcl] #232768
10/23/08 18:53
10/23/08 18:53
Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
A
Alexander Offline OP
Member
Alexander  Offline OP
Member
A

Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
Hallo JCL, im Prinzip würde ich da zustimmen, ein Problem sehe ich jedoch immer noch.

Folgendes:

Gehen wir mal davon aus, der Player möchte schießen. Er drückt also die entsprechende Taste, der "Sensor" fährt vom Ursprung des Players mit c_move bis zu dem Punkt wo die BBox hin vergrößert werden soll. Jetzt muss der Sensor ja soweit heraus fahren, bis er die derzeitige BBox (z.B. Animation "stand") des Players nicht mehr berührt, damit der you Pointer neu gesetzt werden kann / sollte.

Jetzt wäre aber doch das Problem, wenn ein Gegner mit einer c_trace Waffe in dem Moment auf den Player schießt wo der "Sensor" nach vorne gleitet, hätte der Player ja noch den you Pointer und der c_trace Strahl würde an dem Sensor enden und nicht den Player treffen.


Sehe ich das jetzt falsch? Gibt es vielleicht noch eine einfachere Möglichkeit zu prüfen, ob man die BBox problemlos vergrößern kann?

Vielen Dank schon mal für die Antwort. smile


Gruß
Alex =)
Re: Bounding-Box problemlos vergrößern, aber wie? [Re: Alexander] #232826
10/24/08 09:49
10/24/08 09:49
Joined: Jul 2000
Posts: 28,024
Frankfurt
jcl Offline

Chief Engineer
jcl  Offline

Chief Engineer

Joined: Jul 2000
Posts: 28,024
Frankfurt
Während eine Funktion ausgeführt wird, kann eine andere nicht zugleich schießen. Das passiert nur in der wait() Zeit. Sie können also innerhalb jeder Funktion beliebige, sogar globale Variablen verändern, solange Sie sie vor dem nächsten wait() wieder auf ihre Ursprungswerte zurücksetzen.

Re: Bounding-Box problemlos vergrößern, aber wie? [Re: jcl] #232828
10/24/08 10:33
10/24/08 10:33
Joined: Aug 2005
Posts: 343
Germany
HPW Offline
Senior Member
HPW  Offline
Senior Member

Joined: Aug 2005
Posts: 343
Germany
Selbst wenn du in deiner Funktion nicht alles in einem Frame machen kannst/möchtest, dann kannst du immer noch der Sensorentity einen niedrigen push Wert geben und die schießende Entity einen höheren push Wert und einen c_trace "Schuss" mit gesetztem IGNORE_PUSH ausführen lassen.
Dann würde die Sensorentity vom Schuss ignoriert werden.

Last edited by HPW; 10/24/08 10:34.

Evil Blood (v. 0.52) RPG
Commport.de (Social Network Community)
Re: Bounding-Box problemlos vergrößern, aber wie? [Re: HPW] #232835
10/24/08 11:46
10/24/08 11:46
Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
A
Alexander Offline OP
Member
Alexander  Offline OP
Member
A

Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
Stimmt, du hast recht. Das war das fehlende Puzzelstück! smile Super, vielen Dank an euch beide, jetzt müsste ich es eigentlich hinbekommen. wink


Gruß
Alex =)

Moderated by  old_bill, Tobias 

Gamestudio download | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1