(未完成)料理対決のスクリプト(RPGエディタ)

投稿者:            mini mosmoss 投稿日:2017/07/30 11:26

前置き

幻想水滸伝2のミニゲームである料理対決を
Rmakeでできないかなと思って研究中です

スプライトを重ねて、会場と審査員、司会、料理人、料理を表示し
料理データと審査員データから計算して得点を作るという趣旨です

現在は、会場の表示、審査員の選出と表示、料理の選出、
審査の演出までできていて、
調理演出、審査員データと料理データ、得点計算式がまだの状態です



開始スクリプト

#料理対決のステージ数
setVariable("stage",0+getVariable("stage"))

#引数から配列を得る関数
def array2(a00,a01,a02,a03,a04,a05,a06,a07,a08,a09,a10,a11,a12,a13,a14,a15)
 a=createArray()
 if toString(a00)=="null"&&a00!="null" then return a;else pushArray(a,a00);end
 if toString(a01)=="null"&&a01!="null" then return a;else pushArray(a,a01);end
 if toString(a02)=="null"&&a02!="null" then return a;else pushArray(a,a02);end
 if toString(a03)=="null"&&a03!="null" then return a;else pushArray(a,a03);end
 if toString(a04)=="null"&&a04!="null" then return a;else pushArray(a,a04);end
 if toString(a05)=="null"&&a05!="null" then return a;else pushArray(a,a05);end
 if toString(a06)=="null"&&a06!="null" then return a;else pushArray(a,a06);end
 if toString(a07)=="null"&&a07!="null" then return a;else pushArray(a,a07);end
 if toString(a08)=="null"&&a08!="null" then return a;else pushArray(a,a08);end
 if toString(a09)=="null"&&a09!="null" then return a;else pushArray(a,a09);end
 if toString(a10)=="null"&&a10!="null" then return a;else pushArray(a,a10);end
 if toString(a11)=="null"&&a11!="null" then return a;else pushArray(a,a11);end
 if toString(a12)=="null"&&a12!="null" then return a;else pushArray(a,a12);end
 if toString(a13)=="null"&&a13!="null" then return a;else pushArray(a,a13);end
 if toString(a14)=="null"&&a14!="null" then return a;else pushArray(a,a14);end
 if toString(a15)=="null"&&a15!="null" then return a;else pushArray(a,a15);end
 return a
end

#配列ソート関数
def pivot2(arr,index,i,j,ord)
  k = i + 1
  while (k <= j) && (arr[i][index] == arr[k][index]) do k = k + 1; end
  if k > j then return -1; end
  if ord
    if arr[i][index] >= arr[k][index] then return i; end
  else
    if arr[i][index] <= arr[k][index] then return i; end
  end
  return k
end

def partition2(arr,index,i,j,x,ord)
  l = i; r = j
  while l <= r
    if ord
      while (l <= j) && (arr[l][index] < x) do l = l + 1; end
      while (r >= i) && (arr[r][index] >= x) do r = r - 1; end
    else
      while (l <= j) && (arr[l][index] > x) do l = l + 1; end
      while (r >= i) && (arr[r][index] <= x) do r = r - 1; end
    end
    if l <= r
      t = arr[l]; arr[l] = arr[r]; arr[r] = t
      l = l + 1; r = r - 1
    end
  end
  return l
end

def quickSort2(arr,index,i,j,ord)
  if i != j
    p = pivot2(arr,index,i,j,ord)
    if p != -1
      k = partition2(arr,index,i,j,arr[p][index],ord)
      arr = quickSort2(arr,index,i,(k - 1),ord)
      arr = quickSort2(arr,index,k,j,ord)
    end
  end
  return arr
end


#使用時はこの関数のみ
#第1引数:配列 第2引数:ソート対象のインデックス 第3引数:昇順 true / 降順 false
def sortArray2(arr,index,ord)
  return quickSort2(arr,index,0,(getArrayLength(arr) - 1),ord)
end

#配列をシャッフルする関数
def shuffle(s)#引数sには配列を入れる
  i=getArrayLength(s)-1
  while i>-1
    r = rand(i+1)
    t=s[r]
    s[r]=s[i]
    s[i]=t
    i=i-1
  end
end

#審査員データ 128人のデータを作る
setVariable("judge",array2(1))
i=2
while i < 129
pushArray(getVariable("judge"),array2(i) )
i=i+1
end
#speak(getVariable("judge"))

