關於部落格
RPG製作大師XP腳本為主要更新

RPG製作大師VX腳本為其次更新

RPG製作大師VX_Ace目前不考慮

RPG製作大師MV腳本完全沒打算

留言完建議重新整理看看是否顯示

目前不處理本舖外腳本的相關問題

其他相關事項請觀看規定注意事項

本舖未來的經營計畫與VA的支援




var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-37462754-1']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

  • 297287

    累積人氣

  • 25

    今日人氣

    0

    追蹤人氣

【腳本】中文輸入法

     
    
使用方法
打開腳本編輯器,對腳本「Main」按下右鍵,選擇插入,會出現1個空白腳本
在空白腳本內貼上以下腳本:
● 此腳本需要安裝魔劍工舖整合腳本(3)才可以正常使用
● 此腳本需要安裝全鍵盤按鍵(4)才可以正常使用
● 此腳本需要安裝字庫才可以正常使用(請點左邊的連接下載)

點選框框內的腳本按右鍵打開選單,選擇 [全選] 後在選擇 [複製] ,在指定的位置中貼上腳本即可
     
    
操作方法  
鍵盤上的英文、數字、注音、符號都可以用來做基本的內容輸入,除此之外...
以下稱的符號鍵也包含左方數字鍵上面的符號,請特別注意
原則上還是參考新注音的操作方式在做設計的,所以和新注音操作雷同
方向鍵:移動文字游標的位置
    待文字有虛線的情況下按方向鍵↓時會打開該字的選字窗口來修改
    在選字時,↑、↓鍵可用來移動選字窗口中的游標
    而←、→鍵則可以換選字窗口的上一頁和下一頁
Ctrl:切換輸入法,不用按Shift,原因是會把真正的輸入法叫出來而干擾到遊戲...
Shift:按住期間,小寫模式時輸入英文會變大寫;大寫模式輸入英文時會變小寫
      此外也可用於輸入同個鍵的另一個符號用
      例如按下『Shift』和『4』會輸入『$』
      如果沒有按下『Shift』,直接按下『4』,則輸入『4』
      此外在中文輸入時,按住期間輸入會當成英文輸入的操作
      (不過這時由於還是處於按下Shift狀態
      所以一樣會英文大小寫和兩個同個鍵的符號輸入會互換)
Caps Lock:切換大小寫模式,預設為小寫模式,直接輸入將都是小寫英文
          (目前版本請無視鍵盤右上方的Caps Lock燈號吧...)
          順便一題,這個並不會影響到符號的輸入,純粹只影響英文的輸入
BACKSPACE(←):刪除文字游標左邊的字,如果再輸入注音,就刪除最右邊的注音
delete:刪除文字游標右邊的字
數字鍵:選字的時候,可以使用數字鍵快速指定(左右的數字鍵都通用)
Shift+空白:全形或半形的切換,預設為半形(Shift必必需先按下)
Esc:清空文字輸入框所有的內容,效果等同『文字輸入框.text = ''』
    如果再注音輸入框顯示時,則是刪除整個已輸入的注音
Enter:一般輸入時可以換行,在選字時做為選擇游標所選的文字用
Insert:切換文字游標樣式,仿腳本編輯器的效果,你可以打開腳本編輯器試試...
~:再注音輸入法時,按住這個鍵不放,則會視同英文輸入並且全形來輸入
  也可以同時按住Shift來換同個鍵另一個符號
   
     
設置腳本  
生成文字輸入框[C] 
文字輸入框 = Input_Method.new
文字輸入框 = Input_Method.new(字數限制)
文字輸入框 = Input_Method.new(字數限制, 行數限制)
文字輸入框 = Input_Method.new(字數限制, 行數限制, 視口)
範例
# 生成無字數限制、限制最多5行的文字輸入框儲存變數$abc中
$abc = Input_Method.new(0, 5)
顯示文字輸入框,並將文字輸入框儲存到變數之中來操作
雖然這不算是一個窗口類(算是一些精靈位圖+窗口的混合體?!)
不過還是適用一些窗口常用的操作方法就是了(部分而以...,以下會介紹)
一般來說文字輸入框背景是透明的,並且有一個在閃爍的文字游標
這只是生成基本的架構而以,必須更新文字輸入框它才能正常運作
文字輸入框:設定一個Ruby的變數負責儲存文字輸入框對象
      之後針對於這個文字輸入框的操作都必須利用儲存的變數來操作
