G
Gelöschtes Mitglied 467863
Guest
Hallo zusammen.
Nachdem (dank eurer Hilfe) meine Digitaluhr super funktioniert, habe ich mir ein analoges Uhrwerk modelliert (). Diese will ich so animieren, dass die Zeit über Frames gesteuert wird. Ich habe folgenden Code in Coffee erstellt:
// Uhrzeit zum Start festlegen
var stunden = 9.0; // Wert zwischen 0 und 11 eingeben
var minuten = 23.0; // Wert zwischen 0 und 59 eingeben
var sekunden = 16.0; // Wert zwischen 0 und 59 eingeben
var last_sekunde = 16.0; // selben Wert wie bei Sekunden einsetzen
// Subroutine Zeiger drehen
drehen(doc,obj_name,drehung)
{ var obj = doc->FindObject(obj_name);
if (obj == NULL)
{return; }
var rotation = obj->GetRotation();
rotation.z = drehung;
obj->SetRotation(rotation); }
// Subroutine Zeit um eine Sekunde hochzählen
SetUhrzeit(doc,stunden,minuten,sekunden,last_sekunde)
{ if (sekunden == last_sekunde)
{ return; }
var doc = GetActiveDocument();
var sekunden = sekunden + 1;
if (sekunden > 59)
{ sekunden = 0;
minuten = minuten + 1; }
if (minuten > 59)
{ minuten = 0;
stunden = stunden + 1; }
if (stunden > 11)
{ stunden = 0; }
var last_sekunde = sekunden;
var drehung_h = -2 * 3.1415926 / 12 * stunden + (-3.1415926 / 360 * minuten);
var drehung_m = -2 * 3.1415926 / 60 * minuten;
var drehung_s = -2 * 3.1415926 / 60 * sekunden;
drehen(doc,"Sekundenzeiger",drehung_s);
drehen(doc,"Minutenzeiger",drehung_m);
drehen(doc,"Stundenzeiger",drehung_h);
drehen(doc,"Stellrad",drehung_m);
}
main(doc,op)
{ var doc = GetActiveDocument();
var akt_frame = doc ->GetTime()->GetFrame(doc->GetFps());
var flag_set = int(Modulo(akt_frame,25));
if(flag_set == 0)
{ SetUhrzeit(doc,stunden,minuten,sekunden,last_sekunde);
}
}
Beim Kompilieren kommt keine Fehlermeldung. Die Sekunden verändern sich aber nicht. Kann mir jemand sagen, wo mein Fehler liegt?
Danke im voraus.
Nachdem (dank eurer Hilfe) meine Digitaluhr super funktioniert, habe ich mir ein analoges Uhrwerk modelliert (). Diese will ich so animieren, dass die Zeit über Frames gesteuert wird. Ich habe folgenden Code in Coffee erstellt:
// Uhrzeit zum Start festlegen
var stunden = 9.0; // Wert zwischen 0 und 11 eingeben
var minuten = 23.0; // Wert zwischen 0 und 59 eingeben
var sekunden = 16.0; // Wert zwischen 0 und 59 eingeben
var last_sekunde = 16.0; // selben Wert wie bei Sekunden einsetzen
// Subroutine Zeiger drehen
drehen(doc,obj_name,drehung)
{ var obj = doc->FindObject(obj_name);
if (obj == NULL)
{return; }
var rotation = obj->GetRotation();
rotation.z = drehung;
obj->SetRotation(rotation); }
// Subroutine Zeit um eine Sekunde hochzählen
SetUhrzeit(doc,stunden,minuten,sekunden,last_sekunde)
{ if (sekunden == last_sekunde)
{ return; }
var doc = GetActiveDocument();
var sekunden = sekunden + 1;
if (sekunden > 59)
{ sekunden = 0;
minuten = minuten + 1; }
if (minuten > 59)
{ minuten = 0;
stunden = stunden + 1; }
if (stunden > 11)
{ stunden = 0; }
var last_sekunde = sekunden;
var drehung_h = -2 * 3.1415926 / 12 * stunden + (-3.1415926 / 360 * minuten);
var drehung_m = -2 * 3.1415926 / 60 * minuten;
var drehung_s = -2 * 3.1415926 / 60 * sekunden;
drehen(doc,"Sekundenzeiger",drehung_s);
drehen(doc,"Minutenzeiger",drehung_m);
drehen(doc,"Stundenzeiger",drehung_h);
drehen(doc,"Stellrad",drehung_m);
}
main(doc,op)
{ var doc = GetActiveDocument();
var akt_frame = doc ->GetTime()->GetFrame(doc->GetFps());
var flag_set = int(Modulo(akt_frame,25));
if(flag_set == 0)
{ SetUhrzeit(doc,stunden,minuten,sekunden,last_sekunde);
}
}
Beim Kompilieren kommt keine Fehlermeldung. Die Sekunden verändern sich aber nicht. Kann mir jemand sagen, wo mein Fehler liegt?
Danke im voraus.