#指定タイルを表示、また表示内容を変更する関数
def tiled(id,no,x,y,w,h,z,koma) #idはスプライト元画像id、nameは表示したいタイルの番号(名前)、x、yは表示座標(ピクセル単位の画面座標)を表す、w,h,は1タイルの幅と高さ、スプライトを消すか残すか(trueかfalse)

#キャンパスがビジブル状態になっているか否かの判定
#ビジブルでない場合、ビジブル状態にする
#RPGエディタで必要な確認
  if getCanvasVisible()
  else
     setCanvasVisible(true)
  end

#素材画像関連の設定

#id=320421 #fsm128の画像id


imgw=512 #素材画像全体の横幅
imgh=384 #素材画像全体の縦幅
#koma=16 #一行あたりのコマ数

#ここからスプライト設定
    img_name = "img"
    #画像ハンドル名はimg_emoticonにしてみました
   #お好みで変えてください

    get_x = 0;    get_y = 0;    get_w = w;   get_h = h
    set_x = 0;    set_y = 0;    set_w = w;   set_h = h

a=floor(no/koma) #行数
b=no-(a*koma) #余
if no<=0
        get_w = 0;    get_h = 0
        set_w = 0;    set_h = 0
elsif no<=koma
        get_x = w*(no-1)
else

  case b
    when 0
        get_x=w*(koma-1)
        get_y=h*(a-1)
    else
        get_x=w*(b-1)
        get_y=h*a
  end #case
end #if no<=0

    img= createSprite(id)    
    setSpriteRect(img,
                  get_x, get_y, get_w, get_h, set_x, set_y, set_w, set_h)
    setSpriteZOrder(img, z) 
#レイヤーの前後関係を調節したい場合はここの数値をいじる
    setSpritePosition(img, x, y) #エモグラ表示位置(ピクセル画面座標)

#スプライトの描画
    drawCanvas()

return img

end #def tiled



開始スクリプトでtiled関数を定義しています。
これは、同じ大きさのタイルで組織された一枚絵のスプライトを仮定して
何番目のタイルをどこに表示させるか、という趣旨の関数です。

エディタ内のイベントスクリプト

#料理対決をし、勝敗を返す関数
def taiketu(stage)
deleteAllSprite()
#会場の設定
setCanvasVisible(true) #キャンパス表示
#背景
bg=createSprite(320424)
setSpriteRect(bg, 0, 0, 512, 384, 0, 0, 512, 384)
setSpritePosition(bg, 0, 0)
setSpriteZOrder(bg, 0)
#椅子
chairs=createSprite(320423)
setSpriteRect(chairs, 0, 96, 288, 64, 0, 0, 288, 64)
setSpritePosition(chairs, 112, 32)
setSpriteZOrder(chairs, 1)

#審査委員
#審査員の抽選128人の中から4人選ぶ
shuffle(getVariable("judge"))
j1=getVariable("judge")[0][0]
j2=getVariable("judge")[1][0]
j3=getVariable("judge")[2][0]
j4=getVariable("judge")[3][0]
judge=array2(j1,j2,j3,j4)
speak(judge)

img_j1=tiled(320421,j1,144,48,32,48,2,16) 
#idはスプライト元画像id、nameは表示したいタイルの番号(名前)、x、yは表示座標(ピクセル単位の画面座標)を表す、w,h,は1タイルの幅と高さ、スプライトを消すか残すか(trueかfalse)

img_j2=tiled(320421,j2,208,48,32,48,2,16) 
img_j3=tiled(320421,j3,272,48,32,48,2,16) 
img_j4=tiled(320421,j4,336,48,32,48,2,16) 


#審査テーブル
table=createSprite(320423)
setSpriteRect(table, 0, 0, 288, 96, 0, 0, 288, 96)
setSpritePosition(table, 112, 64)
setSpriteZOrder(table, 3)

#料理(レイヤーは4)

#司会

#調理台
kitchen=createSprite(320423)
setSpriteRect(kitchen, 0, 160, 512, 128, 0, 0, 512, 128)
setSpritePosition(kitchen, 16, 192)
setSpriteZOrder(kitchen, 6)

#料理人

#食材
#foods=createSprite(320423)
#setSpriteRect(foods, 0, 320, 512, 64, 0, 0, 512, 64)
#setSpritePosition(foods, 0, 320)
#setSpriteZOrder(foods, 8)

