忍者ブログ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【捨丸&KID】blt 指令介紹

 

*  bit動畫
 在novel game的戰鬥場景中應該有見過類似刀劍揮舞軌跡的動畫。
 那其實是每格只有畫面數分之一大小的圖像並排在一起,將每格放大之後依序連續表示而使其變成動畫的處理。每一格其實只有實際圖像的數分之一。

*  進行bit處理時的流程
 首先必須將動畫用的圖像利用btndef命令將之讀入至記憶體中。
 然後將記憶體中的圖像切割成複數個之後在利用blt命令來連續表示。

 btndef “9x.bmp”
 blt 0,0,640,480,0,0,320,240

*  讀入動畫用圖像
 首先利用btndef命令讀入圖像。

 程式碼
 btndef 叫出圖像的文字列
 範例
 btndef “9x.bmp”

 這裡用到btn命令中也被使用到,讀取button原本圖像的btndef命令。將動畫用的圖像讀入到記憶體之中。(請參考2-7 button命令)

*  表示出圖像的一部分
 利用bit命令將圖像的一部分擴大表示。
 
 程式碼
 blt 表示於畫面時左上角的x座標,表示於畫面時左上角的y座標,表示於畫面時的寬,表示於畫面時的高,元圖像上開始讀入的x座標, 元圖像上開始讀入的y座標,元圖像讀入時的寬度,元圖像讀入時的高度
 範例
 blt 0,0,640,480,0,0,320,240

 接著使用blt命令來表示圖像。
 和SP不一樣,blt命令自己就包括了設定和表示的功能。

 blt 0,0,640,480,0,0,320,240
 0,0為動畫表示時於畫面上左上角的x,y座標。

 blt 0,0,640,480,0,0,320,240
 640,480為動畫表示時於畫面上的寬與高。

 blt 0,0,640,480,0,0,320,240
 0,0為元圖像上開始讀入的x,y座標。

 blt 0,0,640,480,0,0,320,240
 320,240為元圖像上被讀入的寬與高。

 雖然有些複雜,但是請用下面原則記住:前半的0,0,640,480為實際表示在畫面上時的相關數值,後半的0,0,320,240為讀入的原圖像的相關數值。
 上述範例中元圖像的320x240畫素會被擴大成640x480表示。
 會使用擴大表示的原因是因為當圖像會動的時候,即使畫質較低落也不會讓玩家太在意。

*  當要進行動畫表示時?
 剛剛所用的blt命令只能夠將所讀取圖像中的一部分以一張圖像表示在畫面上,這樣並不能說是動畫,因此必須要將必要格數的圖像利用blt命令不斷地更新畫面。

*  在使用過blt命令後
 由於blt命令是直接在畫面上進行繪圖,因此在結束之後圖像常常會出現一些錯亂的狀況。
 因此利用ofscpy命令將輸入blt命令更新過後的畫面圖像送至off screen buffer,先將畫面安定之後在進行叫出背景圖的動作。
程式碼範例:


btndef clear
btndef "pic\final.jpg"
csp -1
bg black,1

for %1=0 to 150 step 5

blt 0,100,600,220,670+%1,540,600,220

strsp 51,"隨便要打什麼字",800-%1*2,400,10,2,23,23,0,0,1,0,#FFFFFF
print 1

wait 50
next

ofscpy

wait 200
csp -1
bg black,9

wait 400

strsph 52,"天線寶寶~",150,200,13,2,23,23,0,0,1,0,#FFFFFF
strsph 53,"天線寶寶~~",300,350,13,2,23,23,0,0,1,0,#FFFFFF

vsp 52,1
print 19

wait 400

vsp 53,1
print 19

wait 500

click

csp -1
bg black,9
mov %1,0
for %1=0 to 300 step 5

blt 170,0,250,450,450,500+%1,250,450

strsp 51,"海綿寶寶",600,600-%1,10,2,23,23,0,0,1,0,#FFFFFF
print 1

wait 50
next

ofscpy

wait 200
csp -1
bg black,9

strsph 52,"派大星",400,200,13,2,23,23,0,0,1,0,#FFFFFF
strsph 53,"章魚哥",450,350,13,2,23,23,0,0,1,0,#FFFFFF

vsp 52,1
print 19

wait 400

vsp 53,1
print 19

wait 500

click

csp -1
bg black,9
mov %1,0
for %1=0 to 300 step 5

blt 450,150,250,450,1050,1000-%1,250,450

strsp 51,"我是丁丁",80,0+%1,10,2,23,23,0,0,1,0,#FFFFFF
print 1

wait 50
next

ofscpy

wait 200
csp -1
bg black,9

strsph 52,"也可以丟點有氣氛的",80,200,13,2,23,23,0,0,1,0,#FFFFFF
strsph 53,"寫教學也算是一種複習",200,350,13,2,23,23,0,0,1,0,#FFFFFF

vsp 52,1
print 19

wait 400

vsp 53,1
print 19

wait 500

click

csp -1
bg black,9

strsph 52,"其實沒必要貼這麼多",304,200,13,2,23,23,0,0,1,0,#FFFFFF
strsph 53,"但我懶得修了~~",281,350,13,2,23,23,0,0,1,0,#FFFFFF

vsp 52,1
print 19

wait 400

vsp 53,1
print 19

 

 

拍手[0回]

PR

この記事にコメントする

お名前
タイトル
メール
URL
コメント
絵文字
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
パスワード

この記事へのトラックバック

この記事にトラックバックする