Changeset 9917
- Timestamp:
- 04/19/08 23:24:09 (5 years ago)
- Location:
- lang/ruby/mariobros
- Files:
-
- 5 modified
-
main.rb (modified) (1 diff)
-
mario/gamestart.rb (modified) (4 diffs)
-
mario/scene.rb (modified) (4 diffs)
-
mario/scene/flowworld.rb (modified) (1 diff)
-
mario/scene/title.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/ruby/mariobros/main.rb
r9829 r9917 14 14 15 15 16 $test = true16 $test = false 17 17 require 'gamestart' unless $test 18 18 require 'test' if $test 19 20 #scratch21 #title.screen_build(@screen) {22 # background23 # floor24 #} -
lang/ruby/mariobros/mario/gamestart.rb
r9829 r9917 5 5 # 6 6 7 require 'sdl' 8 require 'lib/fpstimer' 9 require 'lib/input' 10 require 'mario/scene' 11 require 'mario/material' 12 require 'mario/life' 7 13 8 14 class Input … … 32 38 33 39 map[:map_1].screen_build { 34 background Material::BackGround.new_fill_image(0, 0, 6000, 800, SDL::Surface.load("mario/image/out_sky.png")) 35 floor Material::BackGround.new_fill_image(0, 600, 6000, 300, SDL::Surface.load("mario/image/floor_block.png")) 40 background Material::BackGround.new_color(0, 0, 10000, 800, [0x00, 0x99, 0xff]) 41 floor Material::Floor.new_fill_image(0, 600, 200, 300, SDL::Surface.load("mario/image/floor_block.png")) 42 floor Material::Floor.new_fill_image(350, 600, 500, 300, SDL::Surface.load("mario/image/floor_block.png")) 43 floor Material::Floor.new_fill_image(900, 600, 500, 300, SDL::Surface.load("mario/image/floor_block.png")) 44 floor Material::Floor.new_fill_image(1500, 600, 200, 300, SDL::Surface.load("mario/image/floor_block.png")) 45 floor Material::Floor.new_fill_image(1800, 600, 400, 300, SDL::Surface.load("mario/image/floor_block.png")) 46 floor Material::Floor.new_fill_image(2600, 600, 400, 300, SDL::Surface.load("mario/image/floor_block.png")) 47 floor Material::Floor.new_fill_image(3200, 600, 400, 300, SDL::Surface.load("mario/image/floor_block.png")) 48 floor Material::Floor.new_fill_image(3800, 600, 400, 300, SDL::Surface.load("mario/image/floor_block.png")) 49 floor Material::Floor.new_fill_image(4400, 600, 400, 300, SDL::Surface.load("mario/image/floor_block.png")) 50 floor Material::Floor.new_fill_image(5000, 600, 400, 300, SDL::Surface.load("mario/image/floor_block.png")) 51 enemy Life::Kuribo.new(500, 200) 52 player Life::Mario.new(40, 200) 36 53 } 37 54 … … 46 63 if defined?(SDL::RELEASE_MODE) 47 64 SDL::Mouse.hide 48 @screen = SDL.set_video_mode(760, 670, 16, SDL::HWSURFACE|SDL::DOUBLEBUF|SDL::FULLSCREEN)65 screen = SDL.set_video_mode(Scene::SCREEN_WIDTH, Scene::SCREEN_HIGHT, 16, SDL::HWSURFACE|SDL::DOUBLEBUF|SDL::FULLSCREEN) 49 66 else 50 @screen = SDL.set_video_mode(760, 670, 16, SDL::SWSURFACE|SDL::DOUBLEBUF)67 screen = SDL.set_video_mode(Scene::SCREEN_WIDTH, Scene::SCREEN_HIGHT, 16, SDL::SWSURFACE|SDL::DOUBLEBUF) 51 68 end 52 69 53 @input = Input.new 54 @font = SDL::TTF.open("image/boxfont2.ttf", 14) 55 @bgm = SDL::Mixer::Music.load("sound/famipop3.it") 70 input = Input.new 56 71 57 map = map_init( @screen)72 map = map_init(screen) 58 73 59 74 scene = map[:title] … … 61 76 timer.reset 62 77 loop do 63 @input.poll64 break if @input[:exit]78 input.poll 79 break if input[:exit] 65 80 66 s_next = scene.act(@input) 67 scene = map[s_next] if s_next 68 scene.render(@screen) 69 timer.wait_frame{ @screen.flip } 81 s_next = scene.act(input) 82 scene.render(screen) 83 scene = map[s_next].rebuild if s_next 84 timer.wait_frame{ 85 if defined?(SDL::RELEASE_MODE) 86 screen.flip 87 else 88 screen.update_rect(0, 0, Scene::SCREEN_WIDTH, Scene::SCREEN_HIGHT) 89 end 90 } 70 91 end 71 92 end -
lang/ruby/mariobros/mario/scene.rb
r9915 r9917 16 16 17 17 def initialize(&block) 18 init 19 instance_eval(&block) 20 end 21 22 def init 23 @backgrounds = [] 18 24 @actions = [] 19 25 @blocks = [] … … 22 28 @player = nil 23 29 @renders = [@actions, @blocks, @enemys, @flows] 24 instance_eval(&block) 30 end 31 32 def rebuild 33 init 34 instance_eval(&@build_code) 35 self 25 36 end 26 37 … … 34 45 35 46 def screen_build(&block) 47 @build_code = block 36 48 instance_eval(&block) 37 49 self … … 39 51 40 52 def background(bg) 53 @backgrounds << bg 41 54 @flows << bg 42 55 end -
lang/ruby/mariobros/mario/scene/flowworld.rb
r9915 r9917 12 12 flow_right 13 13 garbage_sweep if(@player.frame % 100).zero? 14 return :title if @player.y > SCREEN_HIGHT*2 15 nil 14 16 end 15 17 -
lang/ruby/mariobros/mario/scene/title.rb
r9829 r9917 10 10 def render(screen) 11 11 @backgrounds.each{|bg| bg.put_screen(screen) } 12 @floors.each{|fl| fl.put_screen(screen) }13 12 end 14 13 end
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)