fork download
  1. require "dxruby"
  2. require 'dxrubyex'
  3. require "Kconv"
  4. require "ostruct"
  5. require "pp"
  6. #
  7. $__DEBUG_MODE__ = :true
  8. dir = "./"
  9. dir = "__test/" if $__DEBUG_MODE__ != :true
  10. # --------- head Lib --------
  11. require dir + "uhaaokww"
  12. require dir + "Rururu"
  13. require dir + "Fileee"
  14. require dir + "Testtt"
  15. # ------ head Src ------
  16. require dir + "consttt"
  17. require dir + "raaa_h"
  18.  
  19. # ----------- lib --------
  20.  
  21. #------------ main -----------
  22.  
  23. module Node_template
  24. # node template----------------------------
  25. def node_task_template hs
  26. # sym = hs[:sym]yu.uniq_sym
  27. sym = hs[:sym]
  28. Testtask( sym ) do |o|
  29. o.d = hs[:d] || Image.new(111,11,[100,100,200])
  30. o.x = hs[:x] || 0
  31. o.y = hs[:y] || 0
  32. o.Testcode do
  33. yield o
  34. end # code //
  35. end # task //
  36. end # def
  37.  
  38. # ----------- game node main -------------
  39. # ----------- game node module -------------
  40. module Collision_m
  41. attr_accessor :collision
  42. def hit o
  43. p :hit
  44. end
  45. def init
  46. self.collision ||= CollisionBox.new(self, 0, 0, self.d.width, self.d.height )
  47. end
  48. end
  49. # ----------- game node function -------------
  50. def node_gameobj_template hs
  51. sym = hs[:sym]
  52. Testtask( sym ) do |o|
  53. o.d = hs[:d] || Image.new(111,11,[100,100,200])
  54. o.x = hs[:x] || 0
  55. o.y = hs[:y] || 0
  56. o.extend Collision_m
  57. o.init
  58. o.Testcode do
  59. yield o
  60. end # code //
  61. end # task //
  62. end # def
  63.  
  64. def node_field_template hs
  65. sym = hs[:sym]
  66. delay = hs[:delay] || 1
  67. Testtask( sym ) do |o|
  68. n = 0
  69. o.Testcode do
  70. if n > delay
  71. # p 8
  72. yield o
  73. else
  74. n += 1
  75. end
  76. end # code //
  77. end # task //
  78. end # def
  79. end
  80. # -------------------- module include ---------------------
  81. class TestObject
  82. include Node_template
  83. end
  84. # ----------------------------------------------------------//
  85.  
  86. # --------------------- game logic main ----------------------
  87. # --------------------- game logic player ----------------------
  88. class User
  89. def initialize o
  90. o.node_gameobj_template({ sym: :user , x: 100 , y: 100 ,
  91. d: Image.new(50,50,[100,100,200])
  92. }) do |o|
  93. move o
  94. Window.drawEx o.x , o.y , o.d
  95. end
  96. end
  97. def hit o
  98. p :h
  99. end
  100. def move yu , hs = Hash.new
  101.  
  102. speed = hs[:speed] || 2
  103. angle = 0
  104. sstr = hs[:key] || [K_DOWN , K_LEFT , K_UP , K_RIGHT]
  105. sstr.each_with_index do |m,i|if Input.keyDown?(m);(angle=90*(i+1));( Input.keyDown?(sstr[i-1])?(break(angle-=45)):nil);end;end
  106. yu.x , yu.y = Libaa.work yu.x , yu.y , speed , angle unless angle == 0
  107. end
  108. end
  109.  
  110. # --------------------- game logic Enemy ----------------------
  111. class Teki
  112. def initialize o
  113. o.node_gameobj_template({ sym: :teki , x: 200 , y: 100 ,
  114. d: Image.new(50,50,[100,100,200])
  115. }) do |o|
  116. Window.drawEx o.x , o.y , o.d
  117. end
  118. end
  119. end
  120.  
  121. # --------------------- game logic Field ----------------------
  122. class Field
  123. def initialize o
  124. o.node_field_template({ sym: :field }) do |o|
  125. a=o.up.task.reject do | k , o |
  126. o.sym == :field
  127. end
  128. .map do | k , o |
  129. o.collision.set(o.x, o.y)
  130. end
  131. Collision.check(a, a)
  132. end
  133. end
  134. end
  135.  
  136.  
  137. # ------------------------ main ------------------------------
  138. TestObject.new.TestMain do | o |
  139. o.Testcode do
  140. Window.drawFont( o.x, o.y, "_test", Testmm.font)
  141. o.sub_task do | o |
  142. User.new o
  143. Teki.new o
  144. Field.new o
  145. o.Testcode do
  146.  
  147. end
  148. end
  149. end
  150. end
Runtime error #stdin #stdout 0.05s 5900KB
stdin
Standard input is empty
stdout
Standard output is empty