Gamestudio Links
Zorro Links
Newest Posts
AlpacaZorroPlugin v1.3.0 Released
by kzhao. 05/22/24 13:41
Free Live Data for Zorro with Paper Trading?
by AbrahamR. 05/18/24 13:28
Change chart colours
by 7th_zorro. 05/11/24 09:25
Data from CSV not parsed correctly
by dr_panther. 05/06/24 18:50
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (AndrewAMD, 7th_zorro), 719 guests, and 6 spiders.
Key: Admin, Global Mod, Mod
Newest Members
LucasJoshua, Baklazhan, Hanky27, firatv, wandaluciaia
19053 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Bodenschalter basteln, ala Portal. #422482
05/11/13 09:01
05/11/13 09:01
Joined: Jun 2008
Posts: 156
B
Bastiuscha Offline OP
Member
Bastiuscha  Offline OP
Member
B

Joined: Jun 2008
Posts: 156
Hallo,

ich wollte so einen Schalter basteln, wie man das von Portal kennt. Man legt eine Kiste drauf und der Schalter wird aktiviert. Mein Problem dabei ist, dass ich kein Kollissionsevtent auslösen kann. Habe schon viele Varriationen durchprobiert, aber es passiert nichts.

Ich nutze eine Kistentragefunktion. Lasse ich die Kiste los fällt sie per Physik auf den Schalter mit: "pXent_settype(entTemp,PH_RIGID, PH_BOX);"

Der Bodenschalter (grosser Kreis als ENTITY) hat folgende Action zugewiesen bekommen:
Code:
function gndswitch6a_event()
{
  
  if (event_type == EVENT_ENTITY)
  {
    beep();
  }
  
}


action groundswitch6a() 
{
   
   entGroundSwitch6a = me;
   pXent_settype(me,PH_RIGID, PH_BOX);
   
   my.emask |= ENABLE_ENTITY;
   my.event = gndswitch6a_event;
   
}



Im Handbuch gibts unendliche Varriationen zum probieren...aber nichts hat mir geholfen. Ich habe sämtliche EVENT Möglichkeiten probiert. Nichts schlägt an.

Re: Bodenschalter basteln, ala Portal. [Re: Bastiuscha] #422483
05/11/13 09:36
05/11/13 09:36
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Kartoffel Offline
Expert
Kartoffel  Offline
Expert

Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Hmm, ich hätte auch die Methode, die probierst, verwendet, aber ich fürchte, events werden nur von c_trace,
-move, -etc. ausgelöst, und nicht von Physics-Bewegungen (was definitiv ein nettes feature wäre).

Edit: Du könntest evtl. deine eigene, einfache Kollisions-Erkunnung schreiben, indem du - während die Kiste
sich bewegt - immer in die Bewegungsrichtung der Kiste traced (mit der dementsprechenden Länge), und wenn
der trace auf den Schalter trifft, das Event auslösen.

Last edited by Kartoffel; 05/11/13 09:41.

POTATO-MAN saves the day! - Random
Re: Bodenschalter basteln, ala Portal. [Re: Kartoffel] #422484
05/11/13 09:43
05/11/13 09:43
Joined: Jun 2008
Posts: 156
B
Bastiuscha Offline OP
Member
Bastiuscha  Offline OP
Member
B

Joined: Jun 2008
Posts: 156
Im Handbuch steht aber, dass es auch per Physikengine getriggert wird. Wenn alle Stricke reissen, lass ich die Kiste mit cmove schnell runter fahren...also nen Fake "Fall". Wäre aber eine unschöne Lösung. :-/

Re: Bodenschalter basteln, ala Portal. [Re: Bastiuscha] #422485
05/11/13 09:56
05/11/13 09:56
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Du kannst auch alle paar Frames über die Kisten in deinem Level iterieren und gucken, ob sich diese über einem Schalter befinden oder nicht (if(abs(your.x-my.x) < ...), c_intersect, vec_dot, sonstige Verfahren), oder aber bspw. in einer while Schleife von der Kiste aus gen Boden tracen und so Schalter oder ähnliches ausfindig machen.


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Re: Bodenschalter basteln, ala Portal. [Re: Superku] #422492
05/11/13 12:53
05/11/13 12:53
Joined: Jun 2008
Posts: 156
B
Bastiuscha Offline OP
Member
Bastiuscha  Offline OP
Member
B

Joined: Jun 2008
Posts: 156
Juhu Leute, ich hab es doch noch geschafft! Ich konnte einfach nicht glauben, dass das nicht irgendwie geht. Die Lösung ist dann doch ganz einfach. Allerdings habe ich wieder viele Versuche gebraucht.

Die Lösung ist, (vieleicht auch gut für später Suchende):
pXent_setcollisionflag(me,you,NX_NOTIFY_ON_START_TOUCH);
me.event = ausführende_funktion;

Der "me" Pointer muss das fallende Physikobjekt und der You Pointer der Bodenschalter sein. Andersrum klappte es nicht. Dazu habe ich das noch in eine eigene Function gesetzt. Innerhalb der Schalter_Action funktioniert das nicht.

Jetzt habe ich auch schon die nächsten Probleme, aber bevor ich Euch damit nerve, will ich erst mal selber probieren. laugh

Re: Bodenschalter basteln, ala Portal. [Re: Bastiuscha] #422493
05/11/13 12:59
05/11/13 12:59
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Kartoffel Offline
Expert
Kartoffel  Offline
Expert

Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Danke fürs posten der lösung, werde das bestimmt irgendwann mal brauchen.


POTATO-MAN saves the day! - Random
Re: Bodenschalter basteln, ala Portal. [Re: Kartoffel] #422523
05/11/13 22:35
05/11/13 22:35
Joined: Jun 2008
Posts: 156
B
Bastiuscha Offline OP
Member
Bastiuscha  Offline OP
Member
B

Joined: Jun 2008
Posts: 156
Achja, macht man anstelle des You Pointers nur ein "NULL" wird bei jeder Kollision getriggert, egal gegen was kollidiert wird.


Moderated by  HeelX, Spirit 

Gamestudio download | chip programmers | 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