字數限制:設定可以允許玩家輸入的總文字數量,換行本身也算1個字
     未設定此參數,通常預設值為0
     0:沒有字數限制,可以給玩家輸入任意數量的字
     正數:限制的字數,不管是全半形英文數字符號中文都算1個字
     負數:限制的字節數,每個字所佔的字節並不相同,通常中文佔3字節
        對於字節的計算,可以執行這腳本『p('文字內容').size』查看
行數限制:設定可以允許玩家換多少次的行,設定0表示無限制行數
     未設定此參數,通常預設值為0
視口:可設定RGSS的視口(Viewport),效果等同精靈(Sprite)指定第1個參數相同
   有需要的話可以設定為『Viewport.new(X座標, Y座標, 寬度, 高度)』
   或者是已經儲存視口對象的變數
   以視口做為固定的顯示區域來顯示文字輸入框的內容
   不過這參數並不會影響注音輸入窗口和選字窗口的顯示,請特別注意
   設定為nil表示不使用視口,未設定此參數,通常預設值為nil
理論上可以生成多個文字輸入框並且儲存於不同的變數之中
不過為了避免多個文字輸入框相互的操作衝突
所以限制一次只能有一個文字輸入框可以活動
也就是說第1個生成的文字輸入框是可以活動的
但第2個開始生成的文字輸入框則不可以活動
除非將所有的文字輸入框關閉 或者 所有已經存在的文字輸入框均為不活動時
才能使剛生成的文字輸入框預設為活動狀態
如果想要變更當前存在的文字輸入框的活動狀態的話
則必須使用『文字輸入框.active』設定真偽值,詳見該方法的說明
  
更新文字輸入框[R] 
文字輸入框.update
範例
$abc = Input_Method.new # 生成文字輸入框
loop do
  Graphics.update
  Input.update
  $abc.update
# 更新文字輸入框
end
更新文字輸入框,需每幀掉用該方法文字輸入框才可以正常運作
這個方法負責控制文字游標的閃爍效果以及實際文字輸入的處理
如果沒有在每幀執行這個方法,文字游標不僅維持顯示或隱藏不變化之外
也沒有辦法獲得按下的按鍵資訊,簡單來說就是無法輸入、無法運作啦
文字輸入框:這裡指的是已經儲存文字輸入框對象的變數,以下的方法也一樣
   
文字輸入框的內容[A] 
# 讀取當前內容
文字輸入框.text
# 修改當前內容
文字輸入框.text = '新的內容'
獲取當前文字輸入框已經輸入的文字內容
也可以用類似變數的操作方式變更文字輸入框已經輸入的內容
即可變更該文字輸入框的內容,此方法會自動更新文字輸入框的內容
  
文字輸入框的大小[R] 
# 寬度
文字輸入框.width
# 高度
文字輸入框.height
獲取當前顯示文字的寬度或者高度,獲取到的大小會隨著玩家輸入的內容而改變
此外獲取到的寬度與高度文字游標的大小也算在內
(不過通常依據文字游標的類型以及所在位置(通常最右邊或最後1行)而影響)
由於會自動調整文字輸入框的大小,為了避免發生問題,不提供直接修改的方式
  
文字輸入框的活動狀態[A] 
文字輸入框.active
文字輸入框.active = 真偽值
讀取或變更當前文字輸入框的活動狀態,真偽值 也可以看做為 是否允許輸入 狀態
活動狀態為true時,允許『文字輸入框.update』腳本更新文字輸入框的工作
活動狀態為false時,即使執行了『文字輸入框.update』也不會有任何動作
此外文字輸入框不活動的時候文字游標也會跟著隱藏不閃爍,直到再次活動為止
因為文字輸入框有一次只能有一個文字輸入框處於活動狀態的限制
如果使用者嘗試讓第兩個文字輸入框的活動狀態設為true時
則其他的文字輸入框的活動狀態將會自動變更為false,可見下範例
(話說我因該算是首次寫了會影響其他對象的方法~)
a = Input_Method.new
b = Input_Method.new
c = Input_Method.new
p a.active, b.active, c.active
#=> true, false, false
b.active = true # 將第2個生成的文字輸入框設為活動狀態
p a.active, b.active, c.active #=> false, true, false
b.active = false
p a.active, b.active, c.active
#=> false, false, false
d = Input_Method.new
p a.active, b.active, c.active, d.active
#=> false, false, false, true
   
文字輸入框的顯示狀態[A] 
文字輸入框.visible
文字輸入框.visible = 真偽值
文字輸入框的內容是否顯示,true為顯示;false為不顯示
這只會隱藏輸入的文字內容和文字游標,注音輸入框和選字窗口依然會顯示
此外也能正常工作,要完全隱藏文字輸入框的顯示以及功能的話
因該連同『文字輸入框.active』一起代入false
   
