名前入力について(質問掲示板

投稿: Material 187524 2 mini urakami 投稿:2013/05/24 22:53:24(最新:2013/05/27 22:47:27)
ノベルゲームでゲームをはじめてすぐに名前入力をしようと思い、過去のWikiなどを調べてこれならできるかなというスクリプトを使ってみたんですが上手く表示されません・・・
会話の文章で入力した名前を表示させるにはどうしたらいいでしょうか?
自分なりに調べたんですが見つからなかったのでトピックを立てました。
回答、よろしくお願いします。

入力したスクリプト↓
playBGM(178463)
showImage(190499)

#//////////////////////////////
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()
showImage(141832)
changeChapter("1")

チャプター1 ↓
playBGM(178463)
showImage(141832)
speakFullScreen(true, "私の名前はsetVariable(\"文字\", m)!!")


コメントする

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

コメント一覧

Cdv30200 aoi icon mini aoihikawa(投稿日:2013/05/27 22:00, 履歴)
こちらを利用する、という方法もあります
スクリーンキーボード
Material 187524 2 mini urakami(投稿日:2013/05/27 22:47, 履歴)
回答ありがとうございます。
時間があるときに早速やってみようと思います!