#スプライト初期会場の描画
drawCanvas()

#対決前のアナウンス

speak("料理対決を始めます")
speak("まずは本日の審査員を紹介します")
speak(judge[0])
speak(judge[1])
speak(judge[2])
speak(judge[3])
speak("続いて挑戦者の入場です")
speak("最後にチャンピオンの入場です")
speak("勝負は料理3品の総合得点で決まります")
speak("それでは準備を始めてください")

#メニュー選択

#選択可能なレシピのリストの作成



all_recipe=createArray()
pushArray(all_recipe, array2(1,"オムレット"))
pushArray(all_recipe, array2(2,"プリン"))
pushArray(all_recipe, array2(3,"だしまきたまご"))
pushArray(all_recipe, array2(4,"ちゃわんむし"))
pushArray(all_recipe, array2(5,"キッシュ"))
pushArray(all_recipe, array2(6,"たまごバクダン"))

pushArray(all_recipe, array2(7,"サラダ"))
pushArray(all_recipe, array2(8,"トマトのコンポート"))
pushArray(all_recipe, array2(9,"キャベツ汁"))
pushArray(all_recipe, array2(10,"きんぴらごぼう"))
pushArray(all_recipe, array2(11,"ポテトサラダ"))
pushArray(all_recipe, array2(12,"ラタトゥイユ"))

pushArray(all_recipe, array2(13,"ブラウンシチュー"))
pushArray(all_recipe, array2(14,"肉じゃが"))
pushArray(all_recipe, array2(15,"ローストビーフ"))
pushArray(all_recipe, array2(16,"おろしステーキ"))
pushArray(all_recipe, array2(17,"タルタルステーキ"))
pushArray(all_recipe, array2(18,"蘭州ラーメン"))

pushArray(all_recipe, array2(19,"シューマイ"))
pushArray(all_recipe, array2(20,"ごまだんご"))
pushArray(all_recipe, array2(21,"ハンバーグ"))
pushArray(all_recipe, array2(22,"やきぎょうざ"))
pushArray(all_recipe, array2(23,"はるまき"))
pushArray(all_recipe, array2(24,"にくづめトウガラシ"))

pushArray(all_recipe, array2(25,"アクアパッツァ"))
pushArray(all_recipe, array2(26,"ぎょにくケーキ"))
pushArray(all_recipe, array2(27,"しおやき"))
pushArray(all_recipe, array2(28,"フィッシューマイ"))
pushArray(all_recipe, array2(29,"ムニエル"))
pushArray(all_recipe, array2(30,"エビチリ"))

pushArray(all_recipe, array2(31,"コンソメスープ"))
pushArray(all_recipe, array2(32,"コーンポタージュ"))
pushArray(all_recipe, array2(33,"サンショーカン"))
pushArray(all_recipe, array2(34,"あかだし"))
pushArray(all_recipe, array2(35,"クラムチャウダー"))
pushArray(all_recipe, array2(36,"トムヤムクン"))

pushArray(all_recipe, array2(37,"おやこどん"))
pushArray(all_recipe, array2(38,"オムライス"))
pushArray(all_recipe, array2(39,"やきとり"))
pushArray(all_recipe, array2(40,"うみのおやこどん"))
pushArray(all_recipe, array2(41,"たつたあげ"))
pushArray(all_recipe, array2(42,"おやこおにぎり"))

pushArray(all_recipe, array2(43,"やみなべ"))
pushArray(all_recipe, array2(44,"すきやき"))
pushArray(all_recipe, array2(45,"かもなべ"))
pushArray(all_recipe, array2(46,"じゃっぱじる"))
pushArray(all_recipe, array2(47,"チーズフォンデュ"))
pushArray(all_recipe, array2(48,"おしどりひなべ"))

pushArray(all_recipe, array2(49,"ゆどうふ"))
pushArray(all_recipe, array2(50,"あんにんどうふ"))
pushArray(all_recipe, array2(51,"たまごどうふ"))
pushArray(all_recipe, array2(52,"とうふみそしる"))
pushArray(all_recipe, array2(53,"とうふドーナツ"))
pushArray(all_recipe, array2(54,"まーぼーどうふ"))

pushArray(all_recipe, array2(55,"もりそば"))
pushArray(all_recipe, array2(56,"アイスラーメン"))
pushArray(all_recipe, array2(57,"しおラーメン"))
pushArray(all_recipe, array2(58,"しょうゆラーメン"))
pushArray(all_recipe, array2(59,"とんこつラーメン"))
pushArray(all_recipe, array2(60,"たんたんめん"))

