时钟中断与控制动画速度问题
我在djjgpp里,用allegro库。主体代码差不多是这样。
程序代码:
#include ... #include ... int timer = 0; void myfunc() { timer ? 0 : 1; } int main() { int flag; ..... ..... allegro_init(); install_keyboard(); install_timer(); install_init_ex(myfunc, BPS_TO_TIMER(30)) //每秒钟触发30次 while(1) { if (key[KEY_A]) { if (flag != timer) { //动画移动 ............. flag = timer; } } else if (key[KEY_ALT] & key[KEY_F4]) { //动画结束 ............. } } ........... ........... }
就像《Allegro - 游戏程序设计库中文手册》所说的,不要在时钟处理程序里写太多的复杂代码: 一个基本的规则是你应该设置 一些标志然后在你的主控制循环里来回应它们.
那在我的主控循环里检测那些标志的方法,像我这样是不是就可以了。还有没有更有效,更好的方法?
[[it] 本帖最后由 Iam070 于 2008-4-27 18:21 编辑 [/it]]