ノベルゲーム 制限時間(質問掲示板)
投稿: 光楼(114)
投稿:2013/07/02 19:20:02(最新:2013/07/03 23:34:03)
今、初めてノベルゲームを作っています。
内容は制限時間付きのクイズ(何分間で何問解けるか)ですが、どうしてもカウントダウンが終わってから問題と選択肢(case文)が出てきます。
どうすれば左上にカウントダウンを表示しながら他のスクリプトを実行できますか?
カウントダウンを表示するスクリプトはこんな感じ。(開始スクリプト)
これがうまくいかなかったスクリプト
教えてください、お願いします。
ツイート
内容は制限時間付きのクイズ(何分間で何問解けるか)ですが、どうしてもカウントダウンが終わってから問題と選択肢(case文)が出てきます。
どうすれば左上にカウントダウンを表示しながら他のスクリプトを実行できますか?
カウントダウンを表示するスクリプトはこんな感じ。(開始スクリプト)
def kau() setBaseTime() setVariable( "カウントダウン", createText(10, 1, 200, 200)) loop = true #loopをtrueに設定 while loop #loopがfalseになるまでループ #0埋め def addZero(n, b) l = 0; c = n; r = ""; b = b - 1 while c > 9 c = floor(c / 10); l = l + 1 end while l < b r = r + "0"; l = l + 1 end r = r + n return r end def getStringTime_work( time, time_org, force, next_force, intercept_str, div, dig_max, dig_num ) text = "" if force == 1 || ( force == 0 && div <= time_org ) if div == 0 div = 1 end dig = floor( time / div ) % dig_max text = addZero( dig, dig_num ) if 0 <= next_force text = text + intercept_str end end return text end # time : getTime()とかからのミリ秒単位の値 # force_x = 1:数値が0でも表示 # 0:数値があれば表示 # -1:数値があっても表示しない def getStringTime( time, force_h, force_m, force_s, force_ms ) text = "" time_org = time div = 1000*60*60 # hour text = text + getStringTime_work( time, time_org, force_h, force_m, ":", div, 24, 2 ) time = time % div div = 1000*60 # minute text = text + getStringTime_work( time, time_org, force_m, force_s, "'", div, 60, 2 ) time = time % div div = 1000 # second text = text + getStringTime_work( time, time_org, force_s, force_ms, "\"", div, 60, 2 ) time = time % div div = 0 # milli second text = text + getStringTime_work( time, time_org, force_ms, 0, ".", div, 1000, 3 ) time = time % div return text end tt= 3000000 - getTime() str = getStringTime( tt, -1, 1, 1, 1 ) setText( getVariable("カウントダウン"),"残り時間",str) if tt < 0 loop=false deleteText(getVariable("カウントダウン")) speak("終了!!") end #if文終わり end #def文終わり end #def文終わり(kau())
これがうまくいかなかったスクリプト
kau() ここにcose文
教えてください、お願いします。
コメントする
コメントするには、ログインする必要があります。
コメント一覧
選択肢を表示する関数を使用した場合、
選択肢の表示中は
スクリプトの実行が停止する仕様です
そのため、
カウントダウンを表示しながら
選択肢を表示する場合、
選択肢を表示するスクリプトを
自作する必要があります
参考
「ぷちくいず」基本スクリプト
選択肢の表示中は
スクリプトの実行が停止する仕様です
そのため、
カウントダウンを表示しながら
選択肢を表示する場合、
選択肢を表示するスクリプトを
自作する必要があります
参考
「ぷちくいず」基本スクリプト
「ぷちくいず」基本スクリプト を色々いじってたんですけど思いどおりにならず…すいません。
で、自分で作ってみようということになったのですがやっぱりカウントダウンが終わらないと次に進めません。cose文使ってないのに…
まだ実験段階のため問題文などは無し。
変更したところ。
意図したとおりにならない場合は
処理の流れを
フローチャートで纏めてみましょう
この記述では
タイムカウント用初期設定
↓
タイムカウントのループ開始
↓
タイムカウント
↓
タイムカウントループ終了
↓
入力待ちループ開始
↓
入力の判定
↓
入力待ちのループ終了
となっていますね
意図した動作は
カウントダウンをしながら
入力の判定をしたいわけですから
ループを統合する必要があるわけです
ループ内に入れると
何度も定義するという
無駄な処理となってしまいますので
ループより前に記述するようにします