```によるコードの記述がうまくできていないようです。
ブラウザ上から編集しているのであれば </> ボタンを押してからコードを貼り付けてください。
画面に出る あいうえお をクリックすれば新しい画面が出るようにしたいのですが、クリックするとあいうえおなどと書いている画面が白い画面に変わってしまいます。白い画面をあいうえおと書いている画面と別に表示する方法を教えてください。
ruby
1mondaigamen.rb 2require "sdl" 3require "./color.rb" 4class Gmen ##このクラスで、問題画面を作成させる 5 WINDOW_YOKO = 750 6 WINDOW_TATE = 550 7 BITPIKUSERU = 0 8 KUIZUX = 550 9 KUIZUY = 200 10 11def initialize 12 SDL.init(SDL::INIT_EVERYTHING) 13 @screen2 = SDL.set_video_mode(WINDOW_YOKO,WINDOW_TATE,BITPIKUSERU,SDL::SWSURFACE) 14 SDL::TTF.init 15 @font = SDL::Kanji.open("font/jiskan24.bdf",24) 16 @font.set_coding_system(SDL::Kanji::SJIS) 17end 18 19def drawBack 20 @screen2.fill_rect(0,0,WINDOW_YOKO,WINDOW_TATE,Color::WHITE) 21 22end 23 24def refresh 25 @screen2.update_rect(0,0,0,0) 26end 27 28def mondaihyouji 29 @font.put(@screen,"$mondai",200,300,255,255,255) 30 @font.put(@screen,"$kotae", 570,300,255,255,255) 31end 32 33end
ruby
1kuizu.rb 2#!ruby -Ks 3require "sdl" 4require "./kuizugamen.rb" 5require "./mondaisyu.rb" 6$mondai = @mondaigime2 7$kotae = @sentaku2 8$kaisetu = @kaisetu2 9 10 11def gamen 12kuizugamen = Gmen.new 13kuizugamen.drawBack 14kuizugamen.refresh 15end 16 17def kimeru #ここで問題の番号を選択 18n = rand 20 19mondai = [] 20kotae = [] 21kaisetu = [] 22@mondaigime2 = mondai[n] 23@kotae = kotae[n] 24end
ruby
1main.rb 2#!ruby -Ks 3require "./window.rb" 4require "./kuizu.rb" 5 6window = Window.new 7window.drawBack 8window.gamestart 9window.refresh 10 11 12while true do 13 while event = SDL::Event2.poll do 14 case event 15 when SDL::Event2::Quit 16 exit 17 when SDL::Event2::MouseButtonDown 18 x = event.x 19 y = event.y 20 if window.clicked?(x,y) 21 gamen ##ここで、画面を新しくしたい 22 end 23 end 24 end 25 26end 27
コードが長くなってしまい申し訳ございません。
window.rbは省略しています。必要であればコメント下さい。
あなたの回答
tips
プレビュー