- Timestamp:
- 09/30/08 19:16:43 (2 months ago)
- Location:
- lang/ruby/nario
- Files:
-
- 7 modified
-
nario.rb (modified) (1 diff)
-
nario/factor.rb (modified) (2 diffs)
-
nario/gamestart.rb (modified) (1 diff)
-
nario/life.rb (modified) (2 diffs)
-
nario/life/enemy.rb (modified) (2 diffs)
-
nario/life/nario.rb (modified) (1 diff)
-
nario/scene/flowworld.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/ruby/nario/nario.rb
r20291 r20294 18 18 $GC_BURDEN_MODE = false 19 19 $TEST_MODE = false 20 $DEBUG_EVENT_WATCH_MODE = false 21 $DEBUG_PLAYER_WATCH_MODE = false 20 22 opt = OptionParser.new 21 23 opt.version = "1.0.0" 22 24 opt.on('-g', '--gc', "To stop the world. and gc stop grafical mode :)") {|v| $GC_BURDEN_MODE = true} 23 25 opt.on('-t', '--test', "test mode") {|v| $TEST_MODE = true} 26 opt.on('--debug-event', "debug: event watch mode") {|v| $DEBUG_EVENT_WATCH_MODE = true} 27 opt.on('--debug-player', "debug: player watch mode") {|v| $DEBUG_PLAYER_WATCH_MODE = true} 24 28 opt.parse!(ARGV) 25 29 -
lang/ruby/nario/nario/factor.rb
r20291 r20294 24 24 event = nil 25 25 return event unless collision_maybe? collide 26 return event_call(event, collide) if event = is_collision(foot_range, collide.head_range)27 return event_call(event, collide) if event = is_collision(head_range, collide.foot_range)28 return event_call(event, collide) if event = is_collision(leftside_range, collide.rightside_range)29 return event_call(event, collide) if event = is_collision(rightside_range, collide.leftside_range)26 return event_call(event, collide) if event = have_event_range(foot_range, collide.head_range) 27 return event_call(event, collide) if event = have_event_range(head_range, collide.foot_range) 28 return event_call(event, collide) if event = have_event_range(leftside_range, collide.rightside_range) 29 return event_call(event, collide) if event = have_event_range(rightside_range, collide.leftside_range) 30 30 end 31 31 … … 95 95 end 96 96 97 def event_call(event, collide) 98 is_or_dead = (@is_dead or collide.is_dead) 99 # debug 100 puts "event! #{self}.#{event[0]} <--> #{collide}.#{event[1]}" if $DEBUG 101 collide.send(event[0], self) if collide.methods.map{|a| a.to_s}.include? event[0].to_s and !is_or_dead 102 send(event[1], collide) if methods.map{|b| b.to_s}.include? event[1].to_s and !is_or_dead 97 def event_call(event, other) 98 is_or_dead = (@is_dead or other.is_dead) 99 puts "event! #{self.class}\##{event[:self_event]} <--> #{other.class}\##{event[:other_event]}" if $DEBUG_EVENT_WATCH_MODE 100 other.send(event[:self_event], self) if other.methods.map{|a| a.to_s}.include? event[:self_event].to_s and !is_or_dead 101 send(event[:other_event], other) if methods.map{|b| b.to_s}.include? event[:other_event].to_s and !is_or_dead 103 102 end 104 103 105 def is_collision(self_r, collide_r)104 def have_event_range(self_range, other_range) 106 105 e = false 107 return e unless self_r and collide_r108 self_r [:x_range].each{|i| break e = true if collide_r[:x_range].include? i}106 return e unless self_range and other_range 107 self_range[:x_range].each{|i| break e = true if other_range[:x_range].include? i} 109 108 return e unless e 110 109 e = false 111 self_r [:y_range].each{|i| break e = true if collide_r[:y_range].include? i}112 [self_r[:event], collide_r[:event]]if e110 self_range[:y_range].each{|i| break e = true if other_range[:y_range].include? i} 111 {:self_event => self_range[:event], :other_event => other_range[:event]} if e 113 112 end 114 113 -
lang/ruby/nario/nario/gamestart.rb
r20291 r20294 44 44 end 45 45 46 @stop = false 46 47 def stop?(input, screen) 47 48 if input.start -
lang/ruby/nario/nario/life.rb
r20291 r20294 91 91 92 92 #collision event 93 def collide_floor_head(f) ; stand_up(f);end94 def collide_floor_left(f) ;@x = (f.x - @w); @dash_speed = 0; end95 def collide_floor_right(f) ;@x = f.x + f.w; @dash_speed = 0; end93 def collide_floor_head(f) stand_up(f) end 94 def collide_floor_left(f) @x = (f.x - @w); @dash_speed = 0; end 95 def collide_floor_right(f) @x = f.x + f.w; @dash_speed = 0; end 96 96 alias collide_weakblock_head collide_floor_head 97 97 alias collide_weakblock_left collide_floor_left … … 109 109 110 110 private 111 # frame % ? == 0 ;get ? parameter111 # frame % ? == 0: get ? parameter 112 112 def get_dash_frame(dash_speed) 113 113 step_rate = 4 -
lang/ruby/nario/nario/life/enemy.rb
r20291 r20294 2 2 class Enemy < Life 3 3 #collision events 4 def collide_strongblock_left(s); set_direction(-1); end 5 def collide_strongblock_right(s); set_direction(1); end 6 def collide_floor_head(f); stand_up(f); end 4 def collide_strongblock_left(s) set_direction(-1) end 5 def collide_strongblock_right(s) set_direction(1) end 6 def collide_floor_head(f) stand_up(f) end 7 8 def collide_carapace_left(c) 9 return clash(c) if c.violence? 10 collide_strongblock_left(c) 11 end 12 13 def collide_carapace_right(c) 14 return clash(c) if c.violence? 15 collide_strongblock_right(c) 16 end 17 7 18 alias collide_weakblock_head collide_floor_head 8 19 alias collide_itembox_head collide_weakblock_head … … 13 24 alias collide_pipe_left collide_strongblock_left 14 25 alias collide_pipe_right collide_strongblock_right 15 def collide_carapace_left(c); return clash(c) if c.violence?; collide_strongblock_left(c); end;16 def collide_carapace_right(c); return clash(c) if c.violence?; collide_strongblock_right(c); end;17 26 18 27 def clash(carapace) -
lang/ruby/nario/nario/life/nario.rb
r20291 r20294 29 29 30 30 # collision event 31 def collide_can_right(k) ; @movie_event = :movie_die; end;31 def collide_can_right(k) @movie_event = :movie_die end 32 32 alias collide_can_left collide_can_right 33 33 alias collide_can_foot collide_can_right 34 def collide_can_head(k) ; force_jump;end34 def collide_can_head(k) force_jump end 35 35 alias collide_dustbin_right collide_can_right 36 36 alias collide_dustbin_left collide_can_left 37 37 alias collide_dustbin_foot collide_can_foot 38 38 alias collide_dustbin_head collide_can_head 39 def collide_carapace_right(c) ; @movie_event = :movie_die if c.violence?; c.x-=10; end;40 def collide_carapace_left(c) ; @movie_event = :movie_die if c.violence?; c.x+=10; end;41 def collide_weakblock_foot(w) ; force_fall(w);end39 def collide_carapace_right(c) @movie_event = :movie_die if c.violence?; c.x-=10; end 40 def collide_carapace_left(c) @movie_event = :movie_die if c.violence?; c.x+=10; end 41 def collide_weakblock_foot(w) force_fall(w) end 42 42 alias collide_itembox_foot collide_weakblock_foot 43 def collide_goal_right(c) ; @is_goal = true;end43 def collide_goal_right(c) @is_goal = true end 44 44 alias collide_goal_left collide_goal_right 45 45 alias collide_goal_head collide_goal_right 46 46 alias collide_goal_foot collide_goal_right 47 def collide_pole_left(p) ;@movie_event = :movie_goal unless @movie_event; @x = p.x-40; end47 def collide_pole_left(p) @movie_event = :movie_goal unless @movie_event; @x = p.x-40; end 48 48 49 49 # collision range 50 def foot_range; {:x_range => (@x+@w/4)..(@x+@w-@w/4), :y_range => (@y+@h-@h/6)..(@y+@h), :event => :collide_nario_foot}; end 50 def foot_range 51 {:x_range => (@x+@w/6)..(@x+@w-@w/6), :y_range => (@y+@h-@h/6)..(@y+@h), :event => :collide_nario_foot} 52 end 51 53 52 54 # relation controller -
lang/ruby/nario/nario/scene/flowworld.rb
r17193 r20294 17 17 def render(screen) 18 18 @renders.each{|re| re.each{|o| o.put_screen(screen) if o.x < SCREEN_WIDTH } } 19 puts "player: x -> #{@player.x} y -> #{@player.y}" if $DEBUG_PLAYER_WATCH_MODE 19 20 @player.put_screen(screen) 20 21 end
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)