我的c++程序(使用Allegro库的游戏)在启动时需要加载许多文件(图片和字体)。在我的程序实际进入运行状态之前,需要花费几秒钟(大约2秒钟)的时间加载。正在像这样加载文件:

gamePic[0] = al_load_bitmap("Data/pic01.jpg");
gamePic[1] = al_load_bitmap("Data/pic02.jpg");
gamePic[2] = al_load_bitmap("Data/pic03.jpg");
gamePic[3] = al_load_bitmap("Data/pic04.jpg");
gamePic[4] = al_load_bitmap("Data/pic05.jpg");
gamePic[5] = al_load_bitmap("Data/pic06.jpg");
gamePic[6] = al_load_bitmap("Data/pic07.jpg");
gamePic[7] = al_load_bitmap("Data/pic08.jpg");
gamePic[8] = al_load_bitmap("Data/pic09.jpg");
gamePic[9] = al_load_bitmap("Data/pic10.jpg");
gamePic[10] = al_load_bitmap("Data/pic11.jpg");

我应该采用什么机制才能运行另一个动画,该动画将显示“文件正在加载...”?

最佳答案

1)确定哪种UI框架最适合您的应用程序/环境,一些示例包括Qt,MFC或(可能足以满足简单的窗口和进度条控件的要求)纯win32本机API(假设在Windows环境中,GTK +相当于Linux系统上的上述库)。 AFAIK allegro不提供UI API,但它是一个图形/图像处理库。您当然可以使用快板来呈现自己的控件,但这会更加困难

2)使用进度条控件创建一个UI窗口,并将其放入单独的线程中(仍然,在Windows平台上,这是通过在单独的线程上创建窗口和分配消息来完成的)

3)将进度条与工作同步,并确保在加载完成后卸载窗口(即重新连接并终止线程)

09-11 05:51