pushArray(all_recipe, array2(61,"ペペロンチーノ"))
pushArray(all_recipe, array2(62,"チョコパスタ"))
pushArray(all_recipe, array2(63,"カメのパスタ"))
pushArray(all_recipe, array2(64,"イカスミパスタ"))
pushArray(all_recipe, array2(65,"アレフレード"))
pushArray(all_recipe, array2(66,"アラビアータ"))

pushArray(all_recipe, array2(67,"ショートケーキ"))
pushArray(all_recipe, array2(68,"ムーンケーキ"))
pushArray(all_recipe, array2(69,"ケークサレ"))
pushArray(all_recipe, array2(70,"おこのみやき"))
pushArray(all_recipe, array2(71,"チーズケーキ"))
pushArray(all_recipe, array2(72,"ビックリパイ"))

pushArray(all_recipe, array2(73,"サンドイッチ"))
pushArray(all_recipe, array2(74,"フレンチトースト"))
pushArray(all_recipe, array2(75,"マルゲリータ"))
pushArray(all_recipe, array2(76,"てりやきバーガー"))
pushArray(all_recipe, array2(77,"カツサンド"))
pushArray(all_recipe, array2(78,"グラブラックス"))

pushArray(all_recipe, array2(79,"フルーツ"))
pushArray(all_recipe, array2(80,"ももまんじゅう"))
pushArray(all_recipe, array2(81,"なまハムメロン"))
pushArray(all_recipe, array2(82,"フルーツみそしる"))
pushArray(all_recipe, array2(83,"アップルパイ"))
pushArray(all_recipe, array2(84,"シナモンアップル"))

pushArray(all_recipe, array2(85,"チャーハン"))
pushArray(all_recipe, array2(86,"ぼたもち"))
pushArray(all_recipe, array2(87,"ドクドクドリア"))
pushArray(all_recipe, array2(88,"アイアンゾースイ"))
pushArray(all_recipe, array2(89,"リゾット"))
pushArray(all_recipe, array2(90,"パエリア"))

pushArray(all_recipe, array2(91,"ベイクドポテト"))
pushArray(all_recipe, array2(92,"いもようかん"))
pushArray(all_recipe, array2(93,"ヴィシソワーズ"))
pushArray(all_recipe, array2(94,"だいがくいも"))
pushArray(all_recipe, array2(95,"コロッケ"))
pushArray(all_recipe, array2(96,"トゥートウロースー"))


#recipe=array2("オムレット","サラダ","ハンバーグ","魚のソテー","ぶどうジュース","野菜のシチュー","スープセット","アクアパッツァ","ローストチキン","レモネード","もぎたて果物","フルーツ盛り","ショートケーキ","ホールケーキ","紅茶")

recipe_list=array2("オムレット","サラダ","ブラウンシチュー","シューマイ","アクアパッツァ","コンソメスープ","おやこどん","やみなべ","ゆどうふ","もりそば","ペペロンチーノ","ショートケーキ","サンドイッチ","フルーツ","チャーハン","ベイクドポテト")
taste=array2("そのまま","さとう","しお","しょうゆ","マヨネーズ","スパイス")

loop = true
while loop

#チャンピオンのメニューの初期設定
ape=" "
main=" "
desert=" "

ape_loop=true
while ape_loop

ape_recipe=speakWithSelectArray(recipe_list, "前菜 のレシピをえらんでください\n\nぜんさい \nメイン\nデザート")
ape_recipe=ape_recipe*6

ape_taste=speakWithSelectArray(taste, "前菜 の調味料をえらんでください\n\nぜんさい "+all_recipe[ape_recipe][1]+"\nメイン\nデザート")

ape=ape_recipe+ape_taste

a=array2("はい","いいえ")
case speakWithSelectArray(a, "これでよろしいですか?\n\nぜんさい "+all_recipe[ape][1]+"\nメイン  \nデザート ")
when 0 #はい
ape_loop=false
when 1 #いいえ
end #case
end #ape_loop


main_loop=true
while main_loop

