做執行緒小遊戲的時候,需要繪製背景或者一些遊戲中的小元素。這時候,可以開乙個佇列和執行緒,其中佇列用於存放需要繪畫的背景,元素等等。執行緒則專門用於繪製,即只需要在主類中執行該類的start方法即可。需要注意的是,此處的繪製需要先將這些元素畫在一張快取上:bufferedimage.
bufferedimage是image的乙個子類,bufferedimage生成的在記憶體裡有乙個影象緩衝區,利用這個緩衝區我們可以很方便的操作這個,通常用來做修改操作如大小變換、變灰、設定透明或不透明等。
然後直接呼叫繪製執行緒中的start方法即可bufferedimage bfi=new bufferedimage(jfa.getwidth(),jfa.getheight(),bufferedimage.type_int_rgb);
graphics gr=bfi.getgraphics();
for(int i=0;i然後在佇列中,依次取出各個元素,用快取的畫筆將其繪在快取上。最後再用窗體上得到的畫筆將這張快取畫在窗體上即可。
需要注意的是,在用到的時候,需要在主類中,先將各個元素入佇列,arraylist< thing> list=new arraylist();
boss boss1=new boss();
list.add(boss1);
movethread move=new movethread();
move.start();
如果不需要畫很多元素上去,則不用入佇列,直接在建立快取後,然後先將這些元素畫到快取上之後,再畫到窗體上即可。
win32畫窗體背景
背景 應產品需求將視窗載入時的loading.gif換了一張,原先是白底的gif,然後換了一張黑底的gif,放上去真的好醜,因為窗體的背景色是白色。然後就需要我給窗體畫個背景顏色融合這個新的gif,踩了很多opengl ondraw等很多坑,這裡先po一下 void onpaint hdc hdc ...
塗手畫雅View背景變黑
如果設定成bitmap.compress compressformat.jpeg,100,fos 的背景都是黑色的 bitmap.erasecolor color.white 填充背景顏色 這個 都是白色的加上這個都是白色 mbitmap getbitmapbycolor screenwidth,s...
執行緒 守護執行緒 背景執行緒 執行緒傳參
守護執行緒 背景執行緒 12 9 2017 using system using system.collections.generic using system.linq using system.text using system.threading.tasks using system.thre...