1 registered members (Ayumi),
662
guests, and 3
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Kugel mit realer Physic
#153049
09/09/07 21:18
09/09/07 21:18
|
Joined: Feb 2006
Posts: 20
Kai008
OP
Newbie
|
OP
Newbie
Joined: Feb 2006
Posts: 20
|
Tag. Zuerst: Ich bin eigendlich totaler Noob mit dem 3DGS, mein bestes "Projekt" war ein Raum in dem eine Kamera die erste Perspektive eines Objectes darstellt und man es mit den Pfeiltasten wie in einen Ballerspiel steuert. x_x
Also, ich wollte eine Kugel, die sich physikalisch möglichst realisitsch benimmt. Dazu habe ich im AUM folgenden Script gefunden:
action ball { ball = my; my.scale_x = 1.5; my.scale_y = my.scale_x; my.scale_z = my.scale_x; phent_settype (my, ph_rigid, ph_sphere); phent_setmass (my, 5, ph_sphere); phent_setfriction (my, 40); phent_setdamping (my, 20, 20); phent_setelasticity (my, 80, 5); while(1) { vec_set (temp, nullvector); temp.z = 0; vec_rotate (temp, vector(camera.pan, 0, 0)); vec_normalize (temp, 200 * time); phent_addtorqueglobal (my, temp); wait (1); } }
Hier kommt auch der Befehl "phent_settype" aus den anderen Physic-Thread in diesen Bereich vor. (http://www.coniserver.net/ubbthreads/showflat.php/Cat/0/Number/780865/an/0/page/0#Post780865)
Jetzt bekomme ich folgende Fehlermeldung:
Parameter unknown ball
Die Fehlermeldungen beziehen sich auf die Zeile:
ball = my;
Wäre nett wenn mir jemand mit einfachsten Wörtern erklärt warum das so ist. ._.
Scr für my bad Englisch >_<
|
|
|
Re: Kugel mit realer Physic
[Re: Kai008]
#153050
09/09/07 21:38
09/09/07 21:38
|
Joined: Mar 2003
Posts: 51 Fürstenfeldbruck
Sticky
Junior Member
|
Junior Member
Joined: Mar 2003
Posts: 51
Fürstenfeldbruck
|
Hi, nun bin zwar auch net der Coder aber wenn ich das richtig sehe ist "ball" nicht definiert. Mit Code:
ball = my;
weist du einer unbekannten (also "ball") die my-Funktion zu und das kann dann so net gehen. Versuchs mal mit Code:
var ball;
action ball { .... }
Vielleicht klappts :-) Achso wenn Fehler hier drinne sind bitte ich um Korrektur durch die Profis möchte ja keinen quatsch erzählen ;-) Lg Sticky
Last edited by Sticky; 09/09/07 21:41.
|
|
|
Re: Kugel mit realer Physic
[Re: Kai008]
#153052
09/10/07 07:32
09/10/07 07:32
|
Joined: Apr 2005
Posts: 4,506 Germany
fogman
Expert
|
Expert
Joined: Apr 2005
Posts: 4,506
Germany
|
Das geht zwar, ist aber so nicht ganz richtig. "ball" beschreibt einen Entity Pointer und keine Variable. Das es trotzdem geht, hängt mit den Internas von c-Script zusammen. Allerdings gibt es eine Fehlermeldung, sobald Du mit der Entity "ball" etwas machen willst.
Schreibe statt: var ball;
dieses hier: entity* ball;
über die Action.
Damit hast Du aus "ball" einen Zeiger auf eine Entity gemacht.
Mittels
ball = me;
wird der Zeiger der betreffenden Entity zugewiesen.
Nun kannst Du in anderen Funktionen auf den Ball zugreifen, z.B. mit
ball.invisible = on; // Ball unsichtbar machen
Vorher musst Du warten / sicherstellen, daß der Pointer gefüllt ist:
while(!ball){wait(1);}
Hoffe das hilft und verwirrt Dich jetzt nicht zu sehr.
no science involved
|
|
|
Re: Kugel mit realer Physic
[Re: fogman]
#153053
09/10/07 08:35
09/10/07 08:35
|
Joined: Jul 2007
Posts: 163 c:\Germany\Bavaria.exe
G_Tos
Member
|
Member
Joined: Jul 2007
Posts: 163
c:\Germany\Bavaria.exe
|
Also muss man ball=me schreiben und nicht ball=my...deshalb ging des bei mir auch nicht...
Spiele zu spielen ist Übung, sie zu machen Kunst!(Zitat)
|
|
|
Re: Kugel mit realer Physic
[Re: G_Tos]
#153054
09/10/07 08:40
09/10/07 08:40
|
Joined: Apr 2005
Posts: 4,506 Germany
fogman
Expert
|
Expert
Joined: Apr 2005
Posts: 4,506
Germany
|
me = my your = you
Sollte beides gehen, ist egal.
no science involved
|
|
|
Re: Kugel mit realer Physic
[Re: Kai008]
#153057
09/10/07 10:39
09/10/07 10:39
|
Joined: Apr 2005
Posts: 4,506 Germany
fogman
Expert
|
Expert
Joined: Apr 2005
Posts: 4,506
Germany
|
Angenommen, Du hast eine Action: Code:
entity* ball; // Entity definition = pointer
action ballaballa // Action für den Ball { ball = me; }
Nun kannst Du von einer anderen Funktion auf den Ball zugreifen: Code:
function verstecke_ball { while(!ball){wait(1);} // warte bis der pointer gefüllt ist ball.invisible = on; // mach die entity ball unsichtbar }
on_v = verstecke_ball; // Taste "v" löst die Funktion aus
while(!ball) entspricht while(ball == 0) In der Action selbst musst Du den Pointer nicht prüfen, da er ja von ihr gefüllt wird.
no science involved
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|