main_recipe=speakWithSelectArray(recipe_list, "メイン のレシピをえらんでください\n\nぜんさい "+all_recipe[ape][1]+"\nメイン\nデザート")
main_recipe=(main_recipe)*6
main_taste=speakWithSelectArray(taste, "メイン の調味料をえらんでください\n\nぜんさい "+all_recipe[ape][1]+"\nメイン  "+all_recipe[main_recipe][1]+"\nデザート")
main=main_recipe+main_taste

a=array2("はい","いいえ")
case speakWithSelectArray(a, "これでよろしいですか?\n\nぜんさい "+all_recipe[ape][1]+"\nメイン  "+all_recipe[main][1]+"\nデザート ")
when 0 #はい
main_loop=false
when 1 #いいえ
end #case
end #main_loop

#main=speakWithSelectArray(recipe, "メイン をえらんでください\n\nぜんさい "+recipe[ape]+"\nメイン\nデザート")

#desert=speakWithSelectArray(recipe, "デザート をえらんでください\n\nぜんさい "+recipe[ape]+"\nメイン  "+recipe[main]+"\nデザート ")

desert_loop=true
while desert_loop

desert_recipe=speakWithSelectArray(recipe_list, "デザート のレシピをえらんでください\n\nぜんさい "+all_recipe[ape][1]+"\nメイン  "+all_recipe[main][1]+"\nデザート")
desert_recipe=(desert_recipe)*6
desert_taste=speakWithSelectArray(taste, "デザート の調味料をえらんでください\n\nぜんさい "+all_recipe[ape][1]+"\nメイン  "+all_recipe[main][1]+"\nデザート "+all_recipe[desert_recipe][1]+"")
desert=desert_recipe+desert_taste

a=array2("はい","いいえ")
case speakWithSelectArray(a, "これでよろしいですか?\n\nぜんさい "+all_recipe[ape][1]+"\nメイン  "+all_recipe[main][1]+"\nデザート "+all_recipe[desert][1])
when 0 #はい
desert_loop=false
when 1 #いいえ
end #case
end #desert_loop


a=array2("はい","いいえ")
case speakWithSelectArray(a, "これでよろしいですか?\n\nぜんさい "+all_recipe[ape][1]+"\nメイン  "+all_recipe[main][1]+"\nデザート "+all_recipe[desert][1]+"")
when 0 #はい
loop=false
when 1 #いいえ
end #case
end #loop

#挑戦者のメニューのランダム選出
e_ape=rand(96)
e_main=rand(96)
e_desert=rand(96)

#調理開始
speak("各チーム準備ができたようです")
speak("それでは調理を始めてください")
speak("調理中…")
speak("調理中…")
speak("調理中…")
speak("そこまで!")

#審査

#点数などの変数
score_ape=0
score_main=0
score_desert=0

e_score_ape=0
e_score_main=0
e_score_desert=0

score_t=0
e_score_t=0

ten_time=600

result=0 #-1負け,1勝ち,0引き分け

#審査開始


tile=e_ape+1

img_d1=tiled(320497,tile,144,80,32,32,4,16) 
img_d2=tiled(320497,tile,208,80,32,32,4,16) 
img_d3=tiled(320497,tile,272,80,32,32,4,16) 
img_d4=tiled(320497,tile,336,80,32,32,4,16) 

speak("まずは挑戦者の前菜です")
speak(all_recipe[e_ape][1])

#得点
speak("それでは採点をお願いします")
#一人一人の採点の計算(簡易的にランダム)
score_j1=rand(5)+1
score_j2=rand(5)+1
score_j3=rand(5)+1
score_j4=rand(5)+1
#審査演出
waitTime(ten_time)
img_s1=tiled(320423,score_j1*16,144,16,32,32,4,16)
waitTime(ten_time)
img_s2=tiled(320423,score_j2*16,208,16,32,32,4,16) 
waitTime(ten_time)
img_s3=tiled(320423,score_j3*16,272,16,32,32,4,16) 
waitTime(ten_time)
img_s4=tiled(320423,score_j4*16,336,16,32,32,4,16) 
waitTime(ten_time)
#スコア合計
score=score_j1+score_j2+score_j3+score_j4
if score == 20
s="満点!満点が出ました!"
elsif score > 12
s="これは高得点だ!"
elsif score >8
s="まずまずの点数が出ました"
else
s="あまり高い点数は出ないようです"
end
speak(s)
e_score_ape=score

#採点表の削除
deleteSprite(img_s1)
deleteSprite(img_s2)
deleteSprite(img_s3)
deleteSprite(img_s4)
#次の料理の表示
deleteSprite(img_d1)
deleteSprite(img_d2)
deleteSprite(img_d3)
deleteSprite(img_d4)

