Guest User

Untitled

a guest
Feb 20th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.93 KB | None | 0 0
  1. #
  2. # classes.rb
  3. #
  4. #
  5. # Created by Stuart Brand on 30/08/2006.
  6. # Copyright (c) 2001 Server-Solution.co.uk. All rights reserved.
  7. #
  8.  
  9. class Load
  10. def self.image(name, colorkey=nil)
  11. image = Rubygame::Image.load(name)
  12. if colorkey != nil
  13. if colorkey == -1
  14. colorkey = image.get_at([0,0])
  15. end
  16. image.set_colorkey(colorkey)
  17. end
  18. return image
  19. end
  20.  
  21. def self.sprite(name, colorkey=nil)
  22. image = Rubygame::Image.load(name)
  23. if colorkey != nil
  24. if colorkey == -1
  25. colorkey = image.get_at([0,0])
  26. end
  27. image.set_colorkey(colorkey)
  28. end
  29.  
  30. @sprite_rect = Rubygame::Rect.new(0,0,*image.size)
  31.  
  32. return image, @sprite_rect
  33. end
  34.  
  35. def self.map(file)
  36.  
  37. @@level.clear
  38. File.open("maps/#{file}") do |aFile|
  39.  
  40. aFile.each_line do |line|
  41. line.each(',') { |s|
  42.  
  43. if s == "\n" then
  44. next
  45. else
  46. @@level.push s.sub(/,/,'').sub(/ * /,'')
  47. end}
  48. end
  49. end
  50.  
  51. Load.level
  52.  
  53. puts "Map loaded"
  54. end
  55.  
  56. def self.level
  57.  
  58. x = y = 0
  59. num = 0
  60.  
  61. @@level.each do |map_tile|
  62.  
  63. if "#{map_tile}" == "A0"
  64. tile = A0
  65. elsif "#{map_tile}" == "A1"
  66. tile = A1
  67. elsif "#{map_tile}" == "A2"
  68. tile = A2
  69. elsif "#{map_tile}" == "A3"
  70. tile = A3
  71. elsif "#{map_tile}" == "A4"
  72. tile = A4
  73. elsif "#{map_tile}" == "A5"
  74. tile = A5
  75. elsif "#{map_tile}" == "A6"
  76. tile = A6
  77. elsif "#{map_tile}" == "A7"
  78. tile = A7
  79. elsif "#{map_tile}" == "A8"
  80. tile = A8
  81. elsif "#{map_tile}" == "A9"
  82. tile = A9
  83. elsif "#{map_tile}" == "A10"
  84. tile = A10
  85. elsif "#{map_tile}" == "A11"
  86. tile = A11
  87. elsif "#{map_tile}" == ""
  88. tile = BLANK
  89. end
  90.  
  91. num += 1
  92. tile.blit(@@map, [x, y])
  93. x += 40
  94. if x > 7960
  95. x = 0
  96. y += 40
  97. end
  98.  
  99. Loaded.sofar("10%") if num == 32000/10
  100. Loaded.sofar("20%") if num == 32000/10*2
  101. Loaded.sofar("30%") if num == 32000/10*3
  102. Loaded.sofar("40%") if num == 32000/10*4
  103. Loaded.sofar("50%") if num == 32000/10*5
  104. Loaded.sofar("60%") if num == 32000/10*6
  105. Loaded.sofar("70%") if num == 32000/10*7
  106. Loaded.sofar("80%") if num == 32000/10*8
  107. Loaded.sofar("90%") if num == 32000/10*9
  108. Loaded.sofar("100%") if num == 32000
  109.  
  110. end
  111.  
  112. end
  113.  
  114. end
  115.  
  116. class Mouse
  117.  
  118. include Rubygame::Sprites::Sprite
  119.  
  120. def initialize
  121. @rect = Rubygame::Rect.new(0,0,1,1)
  122. @mpos = [0,0]
  123. end
  124.  
  125. def click(event)
  126.  
  127. return @rect.collide_rect?(event)
  128. end
  129.  
  130. def update
  131. @rect.midtop = @mpos
  132. end
  133.  
  134. def tell(ev)
  135. case ev
  136. when Rubygame::MouseMotionEvent
  137. @mpos = ev.pos
  138. end
  139. end
  140.  
  141. def pos
  142. return @mpos
  143. end
  144.  
  145. end
  146.  
  147. class Save
  148.  
  149. def self.map(file, file_name)
  150.  
  151. File.open("maps/#{file_name}", 'w+') do |level|
  152.  
  153. file.each { |file|
  154. if file == A0
  155. file = "A0"
  156. elsif file == A1
  157. file = "A1"
  158. elsif file == A2
  159. file = "A2"
  160. elsif file == A3
  161. file = "A3"
  162. elsif file == A4
  163. file = "A4"
  164. elsif file == A5
  165. file = "A5"
  166. elsif file == A6
  167. file = "A6"
  168. elsif file == A7
  169. file = "A7"
  170. elsif file == A8
  171. file = "A8"
  172. elsif file == A9
  173. file = "A9"
  174. elsif file == A10
  175. file = "A10"
  176. elsif file == A11
  177. file = "A11"
  178. elsif file == A12
  179. file = "A12"
  180. end
  181.  
  182. level << "#{file}, "
  183. }
  184.  
  185. end
  186.  
  187. puts "Map saved"
  188.  
  189. end
  190.  
  191. end
  192.  
  193. class Loaded
  194.  
  195. def self.sofar(name)
  196. clear = Rubygame::Surface.new([100,20], Rubygame::HWSURFACE)
  197. progress = @@font16.render("#{name} complete",false,[255,255,255])
  198. clear.blit(@@screen, [300,200])
  199. progress.blit(@@screen, [300,200])
  200. @@screen.flip()
  201. end
  202.  
  203. end
  204.  
  205. class Tile
  206.  
  207. def self.next
  208.  
  209. if @@current_tile == A0
  210. @@current_tile = A1
  211. elsif @@current_tile == A1
  212. @@current_tile = A2
  213. elsif @@current_tile == A2
  214. @@current_tile = A3
  215. elsif @@current_tile == A3
  216. @@current_tile = A4
  217. elsif @@current_tile == A4
  218. @@current_tile = A5
  219. elsif @@current_tile == A5
  220. @@current_tile = A6
  221. elsif @@current_tile == A6
  222. @@current_tile = A7
  223. elsif @@current_tile == A7
  224. @@current_tile = A8
  225. elsif @@current_tile == A8
  226. @@current_tile = A9
  227. elsif @@current_tile == A9
  228. @@current_tile = A10
  229. elsif @@current_tile == A10
  230. @@current_tile = A11
  231. elsif @@current_tile == A11
  232. @@current_tile = A0
  233. end
  234.  
  235. end
  236.  
  237. def self.previous
  238.  
  239. if @@current_tile == A0
  240. @@current_tile = A11
  241. elsif @@current_tile == A1
  242. @@current_tile = A0
  243. elsif @@current_tile == A2
  244. @@current_tile = A1
  245. elsif @@current_tile == A3
  246. @@current_tile = A2
  247. elsif @@current_tile == A4
  248. @@current_tile = A3
  249. elsif @@current_tile == A5
  250. @@current_tile = A4
  251. elsif @@current_tile == A6
  252. @@current_tile = A5
  253. elsif @@current_tile == A7
  254. @@current_tile = A6
  255. elsif @@current_tile == A8
  256. @@current_tile = A7
  257. elsif @@current_tile == A9
  258. @@current_tile = A8
  259. elsif @@current_tile == A10
  260. @@current_tile = A9
  261. elsif @@current_tile == A11
  262. @@current_tile = A10
  263. end
  264.  
  265. end
  266.  
  267. end
Add Comment
Please, Sign In to add comment