お世話になります。
rubyでゲームを作っているのですが、ゲームを始めて、終わった後、タイトルに戻って、もう一度ゲームを始めるということをしたいのですが、タイトルに戻るまではできたのですが、ゲームを始めるを押すと、ゲームが前やった時の途中からスタートしてしまいます。
たぶん、ゲームが終わった時に進行状況やタイムを初期化するなどをすることで、直すことができると思うのですが、どのようにすればいいのかわかりません。 sdlを初期化すればいいのではないかと思いsdl.initなども使ってみましたが、駄目でした。
ruby
1 #タイトル画面(main.rb) 2require "./zairyo.rb" 3 4class Main 5 6def itiban 7while true do 8 while event = SDL::Event2.poll do 9 case event 10 when SDL::Event2::Quit 11 exit 12 when SDL::Event2::MouseButtonDown 13 x = event.x 14 y = event.y 15 if @window.zairyoclicked?(x,y) 16 SDL::INIT_EVERYTHING 17 zairyo = Zairyo.new 18 zairyo.niban 19 end 20 end 21 end 22end 23end 24 25end 26main = Main.new 27main.itiban
ruby
1 # zairyo.rb 2#!ruby -Ks 3require "./window3" 4require "./syujinko" 5require "./item" 6require "sdl" 7 8class Zairyo 9 10 def nibanb (ゲームの説明画面) 11 window3 = Window3.new 12 window3.drawBack 13 window3.start 14 while true do 15 while event = SDL::Event2.poll do 16 case event 17 when SDL::Event2::Quit 18 exit 19 when SDL::Event2::KeyDown 20 if event.sym == SDL::Key::SPACE then 21 window3.drawBack 22 kaisi 23 end 24 end 25 end 26 end 27 end 28 29def gameOver(window3,syujinko) #ゲーム終了画面です 30 window3.drawEndBack #二回目から始めるとこの説明画面の次にこの画面からスタートしてしまいます 31 syujinko.draw 32 window3.refresh 33 sleep 5 34 $a = 1 35 require "./main.rb" 36 main = Main 37 main.itiban #タイトルに戻します。 38end 39 40 41def kaisi #ゲーム画面省略させてもらっています。 42 43 SDL::Key.scan 44 if SDL::Key.press?(SDL::Key::A) 45 syujinko.moveLeft 46 end 47 if SDL::Key.press?(SDL::Key::F) 48 syujinko.moveRight 49 end 50 51 window3.drawBack 52 if time < 0 #タイムが0になるとゲーム終了になります。 53 gameOver(window3,syujinko) 54 end 55 56 time2 = time.to_s.tr(' 0-9a-zA-Z',' 0-9a-zA-Z') 57 @score2 = @score.to_s.tr(' 0-9a-zA-Z',' 0-9a-zA-Z') 58 clickCount2 = clickCount.to_s.tr(' 0-9a-zA-Z',' 0-9a-zA-Z') 59 hyouji = "あなたの得点 #{@score2}点 残りは#{time2}秒 (クリック#{clickCount2} 回)" 60 window3.writeChar(hyouji) 61 window3.refresh 62 $score = @score 63end 64end 65 66end 67 68
お忙しいとは思いますが、回答お願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/29 12:12
2016/08/29 13:17