2009-12-15 19 views
0

我正在使用Allegro遊戲庫製作平鋪遊戲。我希望瓷磚指數級更亮。不幸的是,Allegro沒有「增亮」功能。然後,我決定去做的事情是,將一塊瓦片放到緩衝區中,然後對於每塊像素點,然後爲它增加rgb值和putpixel。與此相關的一個大問題是,由於它做了兩倍的工作,所以嚴重降低了幀率。有沒有什麼辦法可以實現這一點,而不是每個瓷磚的瓦片位圖稍微更亮(這將是荒謬的)。由於使用Allegro更改blitted位圖的亮度

回答

1

您可以使用:

draw_lit_sprite

它的作用是採取位圖,用「光」,你必須使用此之前設置繪製功能:

set_trans_blender

所以基本上,你必須做的是:

//Init allegro code here 
    init_allegro_stuff(); 

    //It takes as arguments red, green, blue, alpha 
    //so in this case it's a white light 
    set_trans_blender(255, 255, 255, 255); 

    //Draws the sprite like draw_sprite but with intensity 
    draw_lit_sprite(buffer, yourSprite, x, y, intensity); 

希望它能幫助:)

0

這可能是可能的調色板:http://alleg.sourceforge.net/stabledocs/en/alleg011.html

我不知道很多關於快板,但我知道,在舊的8位遊戲,衰落通常是通過改變顏色表的實現視頻卡從渲染時讀取,因此提供了一種恆定的方式來同時更新屏幕上的許多像素。

希望幫助:)

+0

謝謝,我使用的是32位真彩色不幸 – jmasterx 2009-12-15 03:40:36