EVENT Problem

Posted By: CHaP

EVENT Problem - 01/11/08 18:06

Hey!

Irgendwie bereitet mir die neue event Syntax Probleme in LiteC.
Schaut euch mal folgendes an:

Code:

...
mouse_mode = 1;
mouse_range = 10000;
...

function fEVENT_Zillion()
{
switch(event_type)
{
case EVENT_CLICK:
{
set(my,TRANSLUCENT);
return;
}
case EVENT_IMPACT:
{
set(my,TRANSLUCENT);
return;
}
}
}

function fBigBang_Zillion()
{
my.emask |= (ENABLE_CLICK | ENABLE_IMPACT);
my.event = fEVENT_Zillion;
}



Tja, und genau das funktioniert nicht. Ich kann die Entity anklicken wie und wo ich will, die wird einfach nicht transparent. Genauso kann ich eine andere Entity in sie hinein bewegen, auch da keinerlei Ambitionen transparent zu werden.

Allerdings seh ich da keinen Fehler.

-------------------------------------------------
Hey!

^^ look at the code.
why it doesn't work?
Posted By: ello

Re: EVENT Problem - 01/11/08 18:30

hmm ich habs noch nie mit nem switch-case ausprobiert. theoretisch solltes ja funktionieren
Posted By: CHaP

Re: EVENT Problem - 01/11/08 20:39

Ja der Meinung bin ich ja auch. Ich habs selbst schon mit einer IF-Anweisung probiert.

Wenn man sogar noch den beep(); Befehl in die Funktion und ins else setzt, könnte man denken, der ignoriert das alles komplett.

Code:

function fEVENT_Zillion()
{
beep();
if(event_type == EVENT_CLICK)
{
set(my,TRANSLUCENT);
}
else
{
beep();
}
}



Der Ton wird nicht einmal "gespielt".

Vielleicht sollte ich das Programm mal neu installieren?!
Ich versuch es mal.

Hat vielleicht noch jemand dieses Problem?
Posted By: ello

Re: EVENT Problem - 01/11/08 20:57

naja. beep hat bei mir noch nie funktioniert
Posted By: CHaP

Re: EVENT Problem - 01/11/08 23:19

Och, der Beep(); Befehl ist recht nützlich um schnell zu prüfen, ob der Code an bestimmten Stellen ausgeführt bzw. passiert wird. Nutz ich oft.

Die Neuinstallation hat auch nix genützt. Von was ist denn ein EVENT_CLICK abhängig?

Mir fällt da spontan

mouse_mode (1)
mouse_range (x)
VISIBLE (on)
PASSABLE (off)

ein.

Ich guck mir den ganzen Quellcode morgen nochmal an. Vielleicht hab ich ja eine Kleinigkeit übersehen.


Wenn noch jemand was einfällt...
Posted By: Rusty

Re: EVENT Problem - 01/12/08 13:24

Verstehe nicht warum das bei dir nicht funktioniert. Habe mich damit in meinem eigenen Projekt auch beschäftigt. Bei mir ging es nicht weil ich Parameter übergeben wollte, dies aber leider nicht geht.

Code:
 
my.event = funktionsaufruf(parameter1);



Warum geht das eigentlich nicht?

Sonst fällt mir nur mouse_range ein. Spiele mit dem Wert und dann müsste es eigentlichh klappen.

Gruß
Rusty
Posted By: CHaP

Re: EVENT Problem - 01/12/08 13:50

...hat auch nicht funktioniert.

Ich hab jetzt grad noch etwas anderes bemerkt.
Dazu hab ich meine Views überlagert.

Der normale Quellcode:
Ich arbeite mit einem neuen View, der über den gesamten Bildschirm gelegt wird. Den Standart View (camera) stelle ich aus und arbeite nur mit dem neu erstellten View (v_BigBang)

Die Änderung:
Nun habe ich meinen v_BigBang auf ein drittel des Bildschirmes verkleinert und der ist jetzt nur noch oben links sichtbar und im Hintergrund ist der Standart View (camera) wieder aktiv.

Ich erstelle ein Objekt und benutze die obigen Funktionen.

Wenn ich die Maus in den v_BigBang bewege und klicke, geschiet nix.
Klicke ich hingegen im Standart View (vamera) auf das Obejekt, funktionierts.

Und jetzt kommt wieder der Punkt, wo ich die Sache nicht verstehe.
Muss ich meinen View (v_BigBang) erst noch irgendwie als Hauptview deklarieren? Das wäre mir neu.

Code:

VIEW* v_BigBang = // BigBang-Kamera
{
layer = 10;
}

function fCAMERA_InitSystem() // Kamera initialisierungs-Funktion
{
// reset(camera,VISIBLE); // Schaltet die Standart-Kamera vom 3DGS aus
set(v_BigBang,VISIBLE); // Schaltet die BigBang-Kamera "ein"
v_BigBang.size_x = screen_size.x/3;
v_BigBang.size_y = screen_size.y/3;
...
}

function fEVENT_Zillion()
{
switch(event_type)
{
case EVENT_CLICK:
{
set(my,TRANSLUCENT);
return;
}
case EVENT_IMPACT:
{
set(my,TRANSLUCENT);
return;
}
}
}

function fBigBang_Zillion()
{
my.emask |= (ENABLE_CLICK | ENABLE_IMPACT);
my.event = fEVENT_Zillion;
}

void main()
{
mouse_mode = 1;
camera.x -= 200;
fCAMERA_InitSystem(); // Initialisiert die Kamera Funktionen und v_BigBang
ent_create(mdl_Sphere1,vector(0,0,0),fBigBang_Zillion);
while(1)
{
vec_set(mouse_pos.x,mouse_cursor);
wait(1);
}
}


Posted By: CHaP

Re: EVENT Problem - 01/13/08 04:12

Tja, wie soll ich sagen, es funktioniert.

Warum?
Ich habe ein paar Funktionen verrückt und verändert. Mit den Views experimentiert. Das dahin kopiert und das dorthin und alles eigentlich, rein theoretisch, wieder zurückgesetzt.

Kann komplett nicht nachvollziehen, an was es gelegen haben könnte.
Hoffe es bleibt so.

THX4HLP
grEEtz
Posted By: HeelX

Re: EVENT Problem - 01/13/08 11:13

Quote:

Bei mir ging es nicht weil ich Parameter übergeben wollte, dies aber leider nicht geht. (...) Warum geht das eigentlich nicht?




Weil du da einen Funktionszeiger speicherst, wobei die Funktion von der engine gestartet und mit Parametern gefüllt wird.
Posted By: pararealist

Re: EVENT Problem - 01/14/08 09:49

mouse_range (x)

i had to set this pretty high (50000) to get a mouse click on an entity
working all the time.
© 2024 lite-C Forums