我正在使用 Allegro 和 C++ 开发 2D 平台游戏。但是,有一个问题。在游戏中,角色拥有橡皮子弹,当子弹发射时,它会永远从墙上反射出来。角色可以发射 30 发子弹,但子弹数越多,图形变得越慢。虽然我没有使用任何循环来绘制任何子弹的运动,但游戏不可避免地会变慢。这是移动子弹的功能:
void Character :: moveBullets(void){
if(bullet_turn != bullet_count){
bullet_chain[bullet_turn++]->move();
else
bullet_turn = 0;}
这是函数 move():
rectfill(buffer, getX(), getY(), getX() + bullet_image[direction]->h, getY() + bullet_image[direction]->w, 0);
//update direction
acquire_screen();
draw_sprite(buffer, bullet_image[direction], x, y);
blit(buffer, screen, 0, 0, 0, 0, buffer->w, buffer->h);
release_screen();
}
我应该怎么办?绘制许多精灵时,Allegro 是否总是放慢速度?