FLTK window 在 while 循环 c++ 中未显示
FLTK window not showing in while loop c++
我正在尝试在 FLTK 中实现游戏循环
void SnakeFLTK::init() {
_display = new Fl_Window(900, 600);
if (!_display)
throw SnakeFLTKException("Couldn't make fltk window!");
_display->color(FL_BLACK);
_display->show();
while (!_doExit) {
std::cout << "-->" << std::endl;
}
Fl::run();
}
我遇到的问题是 window 没有显示。我想在 while (!_doExit)
循环中继续显示和重绘 window,使用 _doExit
很重要。我试过使用
while (Fl::wait > 0)
但是这个方法似乎有它自己的等待事件的循环。
如何像我一样实现循环并显示 window?
FLTK 在调用 Fl::run
之前什么都不做。因此,您在调用 Fl::run
后无法执行任何操作,因为仅当 main window 关闭时函数 returns 才关闭。
正是为了在 Fltk 本身 "running" 时做一些事情,你可以像这样注册到空闲循环:
void CallbackFunc( void* )
{
std::cout << "Hallo" << std::endl;
}
int main() {
auto _display = new Fl_Window(900, 600);
_display->color(FL_BLACK);
_display->show();
Fl::add_idle( CallbackFunc );
Fl::run();
}
在给定的回调函数中,您可以在 FLTK 中进行绘图或任何您想在 FLTK 中实现的操作,这些操作不受来自活动小部件本身的事件驱动。
我正在尝试在 FLTK 中实现游戏循环
void SnakeFLTK::init() {
_display = new Fl_Window(900, 600);
if (!_display)
throw SnakeFLTKException("Couldn't make fltk window!");
_display->color(FL_BLACK);
_display->show();
while (!_doExit) {
std::cout << "-->" << std::endl;
}
Fl::run();
}
我遇到的问题是 window 没有显示。我想在 while (!_doExit)
循环中继续显示和重绘 window,使用 _doExit
很重要。我试过使用
while (Fl::wait > 0)
但是这个方法似乎有它自己的等待事件的循环。 如何像我一样实现循环并显示 window?
FLTK 在调用 Fl::run
之前什么都不做。因此,您在调用 Fl::run
后无法执行任何操作,因为仅当 main window 关闭时函数 returns 才关闭。
正是为了在 Fltk 本身 "running" 时做一些事情,你可以像这样注册到空闲循环:
void CallbackFunc( void* )
{
std::cout << "Hallo" << std::endl;
}
int main() {
auto _display = new Fl_Window(900, 600);
_display->color(FL_BLACK);
_display->show();
Fl::add_idle( CallbackFunc );
Fl::run();
}
在给定的回调函数中,您可以在 FLTK 中进行绘图或任何您想在 FLTK 中实现的操作,这些操作不受来自活动小部件本身的事件驱动。