請問如何讓一張圖有向吃角子老角的特效? |
缺席
|
waertf
一般會員 ![]() ![]() 發表:1 回覆:1 積分:0 註冊:2009-01-25 發送簡訊給我 |
目前是將兩張圖合併成一張width*2的圖
圖片是存在TBitmap *source3中 可是最多只能移到width*2的長度 請問是否可以依給定次數重覆平移輪播 另外以下程式碼是否可以改成讓他有平移的感覺 因為用sleep好像只有第一張圖停比較久 但copyrect的變動太快了沒有平移的效果 [code cpp] for(int i=0;i Image3->Canvas->CopyRect(Rect(0,0,source1->Width,source1->Height),source3->Canvas,Rect(i,0,(source1->Width) i,source1->Height)); Form1->Canvas->Draw(16,304,source1); Sleep(10); } [/code] 另外參考別人用 bcb 1.0作的 code也看不出所以然 水果機sample code |
carstyc
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:16 回覆:254 積分:329 註冊:2003-07-18 發送簡訊給我 |
請試看看在中間加入 refresh ,因為你圖形複製完後沒有refresh,只停個 10ms ,畫面應該不會有反應就開始繼續做下一個動作了。
===================引 用 waertf 文 章=================== 目前是將兩張圖合併成一張width*2的圖 圖片是存在TBitmap *source3中 可是最多只能移到width*2的長度 請問是否可以依給定次數重覆平移輪播 另外以下程式碼是否可以改成讓他有平移的感覺 因為用sleep好像只有第一張圖停比較久 但copyrect的變動太快了沒有平移的效果 [code cpp] for(int i=0;i{ Image3->Canvas->CopyRect(Rect(0,0,source1->Width,source1->Height),source3->Canvas,Rect(i,0,(source1->Width) i,source1->Height)); Form1->Canvas->Draw(16,304,source1); Sleep(10); } [/code] 另外參考別人用 bcb 1.0作的 code也看不出所以然 水果機sample code |
waertf
一般會員 ![]() ![]() 發表:1 回覆:1 積分:0 註冊:2009-01-25 發送簡訊給我 |
refresh()會造成閃爍
後來偶找到用 Delay(time) [code cpp] void Delay(int lMilliSeconds){ int lStart; lStart = GetTickCount(); do{ Application->ProcessMessages(); }while (GetTickCount() - lStart <= lMilliSeconds); } [/code] 然後再用for loop,在loop裡不斷的用CopyRect畫 另外加上Form->DoubleBuffered=true; 就可以有動畫的效果了 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |