スクリプト/文字入力

最終投稿者:Material 7186 1 mini ikosami 更新:2012/09/27 23:51:50
画像などクリップする必要を一切なくして
使いやすくした文字入力です。

ただし、ファミコンのように「だ」が「た゛」としかできません・・・
(これを作ると長くなるので・・・)

見た目は背景なしでこんな感じ。

背景をつけると、文字が見えないかもしれません・・・


#//////////////////////////////
msk = 10#文字数制限(1~20)
def syuu(m)#終了時のスクリプト
 setVariable("文字", m)#←ここの変数名を保存する変数名にを変えてください。(そのままでもOK)
 speak("名前は",m,"ですね。")
end
#操作説明文↓(完全に無くしてしまうと、バグと勘違いする人が出てきます。)
speak("キーボードの左右上下キーで選択、\nスペース、Z、Enterキーで決定です。")

tsp = 6#選択文字の下の棒の点滅速度(正直これはどうでもいいです・・・)
#//////////////////////////////
t = createArray()
xt = 200;yt = 200;i = 0
while i < 12
t[i] = createText(xt+i*40, yt, 500, 400)
i = i + 1
end
w1 = createText(140, yt-20, 600, 600)
w2 = createText(120, yt-20, 600, 600)
setText(w1, "ーーーーーーーーーーーーーーーーーーーーー\n\n\n\n\n\n\nーーーーーーーーーーーーーーーーーーーーー")
setText(w2, "ーーーーーーーーーーーーーーーーーーーーー\n\n\n\n\n\n\nーーーーーーーーーーーーーーーーーーーーー")
mot = createText(350-(msk-5)*20, yt-50, 500, 400)
mo = createArray();i = 0
while i < msk
mo[i] = "ー"
i = i + 1
end
i = 0;mozi = ""
while i < msk
mozi = mozi+mo[i]
i = i + 1
end
setText(mot, mozi)
m = createArray();i = 0
while i < 11
m[i] = createArray()
i = i + 1
end

#///////文字設定///////
m[0][0] = "あ";m[0][1] = "か";m[0][2] = "さ";m[0][3] = "た";m[0][4] = "な";m[0][5] = "っ";
m[1][0] = "い";m[1][1] = "き";m[1][2] = "し";m[1][3] = "ち";m[1][4] = "に";m[1][5] = "ゃ";
m[2][0] = "う";m[2][1] = "く";m[2][2] = "す";m[2][3] = "つ";m[2][4] = "ぬ";m[2][5] = "ゅ";
m[3][0] = "え";m[3][1] = "け";m[3][2] = "せ";m[3][3] = "て";m[3][4] = "ね";m[3][5] = "ょ";
m[4][0] = "お";m[4][1] = "こ";m[4][2] = "そ";m[4][3] = "と";m[4][4] = "の";m[4][5] = "゛";
m[5] = ""
m[6][0] = "は";m[6][1] = "ま";m[6][2] = "や";m[6][3] = "ら";m[6][4] = "わ";m[6][5] = "゜";
m[7][0] = "ひ";m[7][1] = "み";m[7][2] = " ";m[7][3] = "り";m[7][4] = " ";m[7][5] = "戻る";
m[8][0] = "ふ";m[8][1] = "む";m[8][2] = "ゆ";m[8][3] = "る";m[8][4] = "を";m[8][5] = "戻る";
m[9][0] = "へ";m[9][1] = "め";m[9][2] = " ";m[9][3] = "れ";m[9][4] = " ";m[9][5] = "終了";
m[10][0] = "ほ";m[10][1] = "も";m[10][2] = "よ";m[10][3] = "ろ";m[10][4] = "ん";m[10][5] = "終了";

setText(t[0], "あ\nか\nさ\nた\nな\nっ");setText(t[1], "い\nき\nし\nち\nに\nゃ")
setText(t[2], "う\nく\nす\nつ\nぬ\nゅ");setText(t[3], "え\nけ\nせ\nて\nね\nょ")
setText(t[4], "お\nこ\nそ\nと\nの\n ゛");setText(t[6], "は\nま\nや\nら\nわ\n ゜")
setText(t[7], "ひ\nみ\n \nり\n \n 戻る");setText(t[8], "ふ\nむ\nゆ\nる\nを\n  ")
setText(t[9], "へ\nめ\n \nれ\n \n 終了");setText(t[10], "ほ\nも\nよ\nろ\nん\n  ")
#//////////////////////////

x = 0;y = 0;mk = 0
k = createText(x*40+xt, y*32+yt, 500, 400)
setText(k, "_")
ai = 0;ap = 1
loop = true
startInput()

while loop
while hasInput()
takeInput()
if isKeyDown("RIGHT")
x = x + 1
if x == 5
x = x + 1
end
elsif isKeyDown("LEFT")
x = x - 1
if x == 5
x = x - 1
end
elsif isKeyDown("UP")
y = y - 1
elsif isKeyDown("DOWN")
y = y + 1
elsif isKeyDown("SPACE") || isKeyDown("Z") || isKeyDown("ENTER")
if m[x][y] == "戻る"
 if mk > 0
  mk = mk - 1
  mo[mk] = "ー"
 end
elsif m[x][y] == "終了"
i = 0;mozi = ""
while i < msk
if mo[i] == "ー"
else
mozi = mozi+mo[i]
end
i = i + 1
end
case speakWithSelect(2,"はい","いいえ", 
    mozi,"でいいですか?")
  when 0
   loop = false
   syuu(mozi)
end

else
if mk < msk
 mo[mk] = m[x][y]
 mk = mk + 1
end
end
i = 0;mozi = ""
while i < msk
mozi = mozi+mo[i]
i = i + 1
end
 setText(mot, mozi)
end

if x > 10
x = 0
elsif x < 0
x = 10
end

if y > 5
y = 0
elsif y < 0
y = 5
end
deleteText(k)
k = createText(x*40+xt, y*33+yt, 500, 400)
end

if ap == 1
setText(k, "")
else
setText(k, "_")
end
ai = ai + ap
if (ai > tsp && ap == 1) || (ai < 0 && ap == -1)
ap = ap*-1
end
waitTime(10)
end
endInput()
deleteTextAll()

コメントする

コメントするには、ログインする必要があります。

コメント一覧

Himawari mini kanan1227(投稿日:2012/09/27 23:51, 履歴)

このコピペをどこに貼ればいいのでしょうか・・・
いろいろ試したのですが反映されてなくて・・・
初歩すぎてすみません。
User icon mini 退会したユーザー(投稿日:2012/08/07 16:49, 履歴)
シーンやチャプターを移動しても入力した文字を使い続けたいのですが、
どうすればいいのでしょうか?
Nyan mini rurun9(投稿日:2012/08/11 13:46, 履歴)
moziに入ってるようなので基本変数に入れ直せば良いかと。
個人的にはテキストエリアを作成し続けるコレよりも、スクリプト/キーボードでのパスワード入力を応用改造した方が良いかと思います

ただしノベル型なら既に便利なモノが
User icon mini 退会したユーザー(投稿日:2012/03/06 19:02, 履歴)
さっき知りました、ノベルゲームでしかできなかったんですね。
RPGでもできるようになりませんか?
Material 7186 1 mini ikosami(投稿日:2012/03/06 13:22, 履歴)
何も変える必要はないはずなのですが・・・
入力が、「半角英数入力」入力になっていないと、
正常に作動しない場合があります。

とりあえず、入力を、
スペースキー、Zキー、Enterキーの3つでできるようにしたので、
このどれかなら、どの入力になっていても作動します。
User icon mini 退会したユーザー(投稿日:2012/03/01 20:30, 履歴)
作動しなかったのですが、どこか変える必要があるのですか?
正直、内容的には説明よりも、コピペできるようにして下さるとありがたいのですが・・・。
Material 7186 1 mini ikosami(投稿日:2011/11/02 21:37, 履歴)
編集しなければ、変数「文字」に設定されます。
ここはどう変えても問題ありません。
  1 mini 闇さん(投稿日:2011/11/02 17:11, 履歴)
選んだ文字はsetVariable("文字", m) にほぞんされるのですか?