gpt4 book ai didi

c - allegro5,C - 在循环中显示位图的副本

转载 作者:行者123 更新时间:2023-11-30 17:00:35 25 4
gpt4 key购买 nike

在我的程序中,我从文件(源)加载位图,我想复制它并在每次按下鼠标按钮时在屏幕上显示副本。我粘贴了复制并显示位图,但它不起作用。在我的代码中显示原创作品。

    while( true )
{
ALLEGRO_EVENT event;
al_wait_for_event( queue, &event );

if( event.type == ALLEGRO_EVENT_KEY_DOWN && event.keyboard.keycode == ALLEGRO_KEY_ESCAPE )
{
destroy( queue, source, display );
al_destroy_bitmap( copy );
return 0;
}

if( event.type == ALLEGRO_EVENT_MOUSE_BUTTON_DOWN )
{
if( copy )
al_destroy_bitmap( copy );

copy = al_create_bitmap( al_get_bitmap_width(source), al_get_bitmap_height(source) );

al_set_target_bitmap( copy );
al_draw_bitmap( source, 0, 0, 0 );
al_flip_display();
}
}

最佳答案

我已经找到了一个解决方案,可以使用 ALLEGRO_BITMAP* al_clone_bitmap( BITMAP* source) 函数来深度复制位图。

while( true )
{
ALLEGRO_EVENT event;
al_wait_for_event( queue, &event );

if( event.type == ALLEGRO_EVENT_KEY_DOWN && event.keyboard.keycode == ALLEGRO_KEY_ESCAPE )
{
destroy( queue, source, display );
al_destroy_bitmap( copy );
return 0;
}

if( event.type == ALLEGRO_EVENT_MOUSE_BUTTON_DOWN )
{
if( copy )
al_destroy_bitmap( copy );

copy = al_clone_bitmap( source );
al_draw_bitmap( copy, 0, 0, 0 );
al_flip_display();
}
}

关于c - allegro5,C - 在循环中显示位图的副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37533640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com