tile=ape+1
img_d1=tiled(320497,tile,144,80,32,32,4,16) 
img_d2=tiled(320497,tile,208,80,32,32,4,16) 
img_d3=tiled(320497,tile,272,80,32,32,4,16) 
img_d4=tiled(320497,tile,336,80,32,32,4,16) 

speak("続いてチャンピオンの前菜です")
speak(all_recipe[ape][1])

#得点
speak("それでは採点をお願いします")
#一人一人の採点の計算(簡易的にランダム)
score_j1=rand(5)+1
score_j2=rand(5)+1
score_j3=rand(5)+1
score_j4=rand(5)+1
#審査演出
waitTime(ten_time)
img_s1=tiled(320423,score_j1*16,144,16,32,32,4,16)
waitTime(ten_time)
img_s2=tiled(320423,score_j2*16,208,16,32,32,4,16) 
waitTime(ten_time)
img_s3=tiled(320423,score_j3*16,272,16,32,32,4,16) 
waitTime(ten_time)
img_s4=tiled(320423,score_j4*16,336,16,32,32,4,16) 
waitTime(ten_time)
#スコア合計
score=score_j1+score_j2+score_j3+score_j4
if score == 20
s="満点!満点が出ました!"
elsif score > 12
s="これは高得点だ!"
elsif score >8
s="まずまずの点数が出ました"
else
s="あまり高い点数は出ないようです"
end
speak(s)
score_ape=score

#採点表の削除
deleteSprite(img_s1)
deleteSprite(img_s2)
deleteSprite(img_s3)
deleteSprite(img_s4)
#次の料理の表示
deleteSprite(img_d1)
deleteSprite(img_d2)
deleteSprite(img_d3)
deleteSprite(img_d4)

#審査開始


tile=e_main+1
img_d1=tiled(320497,tile,144,80,32,32,4,16) 
img_d2=tiled(320497,tile,208,80,32,32,4,16) 
img_d3=tiled(320497,tile,272,80,32,32,4,16) 
img_d4=tiled(320497,tile,336,80,32,32,4,16) 

speak("続いて挑戦者のメイン料理です")
speak(all_recipe[e_main][1])

#得点
speak("それでは採点をお願いします")
#一人一人の採点の計算(簡易的にランダム)
score_j1=rand(5)+1
score_j2=rand(5)+1
score_j3=rand(5)+1
score_j4=rand(5)+1
#審査演出
waitTime(ten_time)
img_s1=tiled(320423,score_j1*16,144,16,32,32,4,16)
waitTime(ten_time)
img_s2=tiled(320423,score_j2*16,208,16,32,32,4,16) 
waitTime(ten_time)
img_s3=tiled(320423,score_j3*16,272,16,32,32,4,16) 
waitTime(ten_time)
img_s4=tiled(320423,score_j4*16,336,16,32,32,4,16) 
waitTime(ten_time)
#スコア合計
score=score_j1+score_j2+score_j3+score_j4
if score == 20
s="満点!満点が出ました!"
elsif score > 12
s="これは高得点だ!"
elsif score >8
s="まずまずの点数が出ました"
else
s="あまり高い点数は出ないようです"
end
speak(s)
e_score_main=score

#採点表の削除
deleteSprite(img_s1)
deleteSprite(img_s2)
deleteSprite(img_s3)
deleteSprite(img_s4)
#次の料理の表示
deleteSprite(img_d1)
deleteSprite(img_d2)
deleteSprite(img_d3)
deleteSprite(img_d4)



tile=main+1
img_d1=tiled(320497,tile,144,80,32,32,4,16) 
img_d2=tiled(320497,tile,208,80,32,32,4,16) 
img_d3=tiled(320497,tile,272,80,32,32,4,16) 
img_d4=tiled(320497,tile,336,80,32,32,4,16) 

speak("続きましてチャンピオンのメイン料理です")
speak(all_recipe[main][1])
#得点
speak("それでは採点をお願いします")
#一人一人の採点の計算(簡易的にランダム)
score_j1=rand(5)+1
score_j2=rand(5)+1
score_j3=rand(5)+1
score_j4=rand(5)+1
#審査演出
waitTime(ten_time)
img_s1=tiled(320423,score_j1*16,144,16,32,32,4,16)
waitTime(ten_time)
img_s2=tiled(320423,score_j2*16,208,16,32,32,4,16) 
waitTime(ten_time)
img_s3=tiled(320423,score_j3*16,272,16,32,32,4,16) 
waitTime(ten_time)
img_s4=tiled(320423,score_j4*16,336,16,32,32,4,16) 
waitTime(ten_time)
#スコア合計
score=score_j1+score_j2+score_j3+score_j4
if score == 20
s="満点!満点が出ました!"
elsif score > 12
s="これは高得点だ!"
elsif score >8
s="まずまずの点数が出ました"
else
s="あまり高い点数は出ないようです"
end
speak(s)
score_main=score

#採点表の削除
deleteSprite(img_s1)
deleteSprite(img_s2)
deleteSprite(img_s3)
deleteSprite(img_s4)

#次の料理の表示
deleteSprite(img_d1)
deleteSprite(img_d2)
deleteSprite(img_d3)
deleteSprite(img_d4)

#審査開始


tile=e_desert+1

img_d1=tiled(320497,tile,144,80,32,32,4,16) 
img_d2=tiled(320497,tile,208,80,32,32,4,16) 
img_d3=tiled(320497,tile,272,80,32,32,4,16) 
img_d4=tiled(320497,tile,336,80,32,32,4,16) 

speak("続きまして挑戦者のデザートです")
speak(all_recipe[e_desert][1])

#得点
speak("それでは採点をお願いします")
#一人一人の採点の計算(簡易的にランダム)
score_j1=rand(5)+1
score_j2=rand(5)+1
score_j3=rand(5)+1
score_j4=rand(5)+1
#審査演出
waitTime(ten_time)
img_s1=tiled(320423,score_j1*16,144,16,32,32,4,16)
waitTime(ten_time)
img_s2=tiled(320423,score_j2*16,208,16,32,32,4,16) 
waitTime(ten_time)
img_s3=tiled(320423,score_j3*16,272,16,32,32,4,16) 
waitTime(ten_time)
img_s4=tiled(320423,score_j4*16,336,16,32,32,4,16) 
waitTime(ten_time)
#スコア合計
score=score_j1+score_j2+score_j3+score_j4
if score == 20
s="満点!満点が出ました!"
elsif score > 12
s="これは高得点だ!"
elsif score >8
s="まずまずの点数が出ました"
else
s="あまり高い点数は出ないようです"
end
speak(s)
e_score_desert=score

#採点表の削除
deleteSprite(img_s1)
deleteSprite(img_s2)
deleteSprite(img_s3)
deleteSprite(img_s4)
#次の料理の表示
deleteSprite(img_d1)
deleteSprite(img_d2)
deleteSprite(img_d3)
deleteSprite(img_d4)



tile=desert+1

img_d1=tiled(320497,tile,144,80,32,32,4,16) 
img_d2=tiled(320497,tile,208,80,32,32,4,16) 
img_d3=tiled(320497,tile,272,80,32,32,4,16) 
img_d4=tiled(320497,tile,336,80,32,32,4,16) 

speak("最後にチャンピオンのデザートです")
speak(all_recipe[desert][1])

#得点
speak("それでは採点をお願いします")
#一人一人の採点の計算(簡易的にランダム)
score_j1=rand(5)+1
score_j2=rand(5)+1
score_j3=rand(5)+1
score_j4=rand(5)+1
#審査演出
waitTime(ten_time)
img_s1=tiled(320423,score_j1*16,144,16,32,32,4,16)
waitTime(ten_time)
img_s2=tiled(320423,score_j2*16,208,16,32,32,4,16) 
waitTime(ten_time)
img_s3=tiled(320423,score_j3*16,272,16,32,32,4,16) 
waitTime(ten_time)
img_s4=tiled(320423,score_j4*16,336,16,32,32,4,16) 
waitTime(ten_time)
#スコア合計
score=score_j1+score_j2+score_j3+score_j4
if score == 20
s="満点!満点が出ました!"
elsif score > 12
s="これは高得点だ!"
elsif score >8
s="まずまずの点数が出ました"
else
s="あまり高い点数は出ないようです"
end
speak(s)
score_desert=score

#採点表料理の削除
deleteSprite(img_s1)
deleteSprite(img_s2)
deleteSprite(img_s3)
deleteSprite(img_s4)
deleteSprite(img_d1)
deleteSprite(img_d2)
deleteSprite(img_d3)
deleteSprite(img_d4)
drawCanvas()

