Ent_animate - var_percent

Posted By: Usche

Ent_animate - var_percent - 10/11/07 17:17

Hallo liebe Gamestudio Community!

Ich hab ein kleines Verständnisproblem, bin mir aber sicher, dass das ganz schnell behoben werden kann. Ich bin grade fleißig am Durcharbeiten des FPS-Toturials von "Grimber" und komme damit sehr gut zurecht. Jezt bin ich grade dabei ein paar kleine Ideen von mir zu verwirklichen und bin auf ein Problem gestossen:

Meine Absicht ist folgende: Am Empfangstresen im Eingangsbereich des Levels soll eine Sekretärin am Schreibtisch Wuseln; dafür habe ich mir fix ein Modell von der DL-Seite geladen und ihm eine kleine nette Animation (Kopf hin und herwenden und Hände bewegen) gegeben, nichts wirklich Spektakuläres aber ich wollt das Level ein bisschen belebter gestaltet und meine Fähigkeiten testen.
Überlegt habe ich mir die Animation einfach in eine Schleife zu packen und sie einfach immer wieder durchlaufen zu lassen und da kommt mein Problem.

Für die Animation benutze ich "Ent_animate(Entity,String,var_percent,mode)" im Script sieht das folgendermaßen aus:

Code:
ent_animate(me,"sit",sit_percent,ANM_CYCLE); // "sit" ist die animation   



Jezt habe ich eine Frage, wofür ist var_percent also in diesem Fall "sit_percent" zuständig? Ich bin nicht ganz hinter den Sinn dieser Variable gestiegen und hoffe das jemand es mir fix erklären könnte damit ich weiter an meinem Script feilen kann

Vielen Dank schonmal im Vorraus, MfG Usche
Posted By: dennis

Re: Ent_animate - var_percent - 10/11/07 17:36

Hi Usche,

"sit_percent" gibt den Fortschritt der Animation an.

Bei "sit_percent" = 0 "zeigt" das Model den ersten Frame der Animation "sit".
Bei "sit_percent" = 100 "zeigt" das Model den letzten Frame der Animation "sit".

Du kannst also schreiben:

Code:

var sit_speed = 4;

sit_percent += sit_speed*time_step; // Erhöhe "sit_percent"
sit_percent %= 100; // Werte über 100% wären sinnlos
ent_animate(me,"sit",sit_percent,ANM_CYCLE); // animiere


Posted By: Usche

Re: Ent_animate - var_percent - 10/11/07 18:11

Soll heissen das eine Animation sozusagen 100 Frames (100%) hat und der Wert angiebt welcher der 100 Frames gerade aktive ist? (Also 100 Frames werden ja druch die Engine errechnet da ich ja nur den Aufwand von 4 "selbst" animierten Frames betrieben habe) ok das macht das verständlich, vielen Dankt, mein Script sieht nun folgendermaßen aus:

Code:
 action rezeptionist 
{
while (1)
{
if (my.skill1 < 100) //Skill1 soll hier Var_Percent sein
{
my.skill1 += 5*time;
}else
{
my.skill1 = 0;
}
ent_animate = (me, "sit", my.skill1, ANM_CYCLE);
wait(1);
}
}



Klappt alles soweit, noch weitere Anmerkungen?

MfG Usche
Posted By: Xarthor

Re: Ent_animate - var_percent - 10/11/07 18:26

Den if block könnteste mit einer code zeile ersetzten.
Also dies ganze hier:
Code:

if (my.skill1 < 100) //Skill1 soll hier Var_Percent sein
{
my.skill1 += 5*time;
}else
{
my.skill1 = 0;
}



Durch das da:
Code:

my.skill1 += 5 * time_step % 100;



Anmerkung: Da ich davon ausgehe das du mindestens A6 benutzt rate ich dir statt "time" (alter syntax) den neuen syntax (time_step) zu benutzen. Ich habe diese in meinem beispiel berücksichtigt.
Posted By: Usche

Re: Ent_animate - var_percent - 10/11/07 18:47

Ok danke, ich hab das mit If block gemacht da ich auf der "sicheren" Seite sein wollte statt das mit den % zu machen, aber td danke für en Rat ich werde es gleich anwenden.

Allerdings ist es das erste mal das ich von time_step höre, was unterscheided es denn von der herkömmlichen Konstante "time" ?

MfG und vielen Dank Usche
Posted By: Fenriswolf

Re: Ent_animate - var_percent - 10/11/07 20:06

Hi,

Quote:

Allerdings ist es das erste mal das ich von time_step höre, was unterscheided es denn von der herkömmlichen Konstante "time" ?



time gehört zum alten Syntax und wurde von time_step ersetzt.
© 2024 lite-C Forums