コメント

このコメントは、【トピック】ノベルゲーム 制限時間へのコメントです。

コメントの内容

Material 185033 3 mini 光楼(114)(投稿日:2013/07/02 23:07/02/13)
ダメでした…

「ぷちくいず」基本スクリプト を色々いじってたんですけど思いどおりにならず…すいません。

で、自分で作ってみようということになったのですがやっぱりカウントダウンが終わらないと次に進めません。cose文使ってないのに…

setVariable( "テキスト1", createText(380, 250, 500, 500) )   #場所を設定
setVariable( "カウントダウン", createText(10, 1, 200, 200)) #カウントダウン表示位置    


#----------
ts=3000000
setBaseTime()
setVariable( "カウントダウン", createText(10, 1, 200, 200))
loopt = true #looptをtrueに設定
while loopt #looptが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= ts - getTime()

strr = getStringTime( tt, -1, 1, 1, 1 )





setText( getVariable("カウントダウン"),"残り時間",strr) 

if tt < 0

loopt=false
deleteText(getVariable("カウントダウン"))
speak("終了!!")
end #if文終わり


end #ループ終わり


#----------
 
    #入力の取得を始めます
startInput()

#ループし続けるように変数を設定します。
loop = true

#loop変数がtrueの間はループし続けます。
while loop



  #入力が入っているかどうか調べます。
  while hasInput()
    #内部にたまっている入力を処理対象とします。
    takeInput()


    if isKeyDown("1") #キー1が押された場合
      #メッセージを表示します。
      setText( getVariable("テキスト1"), "1" ) #表示する文字

    elsif isKeyDown("A") #キーAが押された場合
      #メッセージを表示します。
      setText( getVariable("テキスト1"), "A" ) #表示する文字
    elsif isKeyDown("E") #キーEが押された場合
      #ループを終了します。
      loop = false

    end
  end

  #入力がないときに無駄に処理をしないように30ミリ秒waitを入れます。
  waitTime(30)
  ts = ts + 30
end

#入力の取得を終了します。
endInput()

#テキスト表示領域を全部消します。
deleteTextAll()


まだ実験段階のため問題文などは無し。

変更したところ。
  • カウントダウンのスクリプトを開始スクリプトからシーンに移動
  • 選択肢からボタンに回答方法を変更





コメントの内容(一番最初の投稿)

Material 185033 3 mini 光楼(114)(投稿日:2013/07/02 23:07/02/13)
ダメでした…

「ぷちくいず」基本スクリプト を色々いじってたんですけど思いどおりにならず…すいません。

で、自分で作ってみようということになったのですがやっぱりカウントダウンが終わらないと次に進めません。cose文使ってないのに…

setVariable( "テキスト1", createText(380, 250, 500, 500) )   #場所を設定
setVariable( "カウントダウン", createText(10, 1, 200, 200)) #カウントダウン表示位置    


#----------
ts=3000000
setBaseTime()
setVariable( "カウントダウン", createText(10, 1, 200, 200))
loopt = true #looptをtrueに設定
while loopt #looptが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= ts - getTime()

strr = getStringTime( tt, -1, 1, 1, 1 )





setText( getVariable("カウントダウン"),"残り時間",strr) 

if tt < 0

loopt=false
deleteText(getVariable("カウントダウン"))
speak("終了!!")
end #if文終わり


end #ループ終わり


#----------
 
    #入力の取得を始めます
startInput()

#ループし続けるように変数を設定します。
loop = true

#loop変数がtrueの間はループし続けます。
while loop



  #入力が入っているかどうか調べます。
  while hasInput()
    #内部にたまっている入力を処理対象とします。
    takeInput()


    if isKeyDown("1") #キー1が押された場合
      #メッセージを表示します。
      setText( getVariable("テキスト1"), "1" ) #表示する文字

    elsif isKeyDown("A") #キーAが押された場合
      #メッセージを表示します。
      setText( getVariable("テキスト1"), "A" ) #表示する文字
    elsif isKeyDown("E") #キーEが押された場合
      #ループを終了します。
      loop = false

    end
  end

  #入力がないときに無駄に処理をしないように30ミリ秒waitを入れます。
  waitTime(30)
  ts = ts + 30
end

#入力の取得を終了します。
endInput()

#テキスト表示領域を全部消します。
deleteTextAll()


まだ実験段階のため問題文などは無し。

変更したところ。
  • カウントダウンのスクリプトを開始スクリプトからシーンに移動
  • 選択肢からボタンに回答方法を変更