這篇要說的是自定名字的程式碼~其實很快就說完了?(爆)
因為只有3種程式碼啊XD
好,廢話不多說囉,入正題……
正如我上面所說,有3種程式碼可以做出自定名字的效果~
包括input、inputstr跟textfield三種!它們當然也用在執行區(*start)內喔!
基本上,這三個程式碼不是只用作自定名字,更確切去說,是輸入文字XD
我逐一逐一解釋吧!
(1) 輸入文字--介紹input
首先,先看看用input所做出的效果:
input的程式碼是長成這模樣……
input (a)文字變數,(b)對話框訊息文字,(c)輸入欄預定文字,(d)可輸入文字數量,(e)全形或半形選擇
(a)文字變數
就是你希望輸入文字後,把它儲存於哪個變數~
注意文字變數的符號是"$"喔!
(b)對話框訊息文字
就是上方示範圖中,你希望在"請輸入你的名字"的位置顯示什麼文字~
記得打的時候要配上一對""喔!
(c)輸入欄預定文字
當然就是白色欄顯示的文字啊XD
如示範圖裡的"未命名"~
注意:除了直接輸入文字,也可以輸入文字變數!
(d)可輸入文字數量
這個是輸入數字……
然後它以半形為一單位(1 unit),所以如果只想輸入全形字,就別輸入單數!
以半形為一單位是什麼意思?
那首先我們要先分辨什麼是半形跟全形……用符號跟文比較好說明……
「,」跟「,」都是逗號(comma),前者是半形,後者是全形……
「comma」跟「comma」都是逗號的英文,前者是半形,後者是全形……
至於中文字,不用說,一定都是全形!
所以……假設你希望玩家最多只可以輸入5個(全形)字,你應該在這項填上10!
你可能會問,那麼如果我想輸入5個半形字,上面打5不就可以了嗎?
沒錯是的……但要注意NS比較麻煩,如果半形字湊夠雙數不會有問題,但如果是單數的話……自己試試會發生什麼事?(汗)
所以輸入時,我比較推薦全形字……不然出錯不負責喔!(汗)
注:english這指令沒什麼用……沒辦法用在中英夾雜的句子裡囧
(e)全形或半形選擇
這裡只可以填0或1,0代表半形,1代表全形……
然後……我不知道是我下載的版本有問題還是什麼……如果你在這項輸入,你會發現錯誤連連……所以,我放棄了,我打0……囧
好,總結一下,上方示範圖的程式碼應該這樣打:
input $0,"請輸入你的名字","未命名",10,0
不過,這樣寫會有一個缺點……嗯~怎樣說呢,先丟圖:
大家輸入名字的畫面大致上跟它差不多吧?
就是輸入完再按okay鍵就正式遊戲之類的設定……
如果你是個三心兩意的玩家(例如我XD),可能會改變主意,改之前打好的名字,如果用上面的方法,會發現輸入欄的文字為什麼還是先前預設的文字?是否代表我之前輸入的文字無效?
咳,其實不是的XD 是這條程式的錯(爆)
所以,為免引起麻煩,以上的程式碼可以寫成:
跟之前的有什麼分別?就是預設文字的位置我改為文字變數!而且跟用以儲存的文字變數一樣!input $0,"請輸入你的名字",$0,10,0
那就可以即時改變文字欄的文字了~
唯一要注意的是:按esc會跳過這行程式喔……
這是第一種輸入文字的方法~現在要介紹第二種喔,跟第一種其實很像……
(2) 輸入文字--介紹inputstr
咳咳……循例我們也要放圖出來XD
inputstr的程式碼是長成這模樣……
唯一跟input不同的是,它沒有預設文字,其他都一樣喔~所以我就不多說了XDinputstr (a)文字變數,(b)對話框訊息文字,(c)可輸入文字數量,(d)全形或半形選擇
而且也不可以用esc跳過~
所以我們來看第三種是什麼吧XD
(3) 輸入文字--介紹textfield
首先,也是圖……
然後textfield的程式碼是這樣:
textfield (a)用於輸入及儲存的文字變數,(b)左上x座標,(c)左上y座標,(d)右下x座標,(e)右下y座標,(f)文字長度,(g)文字高度,(h)半形或全形選擇
(a)用於輸入及儲存的文字變數
跟之前兩種程式碼的(a)沒什麼分別……
不過textfield比較特別,如果該文字變數本來沒有儲存任何資料(即是""),那麼空白格內會是空白喔!
另外NS ver2.82或以上才會看到輸入的中文字不是亂碼!我用2.74會出現怪獸字喔!
按esc會全清文字~按enter代表輸入完成!
(b)至(e)
就是上方空白格的大小,座標什麼開編圖軟件就知道了……
以上用作示範的是800x600的視窗……
你問我可不可以不要白色,改為其他顏色?
嗯……你去問高橋吧XD (原作者)
(f)及(g)
沒記錯也就是像素(pixel)了XD
所以……還是開編圖軟件看看大約多大吧……
(h)半形或全形選擇
跟之前介紹的沒有分別啊XD
然後……你留意到吧?textfield沒有限制玩家輸入多少文字!
所以,如果要限制文字數量,你還要配搭len這個程式碼跟if……
例如:
*enternametextfield $0,340,190,470,210,10,20,1len %0,$0 ;用%0測試$0這個文字變數到底有多長 (以半形為單位,即1個全形=2個半形)if %0>10 goto *entername ;如果$0含超過5個全形字,跳去*entername這個label(即是一直迴圈啦XD)
說完文字輸入,之後當然要說顯示~
通常輸入完文字後,當然不會直接繼續遊戲,至少要讓玩家看一次名字是否ok再繼續嘛~
所以一定會用到顯示文字的功能~
至於如何顯示文字,我記得戀模板有教過啊……現在再貼一次好了:
lsp (a)編號,":s/(b)文字長,(c)文字寬,(d)字距,(e)文字風格[可忽略];(f)文字顏色碼(g)想顯示的文字",(h)x座標,(i)y座標,(j)透明度[可忽略]
(a)編號
其實跟一般的lsp一樣啊……戀模跟recrit也有啊~(不過recrit教的是strsp)
總之就是數字愈小,圖片的順序就愈在前面囉~
(b)至(e)
其實整串程式碼是可以忽略的!如果忽略,會沿用setwindow或spfont的設定!
(b)至(d)基本也很容易理解嘛……
唯一比較特別的是(e),不過老實說我覺得可以忽略……(喂)
(e)的位置可以輸入0,1跟2,0代表文字會採用預設風格,1代表不採用任何風格,2呢…特殊風格吧?XD
實際測試的結果是:0是一般文字(沒加粗體),1是粗體,2會有黑邊,所以文字顏色不要用黑色XD
平時不打(e)項會沿用setwindow的風格! (即對話框)
(f)文字顏色碼
顏色碼是什麼?就是#開頭那些……詳情可以開編圖軟件或者顏色碼表也可以……
值得一提的是,如果想把該lsp做成文字按鈕,連打兩個顏色碼(沒有空格、沒有符號)的話,會是這個意思:
lsp 0,":s#FFFFFF#000000測試",100,100即代表滑鼠未點選文字時,文字顏色會是#FFFFFF(白色),點選文字時,會是#000000(黑色)這樣~
(g)想顯示的文字
要跟顏色碼連在一起喔!然後……就打你想打的文字吧XD
只可以打一行的文字,如果要顯示多於一行文字,請多開幾個lsp或者乾脆用strsp~
(h)至(i)
座標什麼的……沒什麼好說吧?
(j)透明度
這個平時可以忽略~數字愈小代表文字/圖片的透明度愈高~(最低0,最高255)
其實文字顯示並不難懂啦~重點是我不是只想教大家如何用lsp顯示文字!
通常就是輸入完文字,然後用lsp顯示的文字應該要同步改變才對吧?
嗯……我也想這樣,但其實要多打幾句XD
如果想lsp顯示的文字改變,一定要先清除(用csp),再重新顯示才ok……養成數值都是這樣用……
其實我還想說lsp的算式運用……不過留待顯示選項再慢慢說也不晚XD
那麼~這次的偽教學又到此為止了喔~下次就說動畫?XD
沒有留言:
發佈留言