[英]Basic animation doesn't fire
我正在嘗試按照以下示例創建動畫:
http://seriss.com/people/erco/fltk/#Animate
除了不移動圖像而是移動圖像。 有一個汽車圖像應每半秒沿右下方向移動10次:
void func(void* data)
{
static int counter=0;
counter++;
Fl_PNG_Image* image= static_cast<Fl_PNG_Image*>(data);
Fl_Box* box= new Fl_Box(counter*10, counter*10,100,100);
box->image(image);
//delete box;
window->redraw();
if(counter==10)
{
Fl::remove_timeout(func,data);
}
else
{
Fl::repeat_timeout(.5,func,data);
}
}
int main(int argc, char **argv)
{
window = new Fl_Double_Window(width, height);
Fl_PNG_Image* image= new Fl_PNG_Image("car-down.png");
Fl_Box* box= new Fl_Box(0,0,100,100);
box->image(image);
Fl::add_timeout(.5, func, image);
//delete box;
window->end();
window->show(argc, argv);
return Fl::run();
}
我有兩個問題:
而不是創建新的框和圖像,而是移動框。 關閉窗口后,該框將被刪除
void func(void* data)
{
static int counter=0;
counter++;
//Fl_PNG_Image* image= static_cast<Fl_PNG_Image*>(data);
Fl_Box* box= static_cast<Fl_Box*) data;
box->position(counter*10, counter*10);
window->redraw();
...
}
int main(int argc, char **argv)
{
...
Fl::add_timeout(.5, func, box);
window->end();
window->show(argc, argv);
return Fl::run();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.