dllee
站務副站長
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](http://www.delphi-ktop-com-tw.my-hot.com/download.php?download=upload%5C462367acbc7bb_KID02.96x96.jpg) 發表:321 回覆:2519 積分:1711 註冊:2002-04-15
發送簡訊給我
|
看到這個問題覺得很有趣:
■【BCB】【問題】有誰能做出圖片的這種SNOW效果?
引言:有誰能做出圖片的這種SNOW效果?![](http://delphi.ktop.com.tw/loadfile.php?TOPICID=17528013&CC=392007)
於是試著作作看,結果還讓我玩出來了
< src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=17577154&CC=393106">
不想下載的可以看以下的原始碼:
//---------------------------------------------------------------------------
// Falling pics by dllee (Dong-Liang Lee) http://dllee.ktop.com.tw
// <2004-09-11>
//---------------------------------------------------------------------------
#include
#pragma hdrstop #include "FallingUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Graphics::TBitmap *pBitmap;
Byte *Ptn[10];
Byte *PtnIndex;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
int ReOrder[8]={8,1,5,3,4,7,2,6};
pBitmap = new Graphics::TBitmap();
pBitmap->PixelFormat=pf24bit;
pBitmap->Width=256;
pBitmap->Height=128;
for(int i=0;i<10;i++)
{
Ptn[i]=new Byte[256*3];
memset(Ptn[i],0x10,256*3);
for(int j=0;j<256;j++)
if(j%3==0)
memset(&Ptn[i][j*3],0,3);
}
for(int i=0;i<256;i++)
{
if(i%3==0) continue;
Ptn[ReOrder[(i/3)%8]][i*3]=0xFF;
Ptn[9][i*3]=0xFF;
}
PtnIndex=new Byte[128];
memset(PtnIndex,0,128);
this->Color=clBlack;
}
//---------------------------------------------------------------------------
__fastcall TForm1::~TForm1()
{
delete [] PtnIndex;
for(int i=0;i<10;i++) delete [] Ptn[i];
delete pBitmap;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
memset(PtnIndex,0,128);
int iStep=-64;
for(int i=0;i<128;i++)
{
iStep++;
PtnIndex[127]=i%8+1;
memmove(&PtnIndex[0],&PtnIndex[2],126);
for(int i=0;iScanLine[128-j],
Ptn[PtnIndex[j-1]],256*3);
}
Canvas->Draw(15,15,pBitmap);
Sleep(5);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
吃軟也吃硬 dllee.ktop.com.tw 視動科技 VMASK - ViewMove Automation Software Kernel
------ http://www.ViewMove.com
|
roger-c
一般會員
![](./myimg/board/mystar_empty.gif)
![](images/icon_photo_none.gif) 發表:7 回覆:14 積分:4 註冊:2003-11-20
發送簡訊給我
|
不好意思,小弟的程式能力不足,不知可否方便對每一列程式碼做詳細註解,謝謝你囉!
|
conundrum
尊榮會員
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:893 回覆:1272 積分:643 註冊:2004-01-06
發送簡訊給我
|
既知自己能力多少 就應以自身不足部份補強 好高鶩遠 不是好事 要求 程式碼說明 還真不如題出不解之處 來的有討論意義
此舉 聰明反被誤之
遇到這樣的說法 不知要笑還是要哭 很多 開放原始碼 為什麼都沒註解
1 其一是保留
2 留下更廣擴的思維 可讓旁人取其義不取其法 學習 總是 堅苦的 快樂的學習 不代表沒有艱澀難熬的日子
|
dllee
站務副站長
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](http://www.delphi-ktop-com-tw.my-hot.com/download.php?download=upload%5C462367acbc7bb_KID02.96x96.jpg) 發表:321 回覆:2519 積分:1711 註冊:2002-04-15
發送簡訊給我
|
不知道有下載的網友是否有看出問題了呢?
如果沒有,就表示,人的眼睛還是很好騙的 < >
因為我發現我只算完成了一半,效果有點像,但不一樣 < > 說真的,不留說明...我本來的用意是要考考同事是否可以看得懂我在寫什麼? 同時也要向他說明,不寫說明,可能過個幾天或幾個月自己都看不懂了 ![]() class="code">Ptn[ReOrder[(i/3)%8]][i*3]=0xFF;
如果陣列名稱再故意取得沒什麼意義,如:
A[B[(i/3)%8]][i*3]=0xFF;
再使用完全指標表示法:
*(*(A *(B (i/3)%8)) i*3)=0xFF;
這像樣的 Code 我寫得出,但自己過 10 分鐘就看不懂了 ![]() < href="http://dllee.ktop.com.tw" target="blank">吃軟也吃硬 dllee.ktop.com.tw 視動科技 VMASK - ViewMove Automation Software Kernel
------ http://www.ViewMove.com
|
roger-c
一般會員
![](./myimg/board/mystar_empty.gif)
![](images/icon_photo_none.gif) 發表:7 回覆:14 積分:4 註冊:2003-11-20
發送簡訊給我
|
感謝兩位大大的指教,我想小弟我真的要下點功夫去專研了,謝囉!
|
dllee
站務副站長
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](http://www.delphi-ktop-com-tw.my-hot.com/download.php?download=upload%5C462367acbc7bb_KID02.96x96.jpg) 發表:321 回覆:2519 積分:1711 註冊:2002-04-15
發送簡訊給我
|
在發現 BUG 後,就不是用試的可以試出來的...
把一些說明寫上,不然,連自己都無法 Bugfix ![]() < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=17587170&CC=393330">
看得出分別嗎? ![]() 為了自己除錯方便,同時新增 class="code">
//---------------------------------------------------------------------------
// Falling pieces by dllee (Dong-Liang Lee) http://dllee.ktop.com.tw
// <2004-09-11> First release
// <2004-09-12> Bugfixed, pieces falling and gathering perfectly ![]()
//---------------------------------------------------------------------------
#>
#>>>>>=>>>=>=>>>>>>>>>>>>Name="Terminal">Font->Size=6;
for(int i=0;i<10;i++)
Canvas->TextOut(235,15+7*i,String("Ptn[")+i+String("]"));
for(int i=10;i<18;i++)
Canvas->TextOut(200,15+7*i,String("FallingPtn[")+(i-10)+String("]"));
}
//---------------------------------------------------------------------------
吃軟也吃硬 dllee.ktop.com.tw 視動科技 VMASK - ViewMove Automation Software Kernel
------ http://www.ViewMove.com
|