Uhr needle erstellen

Posted By: Icke

Uhr needle erstellen - 09/01/10 17:54

Hi,
ich bin gerade beim rumtesten und möchte eine Analoguhr erstellen aber igendwie krieg ich es nicht hin.
Also zuerst habe ich ein Panel(400x300) erstellt via needle einen Uhrzeiger erstellt.

needle(398,248,"kleiner_Zeiger",0,0,90,0,100,NULL);

durch das verändern der "90"'ig dreht sich also nun der Zeiger. Was mich da zu veranlasste die 90'ig durch eine variable zu ersetzen und den wert dann via Scipt zu verändern. Leider wird die Variable mit dem Error E355 als falsch erkant.

Also habe ich noch ein wenig das Handbuch gefragt und
pan_setneedle(clock,0,screen_size.x/2,screen_size.y/2, bmap_fill(bmap_createblack(140,8,32),vector(255,255,255),100), 10,4,90,12,0,sys_hours);
gefunden. Schnell habe ich den mitgeliferten Code geteste und siehe da: genau das was ich will nur nicht ganz so schön.
Also jetzt echt mal: denn check i net.

Hier also nun meine Frage:
giebt es nich irgend ein verständliches Beispiel und nen kleinen Code den man problemlos in eine 2d-Anwendung einbinden kann.
Posted By: Pappenheimer

Re: Uhr needle erstellen - 09/01/10 18:16

Im 3DGS-Ordner "samples" ist das Skript-Beispiel einer Analoguhr.
Posted By: MasterQ32

Re: Uhr needle erstellen - 09/01/10 18:17

EDIT: zu langsam...

Code:
var time = 0;

PANEL* pan__=
{
    flags = SHOW;
    needle(398,248,"kleiner_Zeiger",0,0,0,0,24,time); 
} 

function main()
{
    while(1)
    {
        time = sys_hour;
        wait(1);
    }
}



die 90 bei dir ist das Offset, das lässt sich nicht verändern, aber die Var (bei dir vorher NULL).

außerdem fehlt dein Bildformat ("kleiner_Zeiger") hat keine Dateiendung.
für deine Uhr kannst du auch sys_hour direkt als var einsetzen

der code ist blind, sollte aber gehen
Posted By: Icke

Re: Uhr needle erstellen - 09/01/10 18:35

mitlerweile habe ich herrausgefunden das wenn man statt des NULL auch einfach
sys_seconds eingeben brauch um das gleiche ergebnis wie bei deinem Code zu erziehlen. Leider läuft die Uhr dann rückwerts.
Fragezeichen!
ein - vorsetzen hift nicht.
Haste noch ne Idee?
Posted By: MasterQ32

Re: Uhr needle erstellen - 09/01/10 18:48

mit meiner variable

time = -sys_seconds;

oder

needle(398,248,"kleiner_Zeiger",0,0,0,60,0,time);

weiß aber nicht, ob es geht
Posted By: Pappenheimer

Re: Uhr needle erstellen - 09/01/10 19:08

Hab's grad mal ausprobiert. Die Variable muss global, d.h. außerhalb einer Funktion definiert, sein.
Posted By: Icke

Re: Uhr needle erstellen - 09/01/10 19:23

ich definiere die Variable so:
var fuer_kleiner_Zeiger = 0;
und setze sie in einer function
function Uhr_bewegen()
{
while(1)
{
fuer_kleiner_Zeiger = sys_seconds;
wait(1);
}
}

dann setze ich sie oben im needle
Posted By: Icke

Re: Uhr needle erstellen - 09/01/10 19:27

habs jetzt wie folgt gelöst
function Uhr_bewegen()
{
fuer_kleiner_Zeiger = sys_seconds;

while(1)
{
fuer_kleiner_Zeiger = fuer_kleiner_Zeiger - 1;
wait(-1);
}
}
Posted By: Icke

Re: Uhr needle erstellen - 09/01/10 19:32

leider haut die Syncronisation nit der tatsechlichen uhrzeit nicht hin
Posted By: TrackingKeks

Re: Uhr needle erstellen - 09/01/10 19:48

äh, das müsste aber gehen.

function Uhr_bewegen()
{
while(1)
{
fuer_kleiner_Zeiger = sys_seconds;
wait(-1);
}
}

Was funktioniert denn nicht?

Posted By: Icke

Re: Uhr needle erstellen - 09/01/10 19:56

stimmt aber dann geht die Uhr falschrum
so funtioniert es jedenfalls 100%'ig
function Uhr_bewegen()
{
while(1)
{
fuer_kleiner_Zeiger = -sys_minutes;
fuer_grossen_Zeiger = -sys_hours;
wait(1);
}
}
hab mich mal wieder total verrand

Danke euch allen
© 2024 lite-C Forums