Guten Abend
ich beschäftige mich momentan(die Zeit erlaubt es mir mal wieder
) wieder ein wenig intensiver mit C++ und hätte diesbezüglich eine Frage bezüglich des zwischenzeitlichen unterbrechens des Funktionsablaufes:
Diese Funktion sollte an der Stelle "wait(time)" unterbrochen werden. Ich habe hierfür die folgende Funktion geschrieben:
Das Problem hierbei ist allerdings, dass dies den Prozessor extrem stark belastet und es sicher noch einen ressourcenschonenderen Weg gibt. Hat jemand eine Idee?
Das ganze läuft auf Debian Lenny. Danke für eure Mühe.
ich beschäftige mich momentan(die Zeit erlaubt es mir mal wieder

Code:
void *moveplayer(void *threadarg)
{
char *hello_msg;
struct thread_data *my_data;
my_data = (struct thread_data *) threadarg;
hello_msg = my_data->name;
int schnell = my_data->schnell;
int frische = my_data->frische;
int xold=my_data->posx;
int yold=my_data->posy;
int x = my_data->movetox;
int y = my_data->movetoy;
x=x-xold;
y=y-yold;
//printf("%d,%d (%d,%d)\n",x,y,xold,yold);
int dist=sqrt(x*x + y*y);
int geschw = schnell/10;
int time= ceil(dist/geschw);
wait(time);
my_data->posx+=my_data->movetox;
my_data->posy+=my_data->movetoy;
xold=my_data->posx;
yold=my_data->posy;
player(threadarg);
pthread_exit(NULL);
}
Code:
void wait ( int seconds )
{
clock_t endwait;
endwait = clock () + seconds * CLOCKS_PER_SEC ;
while (clock() < endwait) {}
}
Das ganze läuft auf Debian Lenny. Danke für eure Mühe.
Zuletzt bearbeitet: