SHARE
TWEET

mireiyu_novel_class.rb_A

a guest Dec 23rd, 2014 16 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #! ruby -Ks
  2.  
  3. #読み込み
  4. require 'kconv'
  5. require 'dxruby'
  6. require_relative 'ayame'
  7.  
  8. #####頻出動作を管理するクラスソースファイル#####
  9.  
  10. ##キャラ立ち絵描写用クラス##
  11. class Class_chara
  12.  def initialize
  13.   @body , @face= [],[]
  14.  
  15.   @body << @sample_body1 = Image.load('sample_pass/body_sample1.png')
  16.   @body << @sample_body2 = Image.load('sample_pass/body_sample2.png')
  17.   @body << @sample_body3 = Image.load('sample_pass/body_sample3.png')
  18.  
  19.   @face << @sample_face1 = Image.load('sample_pass/face_sample1.png')
  20.   @face << @sample_face2 = Image.load('sample_pass/face_sample2.png')
  21.   @face << @sample_face3 = Image.load('sample_pass/face_sample3.png')
  22.  end
  23.  
  24.  def draw(x,y,centeredx,centeredy,body,face,calp)
  25.   body = @body.length + body if body < 0
  26.   face = @face.length + face if face < 0
  27.   calp = 255 if calp > 255
  28.   calp = 0   if calp < 0
  29.   x += @body[body].width / 2 if centeredx == true
  30.   y += @body[body].width / 2 if centeredy == true
  31.  
  32.   Window.draw_ex(x,y,@body[body],:alpha=>calp)
  33.   Window.draw_ex(x,y,@face[face],:alpha=>calp)
  34.  end
  35. end
  36.  
  37. ##背景、オブジェクト画像描写用クラス##
  38. class Class_image
  39.  def initialize
  40.   @background ,  @object = [] , []
  41.  
  42.   @background << @sample_background1 = Image.load('sample_pass/background_sample1.png')
  43.   @background << @sample_background2 = Image.load('sample_pass/background_sample2.png')
  44.   @background << @sample_background3 = Image.load('sample_pass/background_sample3.png')
  45.  
  46.   @object << @sample_object = Image.load('sample_pass/object_sample1.png')
  47.   @object << @sample_object = Image.load('sample_pass/object_sample2.png')
  48.   @object << @sample_object = Image.load('sample_pass/object_sample3.png')
  49.  end
  50.  
  51.  def draw_background(background)
  52.   Window.draw_ex(0,0, @background[background])
  53.  end
  54.  
  55.  def draw_object(object,x,y,falp)
  56.   Window.draw_ex(x,y,@object[object],:alpha=>falp)
  57.  end
  58. end
  59.  
  60. ##文章、ボタン描写用クラス##
  61. class Class_sentence
  62.  def initialize
  63.  end
  64.  
  65.  def draw_sentence(x,y,sentence,font_size,font_type,effect,color_ary,edge_color_ary)
  66.   b_bold,b_itaric,b_edge = false,false,false
  67.  
  68.   b_bold   = true if effect.include?("b")
  69.   b_itaric = true if effect.include?("i")
  70.   b_edge   = true if effect.include?("e")
  71.  
  72.   hashs = {color:color_ary,bold:b_bold,itaric:b_itaric,edge:b_edge,edge_color:edge_color_ary}
  73.  
  74.   Window.draw_font(x,y,sentence,Font.new(font_size,font_type),hash=hashs)
  75.  end
  76.  
  77.  def draw_button(x,y,sentence,font_size,font_type)
  78.   font = Font.new(font_size,font_type)
  79.   button_size = [x..x + font.getWidth(sentence) , y..y + font.size]
  80.  
  81.   if button_size[0].include?($xpoint) && button_size[1].include?($ypoint)
  82.    color_ary , pushed = [255,122,122] , true
  83.    else
  84.    color_ary , pushed = [0,0,0] , false
  85.   end
  86.  
  87.   hashs = {color: [255,255,255] ,edge: true , edge_color: color_ary}
  88.  
  89.   Window.draw_font_ex(x,y, sentence ,font, hash=hashs)
  90.  
  91.   if pushed == true
  92.    return true
  93.    else
  94.    return false
  95.   end
  96.  end
  97. end
  98.  
  99. ##サウンド処理クラス##
  100. class Class_sound
  101.  
  102.  def initialize
  103.   @music , @sound = [] , []
  104.  
  105.   @music << @sample_music1 = Ayame.new('sample_pass/music_sample1.mp3')
  106.   @music << @sample_music2 = Ayame.new('sample_pass/music_sample2.mp3')
  107.   @music << @sample_music3 = Ayame.new('sample_pass/music_sample3.mp3')
  108.  
  109.   @sound << @sample_sound1 = Sound.new('sample_pass/sound_sample1.wav')
  110.   @sound << @sample_sound2 = Sound.new('sample_pass/sound_sample2.wav')
  111.   @sound << @sample_sound3 = Sound.new('sample_pass/sound_sample3.wav')
  112.  end
  113.  
  114.  def music_play(music,vol)
  115.   music = @music.length + music if music < 0
  116.  
  117.   @music[music].play(0,0)
  118.   @music[music].set_volume(vol,0)
  119.  end
  120.  
  121.  def music_stop(music)
  122.   music = @music.length + music if music < 0
  123.  
  124.   @music[music].stop(0)
  125.  end
  126.  
  127.  def music_pause(music)
  128.   @music[music].pause
  129.  end
  130.  
  131.  def music_resume(music)
  132.   @music[music].resume
  133.  end
  134.  
  135.  def music_onoff(music,vol)
  136.  
  137.   music = @music.length + music if music < 0
  138.  
  139.   if @music[music].finished?
  140.    @music[music].play(0,0)
  141.    @music[music].set_volume(vol,0)
  142.    else
  143.    @music[music].stop(0)
  144.   end
  145.  end
  146.  
  147.  def music_change(newmusic,vol)
  148.   newmusic = @music.length + newmusic if newmusic < 0
  149.  
  150.   t = @music.length
  151.   t.times do |t|
  152.    unless t == newmusic
  153.     @music[t].stop(0)
  154.     else
  155.     @music[newmusic].play(0,0) if @music[newmusic].finished?
  156.     @music[newmusic].set_volume(vol,0)
  157.    end
  158.   end
  159.  end
  160.  
  161.  def silent
  162.   t = @music.length
  163.   t.times{|t| @music[t].stop(0)}
  164.  end
  165.  
  166.  def sound(sound)
  167.   @sound[sound].play
  168.  end
  169. end
  170.  
  171. ##固定データの変更に用いる。こう行わないと後述記述しているeach上のパラメータ変更が適用できない。##
  172. class Class_param_edit
  173.  
  174.  def initialize
  175.  end
  176.  
  177.  def do(data,type)
  178.   case type
  179.    when 0
  180.    $sample_param[0] = data[1] if data[0] == 0 || data[0] == "フラグ1"
  181.    $sample_param[1] = data[1] if data[0] == 1 || data[1] == "フラグ2"
  182.    $sample_param[2] = data[1] if data[0] == 2 || data[2] == "フラグ3"
  183.    when 1
  184.    $sample_param[0] += data[1] if data[0] == 0 || data[0] == "フラグ1"
  185.    $sample_param[1] += data[1] if data[0] == 1 || data[1] == "フラグ2"
  186.    $sample_param[2] += data[1] if data[0] == 2 || data[2] == "フラグ3"
  187.    when 2
  188.    $sample_param[0] *= data[1] if data[0] == 0 || data[0] == "フラグ1"
  189.    $sample_param[1] *= data[1] if data[0] == 1 || data[1] == "フラグ2"
  190.    $sample_param[2] *= data[1] if data[0] == 2 || data[2] == "フラグ3"
  191.   end
  192.  end
  193. end
  194.  
  195. ###上4つのクラスはどこからでも参照ができるクラスとなる。
  196. $g_chara , $g_image , $g_sentence , $g_sound = Class_chara.new , Class_image.new , Class_sentence.new , Class_sound.new
  197.  
  198. ######上全てのクラスを参照するノベルエンジンクラス######
  199. class Class_novel
  200.  
  201. ##@event_if_ary、@event_wait_ary、@event_result_ary は基本途中変化しないのでここだけの動作でよし。
  202.  def initialize
  203.   @param = Class_param_edit.new
  204.  
  205.   @days = 0
  206.   @pages = 0
  207.  
  208.   @trucepoint = 0
  209.   @time = 0
  210.  
  211.   @calp = 0
  212.   @falp = 0
  213.  
  214.   @sensor_list = [[],[]]
  215.  
  216. =begin
  217. リファレンス。
  218.  
  219. @event_if_ary は発生条件。
  220. [※1 [※2 [※3 [※4 [条件パロメータ,数値,以上?以下?範囲内?、範囲外?],...],発生イベント],...],...]
  221. ※1:ここの区切りで日、ここでは一季節ごとという事を決める。 ※2:ここの、区切りでイベント開始判定順を決める。条件がnilの場合必ず実行されるイベントになる。
  222. 複数イベントを同日に置く場合前に置けば優先度が高まる、最後にはnil条件を入れておく。※3:※4:1イベントを起こすための条件は何個でも置ける。
  223. eg:[nil,[[[0,3,"up"],[1,3,"up"]],1],[nil,2]]
  224.  
  225.  
  226. @event_result_ary はイベント結果。
  227. [※1 [※2 [※3<正答度,判定>,[※4[※5<パラム引数,変化量>],...],※6>次イベント],...],...]
  228. ※1:@daysが基準。※2:複数置ける。※3:正答度に対してどう判定するか
  229. ※4:複数置ける。※5:左の値はClass_param_edit参照 ※6:ホームに戻るには-1,そうでなく別イベントを条件無視で発動するのはここを設定。
  230. eg:[nil,[[2,"up",[[0,3],[1,-4]],-1],[2,"down",[[0,3],[1,-4]],2]]]
  231.  
  232. @event_wait_ary は最終ボタン待ち時間。
  233. [※1 [※2>タイム1,タイム2,タイム3,...,タイムX],...]
  234. ※1:@daysが基準。※2:ここの順番は@pagesを基準とする。だんだん値が高くなるか同じになっているのがベスト。
  235. eg:[nil,[100,200,200,200,300]]
  236.  
  237. @event_soundeffects_ary は効果音を@time(フレームタイム)で指定。
  238. [※1 [※2[※3<タイム1,効果音引数>],[タイム1,効果音引数],[タイム1,効果音引数],...,[タイム1,効果音引数]],...]
  239. ※1:@daysが基準。※2:ここの順番は@pagesを基準とする。だんだん値が高くなるか同じになっているのがベスト。※3:左で設定した@timeになった時右の効果音を鳴らす。
  240. eg:[nil,[[50,0],[150,1],[250,2]]]
  241.  
  242. @event_images_ary は画像、音楽。[※1 [※2 [背景番号,[[OBJ番号1,X座標1,Y座標1,α1],..,[OBJ番号2,X座標2,Y座標2,α2]],[音楽番号,音量],立ち位置x,立ち位置y,センターX,センターY,※3<ボディ,表情,[<※4>]]]]
  243. ※1:@daysが基準。※2:@pagesが基準。※3 特に理由が無ければ現在の標準ボディを指定できるようにすればいい。※4フラグを入れる。様々なのでここでは割愛
  244. eg:[nil,[[2,[[0,100,200,255],[1,400,300,122]],[0,80],120,300,false,false,0,2,[]],[1,[[4,200,300,255],[1,200,300,122]],[1,100],320,360,false,true,1,1,["α再定義"]]]]
  245.  
  246. @event_sentence_aryは通常文章の内容。[※1 [※2 [※3 [x,y,文章,フォントサイズ,フォントタイプ,エフェクト,色,エッジの色,表示タイム範囲],...],...],...]
  247. ※1:@daysが基準。日に依存しないので連続イベントも起こせる。 ※2:@pagesが基準。 ※3:何個でも置けるが文字がかぶらないように。
  248. eg:[nil,[[[20,100,"これはさんぷる",24,"メイリオ","bi",[255,255,255],[0,0,0],20..60],[20,200,"ぷるぷる",18,"メイリオ","e",[255,255,255],[122,122,122],40..200]]]]
  249.  
  250. @event_button_ary は条件分岐ボタン。[※1 [※2 [※3 [X座標,Y座標,文章,フォントサイズ,フォントタイプ,表示タイム範囲,正答数値,※4>正答方向,[※5 [※6>パラム名前,パラム変更値],ページ番号],...],...],...],...]
  251. ※1:@daysが基準。※2:@pagesが基準。 ※3:何個でも置けるが文字がかぶらないように。※4:"up","down","just","reverse"がある。※5:複数置ける。※6:名前はClass_param_edit参照。
  252. eg:[nil,[[[200,200,"次へ",24,"メイリオ",200..200,3,"up",[[0,3],[1,-3],1]],[200,300,"こっちだよ",24,"メイリオ",200..200,2,"down",[[1,3],[2,-3]],2]]]]
  253.  
  254. 記述法(sentence,button,image)=>@daysが変わる時は1インデントずらす(でこぼこ記述) @pagesが変わる時は改行する。同じ分岐源からもしくは同じ分岐先の行はくっつける。
  255. 記述法(if,result,wait,soundeffects)=>@daysが変わる時は1インデントずらす(でこぼこ記述)
  256. 全て最初の値にはnilを入れること。上記のように。
  257. =end
  258.  
  259.   @event_if_ary           = [nil,
  260.                              [[[[0,3,"up"],[1,3,"up"]],1],[[nil,2]]]]
  261.  
  262.   @event_result_ary       = [nil,
  263.                              [[2,"up",[[0,3],[1,-4]],-1],[2,"down",[[0,3],[1,-4]],-1]]]
  264.  
  265.   @event_wait_ary         = [nil,
  266.                              [100,200,200,200,300]]
  267.  
  268.   @event_soundeffects_ary = [nil,
  269.                              [[50,0],[150,1],[250,2]]]
  270.  
  271.   @event_images_ary       = [nil,
  272.                              [[2,[[0,100,200,255],[1,400,300,122]],[0,80],120,300,false,false,0,2,[]],
  273.                              [1,[[2,200,300,255],[1,200,300,122]],[1,100],320,360,false,true,1,1,["α再定義"]],[1,[[2,200,300,255],[1,200,300,122]],[1,100],320,360,false,true,1,1,["α再定義"]],[1,[[2,200,300,255],[1,200,300,122]],[1,100],320,360,false,true,1,1,["α再定義"]],
  274.                              [0,[[0,100,100,255],[2,200,100,122]],[2,50],300,400,true,false,2,0,["非表示"]]]]
  275.  
  276.   @event_sentence_ary     = [nil,
  277.                              [[[20,100,"これはさんぷる",24,"メイリオ","bi",[255,255,255],[0,0,0],20..100],[20,200,"ぷるぷる",18,"メイリオ","e",[255,255,255],[122,122,122],60..100]],
  278.                            
  279.                              [[20,100,"一の選択",24,"メイリオ","",[255,255,255],[0,0,0],100..200],[20,200,"のーまる",18,"メイリオ","",[255,122,122],[122,122,122],150..200]],
  280.                              [[20,100,"二の選択",24,"メイリオ","",[255,255,255],[0,0,0],100..200],[20,200,"あっぷあっぷ",18,"メイリオ","",[122,255,122],[122,122,122],150..200]],
  281.                              [[20,100,"三の選択",24,"メイリオ","",[255,255,255],[0,0,0],100..200],[20,200,"だうんだうん",18,"メイリオ","",[122,122,255],[122,122,122],150..200]],
  282.  
  283.                              [[20,100,"終点",24,"メイリオ","b",[255,255,255],[0,0,0],200..300],[20,200,"おわり",18,"メイリオ","b",[255,255,255],[122,122,122],200..300]]]]
  284.  
  285.   @event_button_ary       = [nil,
  286.                              [[[200,200,"次へ",24,"メイリオ",100..100,3,"up",[[0,1],[1,-3]],1],[200,300,"こっちだよ",24,"メイリオ",100..100,2,"down",[[1,2],[2,-3]],2],[200,400,"いやこっちだよ",24,"メイリオ",100..100,0,"just",[[0,3],[1,-3]],3]],
  287.                              [[200,200,"終点へ",24,"メイリオ",200..200,0,"up",[],4]],
  288.                              [[200,200,"終点へ",24,"メイリオ",200..200,0,"up",[],4]],
  289.                              [[200,200,"終点へ",24,"メイリオ",200..200,0,"up",[],4]],
  290.                              [[200,200,"おわり",24,"メイリオ",300..300,0,"up",[],-1]]]]
  291.  end
  292.  
  293. ##@event_soundeffects_ary、@event_sentence_ary、@event_button_ary、@event_images_ary を再定義し、イベント中の変化に対応。常に動作してると重いので@pagesの変化時のみ実行する。
  294.  def reinit
  295.   @event_soundeffects_ary = [nil,
  296.                              [[50,0],[150,1],[250,2]]]
  297.  
  298.   @event_images_ary       = [nil,
  299.                              [[2,[[0,100,200,255],[1,400,300,122]],[0,80],120,300,false,false,0,2,[]],
  300.                              [1,[[2,200,300,255],[1,200,300,122]],[1,100],320,360,false,true,1,1,["α再定義"]],[1,[[2,200,300,255],[1,200,300,122]],[1,100],320,360,false,true,1,1,["α再定義"]],[1,[[2,200,300,255],[1,200,300,122]],[1,100],320,360,false,true,1,1,["α再定義"]],
  301.                              [0,[[0,100,100,255],[2,200,100,122]],[2,50],300,400,true,false,2,0,["非表示"]]]]
  302.  
  303.   @event_sentence_ary     = [nil,
  304.                              [[[20,100,"これはさんぷる",24,"メイリオ","bi",[255,255,255],[0,0,0],20..100],[20,200,"ぷるぷる",18,"メイリオ","e",[255,255,255],[122,122,122],60..100]],
  305.                            
  306.                              [[20,100,"一の選択",24,"メイリオ","",[255,255,255],[0,0,0],100..200],[20,200,"のーまる",18,"メイリオ","",[255,122,122],[122,122,122],150..200]],
  307.                              [[20,100,"二の選択",24,"メイリオ","",[255,255,255],[0,0,0],100..200],[20,200,"あっぷあっぷ",18,"メイリオ","",[122,255,122],[122,122,122],150..200]],
  308.                              [[20,100,"三の選択",24,"メイリオ","",[255,255,255],[0,0,0],100..200],[20,200,"だうんだうん",18,"メイリオ","",[122,122,255],[122,122,122],150..200]],
  309.  
  310.                              [[20,100,"終点",24,"メイリオ","b",[255,255,255],[0,0,0],200..300],[20,200,"おわり",18,"メイリオ","b",[255,255,255],[122,122,122],200..300]]]]
  311.  
  312.   @event_button_ary       = [nil,
  313.                              [[[200,200,"次へ",24,"メイリオ",100..100,3,"up",[[0,3],[1,-3]],1],[200,300,"こっちだよ",24,"メイリオ",100..100,2,"down",[[1,3],[2,-3]],2],[200,400,"いやこっちだよ",24,"メイリオ",100..100,0,"just",[[0,3],[1,-3]],3]],
  314.                              [[200,200,"終点へ",24,"メイリオ",200..200,0,"up",[],4]],
  315.                              [[200,200,"終点へ",24,"メイリオ",200..200,0,"up",[],4]],
  316.                              [[200,200,"終点へ",24,"メイリオ",200..200,0,"up",[],4]],
  317.                              [[200,200,"おわり",24,"メイリオ",300..300,0,"up",[],300]]]]
  318.  end
  319.  
  320. ##原則初回のみ。
  321.  def ifs(days) #恐らくやってくる値は日。
  322.   if @event_if_ary[days] != nil #nil防止策
  323.  
  324.    $g_sound.silent #全曲をストップ
  325.    @event_if_ary[days].each do |s| #その日の起こせるイベントを前から見る。
  326.  
  327.     if s[0] == nil #無条件イベント
  328.      @days = s[1]
  329.      $g_sound.music_play(@event_images_ary[@days][@pages][2][0],@event_images_ary[@days][@pages][2][1]) #初回音楽は何であれもう一度最初から奏でる。
  330.      return s[1] #イベント番号を返す
  331.     end
  332.  
  333.     s[0].each do |c|
  334.  
  335.      case c[2]
  336.       when "up"
  337.       if c[0] >= c[1]
  338.        @days = s[1]
  339.        $g_sound.music_play(@event_images_ary[@days][@pages][2][0],@event_images_ary[@days][@pages][2][1])
  340.        return s[1]
  341.       end
  342.       when "down"
  343.       if c[0] <= c[1]
  344.        @days = s[1]
  345.        $g_sound.music_play(@event_images_ary[@days][@pages][2][0],@event_images_ary[@days][@pages][2][1])
  346.        return s[1]
  347.       end
  348.       when "range"
  349.       if c[1].include?(c[0])
  350.        @days = s[1]
  351.        $g_sound.music_play(@event_images_ary[@days][@pages][2][0],@event_images_ary[@days][@pages][2][1])
  352.        return s[1]
  353.       end
  354.       when "out"
  355.       unless c[1].include?(c[0])
  356.        @days = s[1]
  357.        $g_sound.music_play(@event_images_ary[@days][@pages][2][0],@event_images_ary[@days][@pages][2][1])
  358.        return s[1]
  359.       end
  360.       when "just"
  361.       if c[0] == c[1]
  362.        @days = s[1]
  363.        $g_sound.music_play(@event_images_ary[@days][@pages][2][0],@event_images_ary[@days][@pages][2][1])
  364.        return s[1]
  365.       end
  366.      end
  367.  
  368.     end
  369.  
  370.    end
  371.    else
  372.    return -1 #その日実行できるイベントが無い場合はホームにブーメラン。
  373.   end
  374.  end
  375.  
  376. ##@pagesが変化つまりボタンを押した瞬間。音楽変わる、再定義が起こる。
  377.  def mind(page)
  378.  
  379.   if @pages != page
  380.    page = @pages
  381.    if @event_images_ary[@days][@pages][1] != nil #nilを設定していた場合全曲を止める
  382.     $g_sound.music_change(@event_images_ary[@days][@pages][2][0],@event_images_ary[@days][@pages][2][1])
  383.     else
  384.     $g_sound.silent
  385.    end
  386.    checkout = [page , true] #配列にして返す。
  387.    return checkout
  388.   end
  389.  
  390.   checkout = [page , false]
  391.   return checkout
  392.  end
  393.  
  394. ##文、ボタンを動作させる。
  395.  def sentence
  396.  
  397.   @sensor_list = []
  398.  
  399. #↓文字の描写は1行で一括!!nil防止有り
  400.   @event_sentence_ary[@days][@pages].each{|s| $g_sentence.draw_sentence(s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7]) if s[8].include?(@time)} if @event_sentence_ary[@days] != nil
  401.  
  402. #ボタンの押し判定リストの生成
  403.   num = 0
  404.   if @event_button_ary[@days] != nil
  405.    @event_button_ary[@days][@pages].each do |s|
  406.     if s[5].include?(@time)
  407.      @sensor_list << [$g_sentence.draw_button(s[0],s[1],s[2],s[3],s[4]), [s[6] , s[7] , s[8] , s[9]]]
  408.      else
  409.      @sensor_list << [false,false]
  410.     end
  411.     num += 1
  412.    end
  413.  
  414. #結果をここで処理
  415.    @sensor_list.each do |r|
  416.     if r[0] == true and Input.mousePush?(M_LBUTTON)
  417.      case r[1][1]
  418.       when "up"
  419.       @trucepoint += r[1][0]
  420.       when "down"
  421.       @trucepoint -= r[1][0]
  422.       when "just"
  423.       @trucepoint = r[1][0]
  424.       when "reverse"
  425.       @trucepoint = -1 * r[1][0]
  426.      end
  427.      r[1][2].each{|d| @param.do(d,1) } if r[1][2] != [[]]  #外部クラス @param (Class_param_edit) を用いないと能力を変更できない。
  428.      @pages = r[1][3]
  429.      break #複数ボタン押しを防ぐ為にブレイク
  430.     end
  431.    end
  432.   end
  433.  end
  434.  
  435. ##環境操作または効果音をタイムラインで指定して鳴らす。(現在効果音のみ)
  436.  def effects
  437. #↓サウンドは1行で一括!!#
  438.   @event_soundeffects_ary[@days].each{|s| $g_sound.sound(s[1]) if s[0] == @time} if @event_soundeffects_ary[@days] != nil
  439.  end
  440.  
  441. ##各描写系フラグメントを追加できる。
  442.  def draw
  443.  
  444.   if @event_images_ary[@days] != nil
  445.    num_image,num_objects= @event_images_ary[@days][@pages][0],@event_images_ary[@days][@pages][1]
  446.    x,y,cx,cy,num_body,num_face,calp = @event_images_ary[@days][@pages][3],@event_images_ary[@days][@pages][4],@event_images_ary[@days][@pages][5],@event_images_ary[@days][@pages][6],@event_images_ary[@days][@pages][7],@event_images_ary[@days][@pages][8],@calp
  447.    $g_image.draw_background(num_image)
  448.    num_objects.each{|v| $g_image.draw_object(v[0],v[1],v[2],v[3])}
  449.    $g_chara.draw(x,y,cx,cy,num_body,num_face,calp) unless @event_images_ary[@days][@pages][9].include?("非表示")
  450.    @calp = 0 if @event_images_ary[@days][@pages][9].include?("α再定義")  #<=フラグメントの一例。
  451.   end
  452.  
  453.  end
  454.  
  455. ##イベントの最終結果がここに来る。
  456.  def result(days)
  457.   if @pages == 300 and @event_result_ary[@days] != nil #最終分岐を1ボタンにし、@pagesの指定を300にすること。
  458.    clear = false
  459.    @event_result_ary[@days].each do |p|
  460.     case p[1]
  461.      when "up"
  462.      clear = true if @trucepoint >= p[0]
  463.      when "down"
  464.      clear = true if @trucepoint <= p[0]
  465.      when "just"
  466.      clear = true if @trucepoint == p[0]  
  467.      when "range"
  468.      clear = true if p[0].include?(@trucepoint)
  469.      when "out"
  470.      clear = true unless p[0].include?(@trucepoint)  
  471.     end
  472.     if clear == true
  473.      p[2].each{|d| @param.do(d,1) } if p[2] != [[]]  #外部クラス @param (Class_param_edit) を用いないと能力を変更できない。
  474.      return p[3]
  475.     end
  476.    end
  477.    else
  478.    return days
  479.   end
  480.  end
  481.  
  482. ##進行時間がここで一括調整できる。
  483.  def time
  484.   if @event_wait_ary[@days] != nil
  485.    @calp += 5 if @calp < 255
  486.    @time += 1.00 unless Input.keyDown?(K_SPACE)
  487.    @time = @event_wait_ary[@days][@pages] if @time >= @event_wait_ary[@days][@pages]
  488.   end
  489.  end
  490. end
RAW Paste Data
Pastebin PRO Autumn Special!
Get 40% OFF on Pastebin PRO accounts!
Top