Guest User

Untitled

a guest
Apr 24th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. require 'rubygems'
  2. require 'gosu'
  3. include Gosu
  4.  
  5. class MouseInfo < Window
  6. CENTER = 640/2
  7. BOTTOM = 480
  8. def initialize
  9. super(640, 480, false)
  10. @clicked = ""
  11. @font = Gosu::Font.new(self, Gosu::default_font_name, 20)
  12. @missiles = []
  13. end
  14.  
  15. def update
  16. @x, @y = mouse_x, mouse_y
  17. @missiles.reject! { |t| t.update == false }
  18. end
  19.  
  20. def draw
  21. @font.draw_rel("X: #{mouse_x}", CENTER, 100, 1, 0.5, 0.5)
  22. @font.draw_rel("Y: #{mouse_y}", CENTER, 130, 1, 0.5, 0.5)
  23. @font.draw_rel("Clicked: #{@clicked}", CENTER, 150, 1, 0.5, 0.5)
  24. @missiles.each { |o| o.draw }
  25. end
  26.  
  27. def button_down(id)
  28. if id == Button::KbEscape then close end
  29. if id == Button::MsLeft then @missiles << Missile.new(self, @x, @y, Gosu::angle(CENTER, BOTTOM, @x, @y)) end
  30. end
  31.  
  32. end
  33.  
  34. class Missile
  35. attr_accessor :end_x, :vx, :end_y, :vy, :window, :x, :y
  36. def initialize(window, end_x, end_y, angle)
  37. @vx, @vy = Gosu::offset_x(angle, 5).to_i, Gosu::offset_y(angle, 5).to_i
  38. @window, @end_x, @end_y = window, end_x, end_y
  39. @x, @y = 320, 480
  40. puts "x = #{@end_x} and y=#{@end_y} angle = #{angle}"
  41. end
  42.  
  43. def update
  44. @x = @x + @vx
  45. @y = @y + @vy
  46. if drawable?
  47. true
  48. else
  49. false
  50. end
  51. end
  52.  
  53. def draw
  54. @window.draw_line(320, 480,0xffffffff, @x, @y, 0xffffffff)
  55. end
  56.  
  57. def drawable?
  58. # this is just going to return true fo now....
  59. # this will check to see if the line has hit the end of it's road eventually
  60. true
  61. end
  62. end
  63. MouseInfo.new.show
Add Comment
Please, Sign In to add comment