獲取與變更窗口位置類型[A] 
文字輸入框.win_seat
文字輸入框.win_seat = 位置類型編號
設定注音輸入窗口和選字窗口的顯示位置設定
目前定義這六個數值 1、2、3、7、8、9 有效果
由於這並非真的輸入法,選字窗口和注音輸入窗口只能顯示於RM的窗口中
所以可能依據文字輸入框的位置導致選字窗口或者注音輸入窗口超出視窗外
這時該腳本會嘗試修正顯示的位置,盡可能讓兩窗口完全顯示在RM視窗中
至於修正位置的方式依據 窗口位置類型編碼 的不同也不盡相同,如下圖
 
黃色箭頭表示,當前類型的窗口顯示會超出RM遊戲視窗的時候,自動轉成該類型
比如說類型設定為9,當選字窗口超出RM窗口頂端時,會修正選字窗口的位置(下移)
如果超出RM窗口右邊,則一照上面的綠色箭頭得知,會暫時轉為7類型來顯示
當然使用此方法獲取當前窗口位置類型,一律是以沒變換的數值來返回
!設定2或是8很容易發生SystenStackError錯誤,這是因為修正後還是超出RM視窗所致
 這時只能夠換其他類型或者盡可能透過設定來改變窗口的高度使其夠顯示
  
  
文字輸入框的位置[A]  
# 獲取X座標
文字輸入框.x
# 修改X座標
文字輸入框.x =
X座標
# 獲取Y座標
文字輸入框.y
# 修改Y座標
文字輸入框.y = X座標

# 獲取Z座標(優先度)
文字輸入框.z
# 修改Z座標(優先度)
文字輸入框.z = Z座標
修改或獲取文字輸入框的顯示位置或者優先度
剛生成文字輸入框的時候,X座標和Y座標均為0,Z座標則為200
   
文字游標的位置[A]  
# 獲取文字游標所在行數
文字輸入框.row
# 修改文字游標所在行數
文字輸入框.row =
行數
# 獲取文字游標所在位置
文字輸入框.index
# 修改文字游標所在位置
文字輸入框.index =
位置
修改或獲取文字輸入框中的文字游標所在位置
行數:設定文字游標移往指定的行數,0開始代表第1行
   低於0或者超過行數限制,則會自動修正到行數上限或下限值
位置:設定文字游標在該行中的所在位置,假設有『魔劍工舖』4個字,則位置下號碼
   01234
   和行數一樣,設定的數值超出範圍會自動修正,此外要注意一點
   如果存在待確認內容時,則上下限的被鎖定在待確認內容的位置裡面
   
密碼屬性[A] 
# 讀取密碼顯示內容
文字輸入框.cipher
# 設定密碼顯示
文字輸入框.cipher = '密碼符號'
# 取消密碼顯示
文字輸入框.cipher = ''
此方法可以實現密碼框,將所有輸入的內容都變更為『文字輸入框.cipher』的內容
例如說 密碼符號 設定為 * 的話,所以輸入的內容都會變更為 * 符號
也就是說當玩家輸入『Sword』時,則文字輸入框會顯示『*****』
不過使用『文字輸入框.text』還是能夠正確獲取到實際內容『Sword』
密碼符號:可設定任意文字、符號,通常較常見為『*』和『●』這兩個居多
     字串長度理論上不限,例如密碼符號設定為『abc』
     則一樣輸入『Sword』,輸入框則顯示『abcabcabcabcabc』
     而但移動文字游標或者輸入會出現待確認內容的虛線的話
     也會發現會一次將一組『abc』3個字識別為1個字的效果
這只對顯示內容做處理,其他基本上不變,依然可以使用中文輸入法輸入中文
此外待確認內容的效果依然會存在,只是顯示一律變更為密碼符號而以
(注音輸入窗口和選字窗口的內容不會變更為密碼符號)
如果希望能讓文字輸入框只能使用英文輸入法的話
可以嘗試使用『Input_Method.lock』方法來鎖定使用的輸入法
修改此方法的值,文字輸入框不會立即更新當前的顯示內容
需要執行『文字輸入框.refresh』來更新
   
其他屬性[A]  
# 獲取字體(Font)對象
文字輸入框.font
# 修改字體對象
文字輸入框.font = 字體對象
# 獲取行距
文字輸入框.row_spacing
# 修改行距
文字輸入框.row_spacing = 行距
修改一些文字的字型效果,例如可以改文字大小、字體、粗斜體之纇的
字體的設定方式可以參考
相簿設定
標籤設定
相簿狀態