speak("全ての料理の審査が終わりました")
speak("いよいよ結果発表です!!")

score_t=score_ape+score_main+score_desert
e_score_t=e_score_ape+e_score_main+e_score_desert

#総合得点の発表の演出
#台紙のスプライト
score_L=createSprite(320430)
setSpriteRect(score_L, 0, 0, 96, 96, 0, 0, 96, 96)
setSpritePosition(score_L, 0, 0)

score_R=createSprite(320430)
setSpriteRect(score_R, 0, 0, 96, 96, 0, 0, 96, 96)
setSpritePosition(score_R, 512-90, 0)

drawCanvas()


#得点のテキスト表示
setTextFontColor(0, 0, 0)
setTextFontBold(true)
setTextFontSize(64)

score_L_text=createText(16, 16, 96, 96)
score_R_text=createText(512-96+16, 16, 96, 96)
setText(score_L_text, score_t)
setText(score_R_text, e_score_t)

setTextFontSize(18)
setTextFontBold(false)
setTextFontColor(255, 255, 255)

if score_t > e_score_t #win
result=0
s="勝者はチャンピオンに決定しました!"
elsif score_t < e_score_t #lose
result=1
s="勝者は挑戦者に決定しました!"
else #hikiwake
result=2
s="なんと、この勝負引き分けです!"
end

speak("チャンピオン "+score_t+" 点 挑戦者 "+e_score_t+" 点")
speak(s)
waitTime(1000)
speak("以上で本日の料理対決を終了いたします")
speak("みなさま、またお会いしましょう!")
waitTime(1000)

deleteAllSprite()
deleteTextAll()
drawCanvas()

return result

end

stage=1
case speakWithSelect(2,"する","しない",     "料理対決するかね?")
  when 0 
a= taiketu(stage)
waitTime(1000)
case a
when 0
#speak("勝ったか")

when 1
#speak("負けたか")
when 2
#speak("いい勝負だった")
end
    
  when 1    
end


とくにイベントスクリプトは繰り返しの動作がまとまっていないなど、
見にくいですが、得点計算式ができてから整理しようと思います。

以下自分用データメモ
番号名前
1オムレツ
2プリン
3だし巻き卵
4茶碗蒸し
5キッシュ
6たまごバクダン
7サラダ
8トマトのコンポート
9キャベツ汁
10きんぴらごぼう
11ポテトサラダ
12ラタトゥイユ
13ブラウンシチュー
14肉じゃが
15ローストビーフ
16おろしステーキ
17タルタルステーキ
18蘭州ラーメン
19シューマイ
20ゴマ団子
21ハンバーグ
22焼き餃子
23春巻き
24肉詰め唐辛子
25アクアパッツァ
26おったまケーキ
27サンマの塩焼き
28フィッシューマイ
29ムニエル
30エビチリ
31コンソメスープ
32コーンポタージュ
33三蛇羹
34赤だし
35クラムチャウダー
36トムヤムクン
37親子丼
38オムライス
39焼き鳥
40海鮮親子丼
41竜田揚げ
42親子おにぎり
43闇鍋
44すき焼き
45鴨鍋
46じゃっぱ汁
47チーズフォンデュ
48鴛鴦火鍋
49湯豆腐
50杏仁豆腐
51たまご豆腐
52豆腐味噌汁
53豆腐ドーナツ
54麻婆豆腐
55もりそば
56アイスラーメン
57塩ラーメン
58醤油ラーメン
59豚骨ラーメン
60台湾まぜそば
61ペペロンチーノ
62チョコパスタ
63カメパスタ
64イカスミパスタ
65アルフレード
66アラビアータ
67ショートケーキ
68ムーンケーキ
69ケーク・サレ
70お好み焼き
71チーズケーキ
72ビックリパイ
73サンドイッチ
74フレンチトースト
75マルゲリータ
76照り焼きバーガー
77カツサンド
78グラブラックス
79フルーツ盛り合せ
80桃包
81生ハムメロン
82フルーツ味噌汁
83アップルパイ
84シナモンアップル
85チャーハン
86ぼた餅
87ドクドクドリア
88アンアンゾースイ
89リゾット
90パエリア
91ベイクドポテト
92芋ようかん
93ヴィシソワーズ
94大学芋
95コロッケ
96トゥートウロースー

コメントする

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

コメント一覧

コメントはありません。