REFSKRIPT ; Gravitation incl. Bewegung + Abprallen sowie Emitter für Objekte und Metaballs ; ; Beginn GET_N_PARAMS GET_RESULT np RETURN_IF_EQUAL np 0 ANIM_FX GET_PARAM_NR 1 GET_RESULT modus GET_PARAM_NR 2 GET_RESULT afxname IF_STR_EQUAL_GOTO modus INIT init IF_STR_EQUAL_GOTO modus INIT_READ init_read IF_STR_EQUAL_GOTO modus START start IF_STR_EQUAL_GOTO modus PRE_RENDER prerender IF_STR_EQUAL_GOTO modus AFTER_RENDER afterrender IF_STR_EQUAL_GOTO modus FINISH finish IF_STR_EQUAL_GOTO modus GET_OBJS get_objs IF_STR_EQUAL_GOTO modus SET_OBJS set_objs IF_STR_EQUAL_GOTO modus GET_INFO get_info MELDUNG Falscher Aufruf RETURN 0 ;***************************************************** >init: GET_OBJEKT "Welches Objekt?" 3 RETURN_IF_ABBRUCH AB GET_RESULT name ADD_STR1 "es wird" name "animiert" GET_RESULT zeigen PRINT zeigen ADD_STR afxname - name GET_RESULT neuname OBJ_SET_NAME afxname neuname GET_RESULT afxname GOTO init1 >init_read: SET_VAR afxname ---- >init1: AFX_ALLOK_INTERN_VARS afxname 13 1 1 AFX_SET_OBJ afxname 0 name AFX_SET_N_OBJ_VARS afxname 8 AFX_DEFINE_OBJ_VAR afxname 0 1 "links/rechts Bewegen" -1 1 AFX_DEFINE_OBJ_VAR afxname 1 1 "hinten/vorne Bewegen" -1 1 AFX_DEFINE_OBJ_VAR afxname 2 1 "Endalter" 0 100 AFX_DEFINE_OBJ_VAR afxname 3 1 "Stärke der Gravitation" -1 1 AFX_DEFINE_OBJ_VAR afxname 4 0 "in Bewegungsrichtung drehen? 0=Nein 1=Ja" 0 1 AFX_DEFINE_OBJ_VAR afxname 5 0 "Bei 0-Linie stoppen? 0=Nein 1=Ja" 0 1 AFX_DEFINE_OBJ_VAR afxname 6 0 "auf jede Kollision prüfen? 0=Nein 1=Ja" 0 1 AFX_DEFINE_OBJ_VAR afxname 7 1 "Stärke der Elastizität in %" 0 100 OBJ_SET_VAR afxname 0 0 OBJ_SET_VAR afxname 1 0 OBJ_SET_VAR afxname 2 50 OBJ_SET_VAR afxname 3 0.25 OBJ_SET_VAR afxname 4 0 OBJ_SET_VAR afxname 5 1 OBJ_SET_VAR afxname 6 0 OBJ_SET_VAR afxname 7 0 RETURN OK >start: AFX_GET_OBJ afxname 0 GET_RESULT objekt OBJ_GET_VAR objekt 0 GET_RESULT x OBJ_GET_VAR objekt 1 GET_RESULT y OBJ_GET_VAR objekt 2 GET_RESULT z OBJ_GET_VAR objekt 3 GET_RESULT wx OBJ_GET_VAR objekt 4 GET_RESULT wy OBJ_GET_VAR objekt 5 GET_RESULT wz OBJ_GET_VAR objekt 6 GET_RESULT größenfaktor AFX_SET_REAL afxname 0 x AFX_SET_REAL afxname 1 y AFX_SET_REAL afxname 2 z AFX_SET_REAL afxname 3 wx AFX_SET_REAL afxname 4 wy AFX_SET_REAL afxname 5 wz AFX_SET_REAL afxname 6 größenfaktor AFX_SET_INT afxname 0 1 OBJ_GET_VAR afxname 7 GET_RESULT ping FUNCTION (z*ping)/100 GET_RESULT neuz AFX_SET_REAL afxname 7 neuz AFX_SET_REAL afxname 8 0 AFX_SET_REAL afxname 9 0 AFX_SET_REAL afxname 10 0 AFX_SET_REAL afxname 11 0 AFX_SET_REAL afxname 12 0 AFX_SET_INT afxname 0 0 RETURN OK >prerender: AFX_GET_OBJ afxname 0 GET_RESULT objekt GET_PARAM_NR 3 GET_RESULT startzeit GET_PARAM_NR 4 GET_RESULT endzeit GET_PARAM_NR 5 GET_RESULT zeit GET_PARAM_NR 6 GET_RESULT bildnr GET_PARAM_NR 7 GET_RESULT anzahl GET_PARAM_NR 8 GET_RESULT wire SUB endzeit startzeit GET_RESULT gesamtzeit AFX_GET_REAL afxname 0 GET_RESULT x AFX_GET_REAL afxname 1 GET_RESULT y AFX_GET_REAL afxname 2 GET_RESULT z AFX_GET_REAL afxname 3 GET_RESULT wx AFX_GET_REAL afxname 4 GET_RESULT wy AFX_GET_REAL afxname 5 GET_RESULT wz AFX_GET_REAL afxname 6 GET_RESULT grfaktor OBJ_GET_VAR afxname 0 GET_RESULT xbew OBJ_GET_VAR afxname 1 GET_RESULT ybew OBJ_GET_VAR afxname 2 GET_RESULT endalter OBJ_GET_VAR afxname 3 GET_RESULT zbew OBJ_GET_VAR afxname 4 GET_RESULT drehen OBJ_GET_VAR afxname 5 GET_RESULT linie OBJ_GET_VAR afxname 6 GET_RESULT kollision OBJ_GET_VAR afxname 7 GET_RESULT ping AFX_GET_REAL afxname 7 GET_RESULT grundz AFX_GET_REAL afxname 8 GET_RESULT deltaxx AFX_GET_REAL afxname 9 GET_RESULT deltayy AFX_GET_REAL afxname 10 GET_RESULT deltazz AFX_GET_REAL afxname 11 GET_RESULT rückz AFX_GET_REAL afxname 12 GET_RESULT minusz AFX_GET_INT afxname 0 GET_RESULT treffer SET_VAR x1 0 SET_VAR y1 0 GEO_GET_BBOX objekt GET_RESULT koord COPY_WORD koord 1 GET_RESULT xmin COPY_WORD koord 2 GET_RESULT ymin COPY_WORD koord 3 GET_RESULT zmin COPY_WORD koord 4 GET_RESULT xmax COPY_WORD koord 5 GET_RESULT ymax COPY_WORD koord 6 GET_RESULT zmax FUNCTION abs(xmin-xmax)*grfaktor GET_RESULT größex FUNCTION abs(ymin-ymax)*grfaktor GET_RESULT größey FUNCTION abs(zmin-zmax)*grfaktor GET_RESULT größez FUNCTION (((größex/2)*xbew)*gesamtzeit)/anzahl GET_RESULT deltax FUNCTION (((größey/2)*ybew)*gesamtzeit)/anzahl GET_RESULT deltay FUNCTION ((9.807*zbew)*gesamtzeit)/anzahl GET_RESULT deltaz FUNCTION ((gesamtzeit*endalter)/100) GET_RESULT laufzeit FUNCTION ((gesamtzeit*endalter)/100)-zeit GET_RESULT restzeit DIV restzeit laufzeit GET_RESULT multi IF_EQUAL_GOTO xbew 0 zuy IF_EQUAL_GOTO endalter 100 nominusx1 IF_LESS_GOTO restzeit 0 nominusx2 MUL deltax multi GET_RESULT deltax GOTO nominusx1 >nominusx2: SET_VAR deltax 0 >nominusx1: ADD deltaxx deltax GET_RESULT x1 AFX_SET_REAL afxname 8 x1 >zuy: IF_EQUAL_GOTO ybew 0 nonull IF_EQUAL_GOTO endalter 100 nominusy1 IF_LESS_GOTO restzeit 0 nominusy2 MUL deltay multi GET_RESULT deltay GOTO nominusy1 >nominusy2: SET_VAR deltay 0 >nominusy1: ADD deltayy deltay GET_RESULT y1 AFX_SET_REAL afxname 9 y1 >nonull: ADD deltazz deltaz GET_RESULT z1 AFX_SET_REAL afxname 10 z1 IF_EQUAL_GOTO drehen 0 nodrehen IF_LESS_GOTO restzeit 0 nodrehen FUNCTION wx-(x1*8) GET_RESULT winkx FUNCTION wy-(y1*8) GET_RESULT winky GEO_SET_ORIENT objekt winkx winky wz >nodrehen: DIV größez 2 GET_RESULT größe >fertigdreh: IF_EQUAL_GOTO ping 0 normal1 IF_EQUAL_GOTO treffer 1 rückschlag IF_EQUAL_GOTO treffer 2 nachunten >normal1: IF_EQUAL_GOTO linie 0 weiter9 SUB z z1 GET_RESULT abfrage IF_GREATER_GOTO abfrage größe weiter9 AFX_SET_INT afxname 0 1 FUNCTION grundz-rückz+minusz GET_RESULT neuz AFX_SET_REAL afxname 7 neuz FUNCTION rückz+((deltaz*ping)/100) GET_RESULT rz AFX_SET_REAL afxname 11 rz >normal2: AFX_SET_REAL afxname 10 z1 ADD x x1 GET_RESULT x1 ADD y y1 GET_RESULT y1 SUB z z1 GET_RESULT z1 GEO_SET objekt x1 y1 größe IF_EQUAL_GOTO wire 0 fert2 PKL_PROJEKT_OBJ objekt >fert2: RETURN OK >nachunten: SUB deltaz minusz GET_RESULT dz ADD deltazz dz GET_RESULT z1 SUB z z1 GET_RESULT abfrage FUNCTION (deltaz/1.11)*(abfrage/grundz) GET_RESULT minusz AFX_SET_REAL afxname 12 minusz GOTO normal1 >rückschlag: IF_LESS_GOTO grundz größe normal2 SUB deltaz minusz GET_RESULT dz SUB deltazz dz GET_RESULT z1 SUB z z1 GET_RESULT abfrage FUNCTION (deltaz/1.11)*(abfrage/grundz) GET_RESULT minusz AFX_SET_REAL afxname 12 minusz IF_LESS_GOTO abfrage grundz weiter9 AFX_SET_INT afxname 0 2 SUB z grundz GET_RESULT z1 >weiter9: AFX_SET_REAL afxname 10 z1 ADD x x1 GET_RESULT x1 ADD y y1 GET_RESULT y1 SUB z z1 GET_RESULT z1 GEO_SET objekt x1 y1 z1 IF_EQUAL_GOTO wire 0 fert PKL_PROJEKT_OBJ objekt >fert: RETURN OK >afterrender: RETURN OK >get_objs: > set_objs: >get_info: RETURN OK >finish: GET_PARAM_NR 8 GET_RESULT wire AFX_GET_OBJ afxname 0 GET_RESULT objekt AFX_GET_REAL afxname 0 GET_RESULT x AFX_GET_REAL afxname 1 GET_RESULT y AFX_GET_REAL afxname 2 GET_RESULT z AFX_GET_REAL afxname 3 GET_RESULT wx AFX_GET_REAL afxname 4 GET_RESULT wy AFX_GET_REAL afxname 5 GET_RESULT wz AFX_GET_REAL afxname 6 GET_RESULT size GEO_SET objekt x y z OBJ_SET_VAR objekt 3 wx OBJ_SET_VAR objekt 4 wy OBJ_SET_VAR objekt 5 wz OBJ_SET_VAR objekt 6 size IF_EQUAL_GOTO wire 0 fert1 PKL_PROJEKT_OBJ objekt PLOT_PKL >fert1: RETURN OK