stylet 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (194) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/.travis.yml +4 -0
  4. data/.yardopts +2 -0
  5. data/Gemfile +16 -0
  6. data/README.org +19 -0
  7. data/Rakefile +17 -0
  8. data/bin/setup +63 -0
  9. data/bin/stylet +8 -0
  10. data/examples/.ruby-version +1 -0
  11. data/examples/00100_lib_hello_world.rb +8 -0
  12. data/examples/00110_lib_sge_check.rb +6 -0
  13. data/examples/00120_lib_/343/202/254/343/203/263/343/203/236/345/200/244/343/201/256/345/244/211/346/233/264.rb +22 -0
  14. data/examples/00130_lib_window_title.rb +8 -0
  15. data/examples/00140_lib_callbacks.rb +8 -0
  16. data/examples/00150_lib_vector.rb +5 -0
  17. data/examples/00160_lib_run.rb +4 -0
  18. data/examples/00170_lib_frame.rb +4 -0
  19. data/examples/00180_lib_config/347/242/272/350/252/215.rb +7 -0
  20. data/examples/00190_lib_/343/201/231/343/201/271/343/201/246/345/220/214/343/201/230/343/202/252/343/203/226/343/202/270/343/202/247/343/202/257/343/203/210.rb +10 -0
  21. data/examples/00200_lib_/343/203/254/343/202/267/343/203/274/343/203/220/343/203/274/343/202/222/347/234/201/347/225/245/343/201/231/343/202/213/346/226/271/346/263/225/343/201/256/343/203/206/343/202/271/343/203/210.rb +28 -0
  22. data/examples/00210_lib_delegators.rb +7 -0
  23. data/examples/00220_lib_template_method.rb +13 -0
  24. data/examples/00230_lib_/350/203/214/346/231/257/347/224/273/345/203/217/350/241/250/347/244/272.rb +9 -0
  25. data/examples/00240_lib_/350/203/214/346/231/257/347/224/273/345/203/217/343/202/222/346/232/227/343/201/2171_/351/273/222/343/201/256/344/270/212/343/201/253/350/203/214/346/231/257.rb +18 -0
  26. data/examples/00250_lib_/350/203/214/346/231/257/347/224/273/345/203/217/343/202/222/346/232/227/343/201/2172_/350/203/214/346/231/257/343/201/256/344/270/212/343/201/253/351/273/222.rb +17 -0
  27. data/examples/00260_lib_/350/203/214/346/231/257/347/224/273/345/203/217/343/202/222/346/232/227/343/201/2173_/350/203/214/346/231/257/343/201/256/344/270/212/343/201/253/351/273/222_/347/224/273/351/235/242/343/202/265/343/202/244/343/202/272/343/203/225/343/202/243/343/203/203/343/203/210_/351/207/215/343/201/204.rb +27 -0
  28. data/examples/00270_lib_/350/203/214/346/231/257/347/224/273/345/203/217/343/202/222/346/232/227/343/201/2173_/350/203/214/346/231/257/343/201/256/344/270/212/343/201/253/351/273/222_/347/224/273/351/235/242/343/202/265/343/202/244/343/202/272/343/203/225/343/202/243/343/203/203/343/203/210_/351/253/230/351/200/237/345/214/226.rb +44 -0
  29. data/examples/00280_lib_/347/211/271/345/256/232/343/201/256/343/202/250/343/203/252/343/202/242/343/201/240/343/201/221/345/276/220/343/200/205/343/201/253/346/266/210/343/201/231.rb +26 -0
  30. data/examples/00290_lib_/350/203/214/346/231/257/350/211/262/345/244/211/346/233/264.rb +5 -0
  31. data/examples/00300_lib_/343/202/255/343/203/243/343/203/251/343/202/257/343/202/277/347/224/273/345/203/217/343/202/222/350/241/250/347/244/272/343/201/231/343/202/213/344/276/213.rb +17 -0
  32. data/examples/00310_lib_/343/202/255/343/203/243/343/203/251/343/202/257/343/202/277/347/224/273/345/203/217/343/201/256/343/202/242/343/203/213/343/203/241/343/203/274/343/202/267/343/203/247/343/203/263.rb +18 -0
  33. data/examples/00320_lib_/343/202/255/343/203/243/343/203/251/343/202/257/343/202/277/346/213/241/345/244/247/347/270/256/345/260/217/345/233/236/350/273/242.rb +21 -0
  34. data/examples/00330_joystick.rb +5 -0
  35. data/examples/00340_joystick_PS3/343/202/242/343/203/212/343/203/255/343/202/260/343/203/254/343/203/220/343/203/274/343/201/256/345/213/225/343/201/215/343/201/214/345/206/205/351/203/250/343/201/247/343/201/257/345/233/233/350/247/222.rb +30 -0
  36. data/examples/00350_joystick_PS3/343/202/242/343/203/212/343/203/255/343/202/260/343/203/254/343/203/220/343/203/274/343/201/256/350/252/277/346/225/264/346/270/210/343/201/277/343/203/231/343/202/257/343/203/210/343/203/253.rb +12 -0
  37. data/examples/00360_lib_mouse.rb +5 -0
  38. data/examples/00370_lib_input.rb +29 -0
  39. data/examples/00380_lib_vputs_align.rb +8 -0
  40. data/examples/00390_/343/203/225/343/202/251/343/203/263/343/203/210/344/270/200/350/246/247.rb +15 -0
  41. data/examples/00400_lib_draw_circle.rb +8 -0
  42. data/examples/00410_SDL/343/201/256draw_rect/343/201/2571/343/203/224/343/202/257/343/202/273/343/203/253/344/275/231/345/210/206/343/201/253/346/217/217/347/224/273/343/201/225/343/202/214/343/202/213/343/201/256/343/201/247/346/263/250/346/204/217.rb +7 -0
  43. data/examples/00420_circle_on_circle.rb +10 -0
  44. data/examples/00430_rotate.rb +16 -0
  45. data/examples/00440_draw_triangle.rb +7 -0
  46. data/examples/00450_parabora_triangle.rb +37 -0
  47. data/examples/00460_ice_hockey.rb +88 -0
  48. data/examples/00470_collision_block_vs_block.rb +120 -0
  49. data/examples/00480_simple_circle_controll.rb +37 -0
  50. data/examples/00490_/347/255/211/351/200/237/347/247/273/345/213/225_uniform_velocity_rain.rb +51 -0
  51. data/examples/00500_/345/212/240/351/200/237/346/224/276/347/211/251/347/267/232_parabora_volcano.rb +94 -0
  52. data/examples/00510_3d.rb +53 -0
  53. data/examples/00520_/343/203/210/343/203/253/343/203/215/343/201/256/343/203/241/343/203/213/343/203/245/343/203/274/351/242/250/343/201/256/345/213/225/343/201/215.rb +77 -0
  54. data/examples/00530_curve_2/346/254/241/343/203/231/343/202/270/343/202/247/346/233/262/347/267/232/343/201/250/347/233/264/347/267/232/343/201/250/343/201/256/344/272/244/347/202/271.rb +43 -0
  55. data/examples/00540_curve_3/346/254/241/343/203/231/343/202/270/343/202/247/346/233/262/347/267/232.rb +40 -0
  56. data/examples/00550_curve_N/346/254/241/343/203/231/343/202/270/343/202/247/346/233/262/347/267/232.rb +92 -0
  57. data/examples/00560_curve_/343/202/271/343/203/227/343/203/251/343/202/244/343/203/263/346/233/262/347/267/232.rb +113 -0
  58. data/examples/00570_/345/206/206/351/201/213/345/213/225_circle_jet_coaster.rb +52 -0
  59. data/examples/00580_/345/206/206/343/202/222/346/212/274/343/201/231/343/201/262/343/201/243/343/201/261/343/202/213_collision_circle_vs_circle_push_or_pull.rb +56 -0
  60. data/examples/00590_/350/212/213/350/231/253/343/202/264/343/203/240/347/264/220/343/203/207/343/203/242_collision_demo_circle_worm.rb +104 -0
  61. data/examples/00600_/346/214/257/343/202/212/345/255/220_swing.rb +145 -0
  62. data/examples/00610_/345/206/205/347/251/215/343/201/250/345/244/226/347/251/215_inner_product.rb +36 -0
  63. data/examples/00620_/346/263/225/347/267/232/343/203/231/343/202/257/343/203/210/343/203/253.rb +23 -0
  64. data/examples/00630_/345/206/206/343/201/250/345/206/206/343/201/256/345/217/215/345/260/204_collision_reflect_circle_vs_circle.rb +222 -0
  65. data/examples/00640_/347/202/271/343/201/250/347/267/232/345/210/206/343/201/256/344/272/244/345/267/256/345/210/244/345/256/232_collision_ray_circle_vs_line.rb +261 -0
  66. data/examples/00650_/345/206/206/343/201/250/347/202/271/343/201/256/345/217/215/345/260/204_collision_circle_vs_dot.rb +36 -0
  67. data/examples/00660_/345/206/206/343/201/250/345/206/206/343/201/250/347/267/232/345/210/206/343/201/256/345/217/215/345/260/204/343/203/207/343/203/242_collision_demo.rb +305 -0
  68. data/examples/00670_/343/203/251/343/202/244/343/203/225/343/202/262/343/203/274/343/203/240.rb +86 -0
  69. data/examples/00680_2/347/202/271/343/202/222/351/200/232/343/202/213/347/233/264/347/267/232/343/201/256/346/226/271/347/250/213/345/274/217.rb +81 -0
  70. data/examples/00690_/343/203/222/343/203/253/343/203/231/343/203/253/343/203/210/346/233/262/347/267/232.rb +77 -0
  71. data/examples/00700_/343/202/263/343/203/203/343/203/233/346/233/262/347/267/232.rb +79 -0
  72. data/examples/00710_/343/202/267/343/202/260/343/203/242/343/202/244/343/203/211/346/233/262/347/267/232.rb +40 -0
  73. data/examples/00720_/343/202/267/343/203/200/346/244/215/347/211/251.rb +44 -0
  74. data/examples/00730_/343/202/257/343/203/252/343/203/225/343/202/251/343/203/274/343/203/211/343/202/242/343/203/210/343/203/251/343/202/257/343/202/277_/345/237/272/346/234/254.rb +29 -0
  75. data/examples/00740_/343/202/257/343/203/252/343/203/225/343/202/251/343/203/274/343/203/211/343/202/242/343/203/210/343/203/251/343/202/257/343/202/277_/346/224/271/350/211/257_/350/211/262/344/273/230/343/201/215.rb +68 -0
  76. data/examples/00750_/343/202/257/343/203/252/343/203/225/343/202/251/343/203/274/343/203/211/343/202/242/343/203/210/343/203/251/343/202/257/343/202/277_/343/203/211/343/203/274/343/203/212/343/203/204/345/236/213.rb +44 -0
  77. data/examples/00760_/347/201/253/350/212/261.rb +42 -0
  78. data/examples/00770_atan/343/201/247atan2/343/202/222/346/233/270/343/201/217.rb +26 -0
  79. data/examples/00780_/346/250/231/346/272/226/343/203/251/343/202/244/343/203/226/343/203/251/343/203/252/343/201/256atan2_sin_cos/343/202/222/344/275/277/343/201/206.rb +15 -0
  80. data/examples/00790_/350/247/222/345/272/246/343/201/250/343/203/251/343/202/270/343/202/242/343/203/263/343/201/256/347/233/270/344/272/222/345/244/211/346/217/233.rb +22 -0
  81. data/examples/00800_/347/220/203/343/201/214/347/233/264/347/267/232/347/232/204/343/201/253/345/213/225/343/201/204/343/201/246/343/201/204/343/202/213/343/201/240/343/201/221/343/201/247/345/233/236/350/273/242/343/201/227/343/201/246/343/201/204/343/202/213/343/202/210/343/201/206/343/201/253/350/246/213/343/201/210/343/202/213.rb +27 -0
  82. data/examples/00810_/343/202/267/343/203/237/343/203/245/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263_/350/273/212.rb +75 -0
  83. data/examples/00820_/343/202/267/343/203/237/343/203/245/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263_/346/210/246/350/273/212.rb +90 -0
  84. data/examples/00830_/350/247/222/345/272/246/345/267/256.rb +36 -0
  85. data/examples/00840_/346/224/276/347/211/251/347/267/232/343/201/247/347/213/231/346/222/203_/346/231/202/351/226/223/345/233/272/345/256/232.rb +61 -0
  86. data/examples/00850_/346/224/276/347/211/251/347/267/232/343/201/247/347/213/231/346/222/203_/350/247/222/345/272/246/345/233/272/345/256/232.rb +84 -0
  87. data/examples/00860_/346/224/276/347/211/251/347/267/232/343/201/247/347/213/231/346/222/203_/351/200/237/345/272/246/345/233/272/345/256/232.rb +66 -0
  88. data/examples/00870_/350/247/222/345/272/246/350/243/234/346/255/243_/345/212/240/351/200/237/343/203/237/343/202/265/343/202/244/343/203/253.rb +60 -0
  89. data/examples/00880_/345/210/235/351/200/237/343/201/214/351/200/237/343/201/204/343/203/237/343/202/265/343/202/244/343/203/253.rb +51 -0
  90. data/examples/00890_/346/255/243/350/246/217/344/271/261/346/225/260/343/201/250/346/250/231/346/272/226/345/201/217/345/267/256/343/201/256/345/217/257/350/246/226/345/214/226.rb +72 -0
  91. data/examples/00900_/345/220/221/345/277/203/345/212/233/343/201/247/345/233/236/350/273/242/343/200/220/350/247/222/345/272/2460/345/272/246/343/201/213/343/202/211/343/200/221.rb +23 -0
  92. data/examples/00910_/345/220/221/345/277/203/345/212/233/343/201/247/345/233/236/350/273/242/343/200/220/344/273/273/346/204/217/343/201/256/350/247/222/345/272/246/343/201/213/343/202/211/343/200/221.rb +33 -0
  93. data/examples/00920_/343/203/236/343/203/252/343/202/252/343/203/226/343/203/251/343/202/266/343/203/274/343/202/272/351/242/250/343/201/253/347/224/273/351/235/242/344/270/241/347/253/257/343/201/214/347/271/213/343/201/243/343/201/246/343/201/204/343/202/213/344/276/213.rb +29 -0
  94. data/examples/00930_/345/212/271/346/236/234/351/237/263.rb +17 -0
  95. data/examples/00940_/343/203/236/343/203/203/343/203/227/343/203/201/343/203/203/343/203/227/343/201/256/343/203/236/343/203/203/343/203/227/351/205/215/347/275/256.rb +71 -0
  96. data/examples/00950_/343/203/236/343/203/203/343/203/227/343/203/201/343/203/203/343/203/227/343/201/256/350/241/250/347/244/272/344/276/213.rb +28 -0
  97. data/examples/00960_/343/203/236/343/203/203/343/203/227/343/203/201/343/203/203/343/203/227/343/201/250/345/215/230/344/270/200/347/224/273/345/203/217/343/201/256/351/201/225/343/201/204/343/202/222/345/220/270/345/217/216/343/201/231/343/202/213/344/276/213.rb +47 -0
  98. data/examples/00970_observer_/343/201/235/343/201/2561_/347/233/264/346/216/245.rb +28 -0
  99. data/examples/00980_observer_/343/201/235/343/201/2562_/346/231/256/351/200/232/343/201/253Singleton/347/211/210.rb +30 -0
  100. data/examples/00990_observer_/343/201/235/343/201/2563_SimpleDelegator/347/211/210.rb +28 -0
  101. data/examples/01000_observer_/343/201/235/343/201/2564_/351/200/206/343/201/253/343/203/253/343/203/274/343/203/227/344/270/273/345/260/216.rb +28 -0
  102. data/examples/01010_observer_/343/201/235/343/201/2565_/343/201/204/343/202/215/343/202/223/343/201/252/346/211/200/343/201/213/343/202/211/345/221/274/343/202/223/343/201/247/343/201/204/343/202/213/343/201/221/343/201/251Singleton/343/201/252/343/201/256/343/201/247/345/256/211/345/205/250.rb +37 -0
  103. data/examples/01020_observer_/343/201/235/343/201/2566_/343/201/204/343/202/215/343/202/223/343/201/252/346/211/200/343/201/213/343/202/211/345/221/274/343/201/266/345/240/264/345/220/210callbacks/343/202/222/344/275/277/343/202/217/343/201/252/343/201/204/343/202/210/343/201/206/343/201/253.rb +30 -0
  104. data/examples/01030_observer_/343/201/235/343/201/2567_/343/202/250/343/203/225/343/202/247/343/202/257/343/203/210/343/202/277/343/202/271/343/202/257/343/202/222/345/233/236/343/201/231/344/276/213.rb +57 -0
  105. data/examples/01040_/343/203/236/343/202/246/343/202/271/343/201/256/344/275/215/347/275/256/343/201/253/343/203/224/343/202/257/343/202/273/343/203/253/343/202/222/346/211/223/343/201/244.rb +18 -0
  106. data/examples/01050_/343/203/224/343/202/257/343/202/273/343/203/253/345/205/250/344/275/223/343/202/222/346/233/270/343/201/215/350/276/274/343/202/200.rb +27 -0
  107. data/examples/01060_effect_/347/224/273/345/203/217/343/201/256/343/202/263/343/203/263/343/203/234/343/203/252/343/203/245/343/203/274/343/203/210/346/263/225/343/201/253/343/202/210/343/202/213/343/202/250/343/203/225/343/202/247/343/202/257/343/203/210/345/207/246/347/220/206.rb +116 -0
  108. data/examples/01070_effect_FF7/343/201/256/346/210/246/351/227/230/343/201/253/345/205/245/343/202/213/343/201/250/343/201/215/343/201/256/343/202/250/343/203/225/343/202/247/343/202/257/343/203/210.rb +33 -0
  109. data/examples/01080_effect_/350/203/214/346/231/257/343/202/222/347/267/251/343/201/217/346/266/210/343/201/227/343/201/246/343/201/204/343/201/217/343/201/250/343/202/271/343/203/240/343/203/274/343/202/272/343/201/253/343/201/252/343/202/213.rb +16 -0
  110. data/examples/01090_/347/224/273/345/203/217/343/201/256/343/202/257/343/203/255/343/202/271/343/203/225/343/202/247/343/203/274/343/203/211.rb +37 -0
  111. data/examples/01100_/343/202/271/343/202/257/343/203/252/343/203/274/343/203/263/346/203/205/345/240/261.rb +8 -0
  112. data/examples/01110_lib_contrib_menu.rb +19 -0
  113. data/examples/01120_/351/233/233/345/236/213_2P/345/257/276/346/210/246/351/242/250STG.rb +109 -0
  114. data/examples/01130_/351/233/233/345/236/213_/346/210/246/350/273/212/345/257/276/346/210/246.rb +396 -0
  115. data/examples/01140_/351/233/233/345/236/213_2P/345/257/276/346/210/246.rb +60 -0
  116. data/examples/01150_/351/233/233/345/236/213_/343/202/271/343/203/274/343/203/221/343/203/274/343/203/236/343/203/252/343/202/252/351/242/250/343/202/242/343/202/257/343/202/267/343/203/247/343/203/263.rb +1251 -0
  117. data/examples/01160_2D/343/202/242/343/203/225/343/202/243/343/203/263/345/244/211/346/217/233.rb +40 -0
  118. data/examples/01170_stackprof.rb +10 -0
  119. data/examples/01180_sdl_/343/202/242/343/203/253/343/203/225/343/202/241/343/203/226/343/203/254/343/203/263/343/203/207/343/202/243/343/203/263/343/202/260/343/201/247/351/207/215/343/201/255/345/220/210/343/201/233/345/241/227/343/202/212/346/275/260/343/201/227.rb +11 -0
  120. data/examples/01190_/343/203/221/343/203/274/343/203/206/343/202/243/343/202/257/343/203/253/345/220/214/345/243/253/343/201/247/344/270/255/345/244/256/343/201/253/345/220/221/343/201/213/343/201/206.rb +79 -0
  121. data/examples/01200_lib_OpenGL.rb +55 -0
  122. data/examples/bezier.rb +202 -0
  123. data/examples/cursor.rb +50 -0
  124. data/examples/helper.rb +38 -0
  125. data/examples/lifegame_patterns.rb +102 -0
  126. data/examples/movable_point.rb +64 -0
  127. data/examples/mtx33.rb +294 -0
  128. data/examples/setup.rb +5 -0
  129. data/examples/stage_infos.rb +1 -0
  130. data/examples/start.sh +2 -0
  131. data/examples/test_all.rb +5 -0
  132. data/examples/testgl.rb +228 -0
  133. data/examples/trash/__0060_shooting2.rb +37 -0
  134. data/examples/trash/__0090_collision_circle1.rb +50 -0
  135. data/examples/trash/__0125_circle_collision.rb +103 -0
  136. data/examples/trash/__0130_circle_collision2.rb +60 -0
  137. data/examples/trash/__0270_circle_cycle_shift.rb +29 -0
  138. data/examples/trash/__bullet_algos.rb +224 -0
  139. data/examples/trash/gunship.rb +39 -0
  140. data/examples//343/203/227/343/203/255/343/202/270/343/202/247/343/202/257/343/202/277/343/203/274/343/201/253/350/241/250/347/244/272/343/201/231/343/202/213/343/201/250/343/201/215.sh +2 -0
  141. data/lib/stylet.rb +1 -0
  142. data/lib/stylet/application_memory_record.rb +33 -0
  143. data/lib/stylet/audio.rb +455 -0
  144. data/lib/stylet/axis_support.rb +62 -0
  145. data/lib/stylet/base.rb +76 -0
  146. data/lib/stylet/callbacks.rb +62 -0
  147. data/lib/stylet/cli.rb +54 -0
  148. data/lib/stylet/collision_support.rb +56 -0
  149. data/lib/stylet/config.rb +39 -0
  150. data/lib/stylet/contrib/menu.rb +508 -0
  151. data/lib/stylet/contrib/shared_pad.rb +32 -0
  152. data/lib/stylet/contrib/sprity.rb +149 -0
  153. data/lib/stylet/core.rb +118 -0
  154. data/lib/stylet/cpu_stat.rb +58 -0
  155. data/lib/stylet/delegators.rb +54 -0
  156. data/lib/stylet/draw.rb +256 -0
  157. data/lib/stylet/draw_support/arrow.rb +56 -0
  158. data/lib/stylet/draw_support/circle.rb +63 -0
  159. data/lib/stylet/draw_support/polygon.rb +22 -0
  160. data/lib/stylet/font.rb +172 -0
  161. data/lib/stylet/fps_adjust.rb +23 -0
  162. data/lib/stylet/fps_stat.rb +41 -0
  163. data/lib/stylet/input.rb +8 -0
  164. data/lib/stylet/input/base.rb +105 -0
  165. data/lib/stylet/input/hardware_bindings.rb +65 -0
  166. data/lib/stylet/input/key_one.rb +162 -0
  167. data/lib/stylet/input/support.rb +72 -0
  168. data/lib/stylet/joystick.rb +31 -0
  169. data/lib/stylet/joystick_adapter.rb +130 -0
  170. data/lib/stylet/joystick_adapters/buffalo_snes_adapter.rb +47 -0
  171. data/lib/stylet/joystick_adapters/elecom_usb_pad_adapter.rb +30 -0
  172. data/lib/stylet/joystick_adapters/hori_rap_v3_sa_adapter.rb +46 -0
  173. data/lib/stylet/joystick_adapters/ps3_standard_adapter.rb +40 -0
  174. data/lib/stylet/joystick_adapters/unknown_adapter.rb +13 -0
  175. data/lib/stylet/keyboard.rb +15 -0
  176. data/lib/stylet/logger.rb +12 -0
  177. data/lib/stylet/mouse.rb +58 -0
  178. data/lib/stylet/palette.rb +17 -0
  179. data/lib/stylet/rect.rb +113 -0
  180. data/lib/stylet/shortcut.rb +8 -0
  181. data/lib/stylet/state.rb +87 -0
  182. data/lib/stylet/stylet.rb +44 -0
  183. data/lib/stylet/system_pause.rb +24 -0
  184. data/lib/stylet/version.rb +3 -0
  185. data/log/.gitkeep +0 -0
  186. data/stylet.gemspec +31 -0
  187. data/test/test_helper.rb +6 -0
  188. data/test/test_input_base.rb +12 -0
  189. data/test/test_input_key_one.rb +43 -0
  190. data/test/test_input_support.rb +47 -0
  191. data/test/test_sample.rb +13 -0
  192. data/test/test_state.rb +26 -0
  193. data/tips.org +16 -0
  194. metadata +391 -0
@@ -0,0 +1,8 @@
1
+ require_relative "setup"
2
+
3
+ Stylet.run do
4
+ vi = SDL::Screen.info
5
+ vi.class.instance_methods(false).each do |var|
6
+ vputs "#{var} #{vi.send(var)}"
7
+ end
8
+ end
@@ -0,0 +1,19 @@
1
+ require_relative "helper"
2
+
3
+ menu = Stylet::Menu::Basic.new(name: "[メニュー]", elements: [
4
+ {name: "実行", safe_command: proc { Stylet.run { vputs "Hello World" } }},
5
+ {
6
+ name: "サブメニュー",
7
+ safe_command: proc {|s|
8
+ s.chain(name: "[サブメニュー]", elements: [
9
+ {name: "A", safe_command: proc { p 1 }},
10
+ {name: "B", safe_command: proc { p 2 }},
11
+ {name: "閉じる", safe_command: :close_and_parent_restart },
12
+ ])
13
+ },
14
+ },
15
+ {name: "サブメニュー2", safe_command: proc { s.chain(name: "[サブメニュー2]", elements: 16.times.collect {|i|{:name => "項目#{i}"}})}},
16
+ {:name => "閉じる", :safe_command => :close_and_parent_restart },
17
+ ])
18
+
19
+ Stylet.run {|_| menu.update }
@@ -0,0 +1,109 @@
1
+ require "./setup"
2
+
3
+ class GunShip
4
+ include Stylet::Delegators
5
+ include Stylet::Input::Base
6
+
7
+ attr_reader :pos
8
+ attr_accessor :target
9
+
10
+ def initialize(pos)
11
+ super()
12
+ @pos = pos # 自機の位置
13
+ @speed = 3 # 移動速度
14
+ @size = 8 * 3 # 自機の大きさ
15
+ @joystick_index = nil # 自分のジョイスティックの番号
16
+ @target = nil # 相手
17
+ end
18
+
19
+ def update
20
+ if @joystick_index
21
+ bit_update_by_joy(Stylet.context.joys[@joystick_index])
22
+ end
23
+ key_bit_update_all
24
+ key_counter_update_all
25
+
26
+ if dir = axis_angle
27
+ next_pos = @pos + vec2.angle_at(dir) * @speed
28
+ if Stylet::CollisionSupport.rect_in?(Stylet.context.srect, next_pos)
29
+ @pos = next_pos
30
+ end
31
+ end
32
+
33
+ draw_triangle(@pos, :radius => @size, :angle => @pos.angle_to(@target.pos))
34
+ end
35
+ end
36
+
37
+ module BulletTrigger
38
+ def update
39
+ super
40
+ if @button.btA.counter.modulo(8) == 1
41
+ Stylet.context.objects << Bullet.new(@pos.clone, @pos.angle_to(@target.pos), 4.00)
42
+ end
43
+ end
44
+ end
45
+
46
+ class GunShip1 < GunShip
47
+ include Stylet::Input::StandardKeybordBind
48
+ include Stylet::Input::JoystickBindMethod
49
+ include BulletTrigger
50
+
51
+ def initialize(*)
52
+ super
53
+ @joystick_index = 0
54
+ end
55
+ end
56
+
57
+ class GunShip2 < GunShip
58
+ include Stylet::Input::HjklKeyboardBind
59
+ include Stylet::Input::JoystickBindMethod
60
+ include BulletTrigger
61
+
62
+ def initialize(*)
63
+ super
64
+ @joystick_index = 1
65
+ end
66
+ end
67
+
68
+ class Bullet
69
+ include Stylet::Delegators
70
+
71
+ def initialize(pos, dir, speed)
72
+ @pos = pos
73
+ @dir = dir
74
+ @speed = speed
75
+
76
+ @size = 8
77
+ @radius = 0
78
+ end
79
+
80
+ def screen_out?
81
+ Stylet::CollisionSupport.rect_out?(srect, @pos) || @radius < 0
82
+ end
83
+
84
+ def update
85
+ @radius += @speed
86
+ draw_triangle(@pos + vec2.angle_at(@dir) * @radius, :radius => @size, :angle => @dir)
87
+ end
88
+ end
89
+
90
+ class App < Stylet::Base
91
+ attr_reader :objects
92
+
93
+ setup do
94
+ self.title = "二人対戦風シューティング"
95
+ @objects = []
96
+ ship1 = GunShip1.new(vec2[srect.hx, srect.hy - srect.hy * 0.8])
97
+ ship2 = GunShip2.new(vec2[srect.hx, srect.hy + srect.hy * 0.8])
98
+ ship1.target = ship2
99
+ ship2.target = ship1
100
+ @objects << ship1
101
+ @objects << ship2
102
+ end
103
+
104
+ update do
105
+ @objects.each(&:update)
106
+ end
107
+
108
+ run
109
+ end
@@ -0,0 +1,396 @@
1
+ # 戦車
2
+ require_relative "helper"
3
+
4
+ $DEBUG = false
5
+
6
+ class Tank
7
+ include Stylet::Delegators
8
+ include Stylet::Input::Base
9
+ include Stylet::Input::ExtensionButton
10
+
11
+ attr_accessor :pos
12
+ attr_accessor :target
13
+ attr_accessor :life
14
+ attr_accessor :bullet_count
15
+ attr_accessor :radius
16
+
17
+ def initialize(name, pos)
18
+ super()
19
+
20
+ @name = name
21
+ @pos = pos # 車体の位置
22
+ @body_dir = @pos.angle_to(srect.center) # 車体の進む方向
23
+ @handle_dir = 0 # ハンドル角度
24
+ @accel = 0 # 加速度
25
+ @speed = 0 # 速度
26
+ @old_pos = @pos.clone # 前回の位置
27
+ @bullet_count = 0 # 発射している弾丸数
28
+ @life = 10 # ライフ
29
+ @anger = 0 # 怒り
30
+ @radius = 20 # 車体の大きさ
31
+ @bullet_max = 3 # 使える段数
32
+
33
+ @cannon_dir = @body_dir # 砲台の向き(実際)
34
+ @cannon_dir2 = @body_dir # 砲台の向き(目標)
35
+ end
36
+
37
+ def update
38
+ super if defined? super
39
+
40
+ if @joystick_index
41
+ if joy = joys[@joystick_index]
42
+ bit_update_by_joy(joy)
43
+ end
44
+ end
45
+
46
+ key_bit_update_all
47
+ key_counter_update_all
48
+
49
+ # ハンドル
50
+ begin
51
+ @handle_adir = 0
52
+
53
+ if button_obj = Stylet::Input::Support.preference_key(ext_button.btL2, ext_button.btR2)
54
+ # ハンドルの強さ。大きいと小回りが効く。
55
+ @handle_adir = 0.0005
56
+ if button_obj == ext_button.btL2
57
+ @handle_adir *= -1
58
+ end
59
+ elsif axis.left.press? || axis.right.press?
60
+ @handle_adir = 0.0005
61
+ if axis.left.press?
62
+ @handle_adir *= -1
63
+ end
64
+ end
65
+
66
+ @handle_dir += @handle_adir
67
+ # ハンドルの角度の減速度(1.00なら車体が回りっぱなしになる)
68
+ if @old_pos.truncate == @pos.truncate
69
+ @handle_dir *= 0.5 # 止まっている場合はハンドルがなかなか効かない(普通の車なら0.0)
70
+ else
71
+ # @handle_dir *= 1.0 # 動いている状態ではハンドルが効きやすい
72
+ end
73
+ @handle_dir *= 0.95 # ハンドルを元に戻す
74
+ handle_gap = 0.1 # ハンドルが曲る最大の角度
75
+ @handle_dir = Stylet::Chore.clamp(@handle_dir, (-handle_gap..handle_gap))
76
+ @body_dir += @handle_dir
77
+ vputs "ハンドル: #{@handle_dir.round(4)}" if $DEBUG
78
+ vputs "車体向き: #{@body_dir.round(4)}" if $DEBUG
79
+ end
80
+
81
+ # アクセル
82
+ begin
83
+ @accel = 0
84
+ if button.btA.press?
85
+ @accel = 0.06 # 前の進むときの加速度
86
+ end
87
+ if button.btD.press?
88
+ @accel = -0.06 # ブレーキの効き具合い
89
+ end
90
+ # @accel *= 2 if @life <= 1
91
+ @speed += @accel if @life >= 1
92
+ @speed *= 0.999 # 空気抵抗
93
+ @speed = Stylet::Chore.clamp(@speed, (-1.0..5)) # 下るときと進むときの速度のリミット
94
+ vputs "速度: #{@speed.round(4)}" if $DEBUG
95
+ end
96
+
97
+ # 移動
98
+ begin
99
+ @old_pos = @pos.clone
100
+ @pos += vec2.angle_at(@body_dir) * @speed
101
+ end
102
+
103
+ # 砲台
104
+ begin
105
+ # 指定の方向に合わせる
106
+ if joy = joys[@joystick_index]
107
+ if vec = joy.adjusted_analog_levers[:right]
108
+ if vec.magnitude > 0.5
109
+ @cannon_dir += Stylet::Chore.shortest_angular_difference(vec.angle, @cannon_dir) * 0.1
110
+ end
111
+ end
112
+ end
113
+
114
+ if false
115
+ # 相手の方向に合わせる
116
+ if ext_button.btR1.press?
117
+ @cannon_dir2 = Stylet::Chore.shortest_angular_difference(@pos.angle_to(@target.pos), @cannon_dir)
118
+ # # ただしスピードが落ちる
119
+ # @speed *= 0.9
120
+ end
121
+ end
122
+
123
+ # ゆっくりと砲台を車体の方向に向けていく
124
+ @cannon_dir += Stylet::Chore.shortest_angular_difference(@body_dir, @cannon_dir) * 0.08
125
+
126
+ vputs "cannon_dir: #{@cannon_dir}" if $DEBUG
127
+ end
128
+
129
+ # タックルしたとき当り判定(減り込み回避のみ)
130
+ begin
131
+ diff = @target.pos - @pos
132
+ rdiff = (@radius + @target.radius) - diff.magnitude
133
+ if rdiff > 0
134
+ @pos -= diff.normalize * rdiff / 2
135
+ @target.pos += diff.normalize * rdiff / 2
136
+ end
137
+ end
138
+
139
+ # 粉塵
140
+ if true
141
+ if @accel.nonzero? && @speed >= 1.0
142
+ if frame_counter.modulo(3).zero?
143
+ (@speed * 4).round.times do
144
+ if rand(3).zero?
145
+ Stylet.context.objects << Dust.new(@pos, @body_dir + 0.5 + rand(-0.10..0.10), @speed * rand(6..8), rand(0.7..0.8), rand(15..20))
146
+ end
147
+ end
148
+ end
149
+ end
150
+ end
151
+
152
+ begin
153
+ vputs "#{@name}: #{@life} (#{@power})"
154
+ end
155
+
156
+ if @life >= 1
157
+ # 車体表示
158
+ draw_angle_rect(@pos, :angle => @cannon_dir, :radius => 25, :edge => 0.02)
159
+ draw_angle_rect(@pos, :angle => @body_dir, :radius => 25, :edge => 0.09)
160
+ end
161
+ end
162
+
163
+ def damage
164
+ if @life >= 1
165
+ @life -= 1
166
+ @anger += 1
167
+ @bullet_max += 1 # 不利になると弾数が増える
168
+ (n = 16).times do |i|
169
+ Stylet.context.objects << Dust.new(@pos, 1.0 / n * i, rand(6..8), rand(0.7..0.9), 0)
170
+ end
171
+ Stylet::SE["explosion01"].play
172
+ end
173
+ end
174
+ end
175
+
176
+ module BulletTrigger
177
+ def initialize(*)
178
+ super
179
+ @power = 0
180
+ @free_counter = 0
181
+ end
182
+
183
+ def update
184
+ super
185
+ bt = ext_button.btR1
186
+
187
+ if bt.trigger? || Stylet.context.key_down?(SDL::Key::B)
188
+ if @bullet_count < @bullet_max
189
+ @speed -= 0.8 # 玉を打つと反動で下がる。(BUG: 横に向けて砲台を打っているときに後車するのはおかしい)
190
+ Stylet.context.objects << Bullet.new(self, @pos.clone, @cannon_dir, 8)
191
+ end
192
+ end
193
+
194
+ # 溜め
195
+ if bt.press?
196
+ @power += 1
197
+ @free_counter = 0
198
+ else
199
+ @free_counter += 1
200
+ end
201
+ if @free_counter == 1
202
+ if @power >= 60 * 2
203
+ @speed -= 0.3 # 玉を打つと反動で下がる
204
+ 1.times { Stylet.context.objects << Missile.new(self, @cannon_dir) }
205
+ end
206
+ @power = 0
207
+ end
208
+ end
209
+ end
210
+
211
+ class Tank1 < Tank
212
+ include Stylet::Input::StandardKeybordBind
213
+ include Stylet::Input::JoystickBindMethod
214
+ include BulletTrigger
215
+
216
+ def initialize(*)
217
+ super
218
+ @joystick_index = 0
219
+ end
220
+ end
221
+
222
+ class Tank2 < Tank
223
+ include Stylet::Input::HjklKeyboardBind
224
+ include Stylet::Input::JoystickBindMethod
225
+ include BulletTrigger
226
+
227
+ def initialize(*)
228
+ super
229
+ @joystick_index = 1
230
+ end
231
+ end
232
+
233
+ class Bullet
234
+ attr_reader :death
235
+
236
+ def initialize(tank, pos, dir, speed)
237
+ @tank = tank
238
+ @pos = pos
239
+ @dir = dir
240
+ @speed = speed
241
+
242
+ @size = 6
243
+ @radius = 26
244
+ @death = false
245
+
246
+ @tank.bullet_count += 1
247
+ end
248
+
249
+ def update
250
+ @radius += @speed
251
+ _pos = @pos + vec2.angle_at(@dir) * @radius
252
+ Stylet.context.draw_triangle(_pos, :radius => @size, :angle => @dir, :vertex => 8)
253
+ rc = Stylet::Rect4.centered_create(@size * 1.5).vector_add(_pos)
254
+ Stylet.context.draw_rect(rc) if $DEBUG
255
+ if Stylet::CollisionSupport.rect_in?(rc, @tank.target.pos)
256
+ if @tank.target.life >= 1
257
+ @tank.target.damage
258
+ final
259
+ end
260
+ end
261
+ if Stylet::CollisionSupport.rect_out?(Stylet.context.srect, _pos)
262
+ final
263
+ end
264
+ end
265
+
266
+ def final
267
+ unless @death
268
+ @tank.bullet_count -= 1
269
+ @death = true
270
+ end
271
+ end
272
+ end
273
+
274
+ class Missile
275
+ include Stylet::Delegators
276
+
277
+ attr_reader :death
278
+
279
+ def initialize(tank, dir)
280
+ @tank = tank
281
+ @pos = tank.pos
282
+ @dir = dir + rand(-0.1..0.1)
283
+ @speed = rand(1.0..3.0)
284
+
285
+ @size = 20
286
+ @radius = 26
287
+ @death = false
288
+
289
+ Stylet::SE["launch01"].play
290
+ end
291
+
292
+ def update
293
+ if @tank.target.life >= 1
294
+ a = @pos.angle_to(@tank.target.pos)
295
+ else
296
+ a = @pos.angle_to(srect.center)
297
+ end
298
+ d = a.modulo(1.0) - @dir.modulo(1.0)
299
+ if d < -1.0 / 2
300
+ d = 1.0 + d
301
+ elsif d > 1.0 / 2
302
+ d = -1.0 + d
303
+ end
304
+ @dir += d * 0.04 # 誘導率
305
+ # @speed += 0.01
306
+ @speed = Stylet::Chore.clamp(@speed, (1..3))
307
+ @radius += @speed
308
+ _pos = @pos + vec2.angle_at(@dir) * @radius
309
+ Stylet.context.draw_triangle(_pos, :radius => @size, :angle => @dir)
310
+ rc = Stylet::Rect4.centered_create(@size * 1.5).vector_add(_pos)
311
+ Stylet.context.draw_rect(rc) if $DEBUG
312
+ if Stylet::CollisionSupport.rect_in?(rc, @tank.target.pos)
313
+ if @tank.target.life >= 1
314
+ @tank.target.damage
315
+ final
316
+ end
317
+ end
318
+ if Stylet::CollisionSupport.rect_out?(Stylet.context.srect, _pos)
319
+ final
320
+ end
321
+ end
322
+
323
+ def final
324
+ unless @death
325
+ @death = true
326
+ end
327
+ end
328
+ end
329
+
330
+ class Dust
331
+ include Stylet::Delegators
332
+
333
+ attr_reader :death
334
+
335
+ def initialize(pos, dir, speed, friction, radius)
336
+ @pos = pos
337
+ @dir = dir
338
+ @speed = speed
339
+ @friction = friction
340
+ @radius = radius
341
+
342
+ @size = 1
343
+ @death = false
344
+ end
345
+
346
+ def update
347
+ @speed *= @friction
348
+ @radius += @speed
349
+ _pos = @pos + vec2.angle_at(@dir) * @radius
350
+ draw_triangle(_pos, :radius => @size, :angle => @dir)
351
+ if @speed.abs <= 0.03
352
+ final
353
+ end
354
+ end
355
+
356
+ def final
357
+ @death = true
358
+ end
359
+ end
360
+
361
+ class App < Stylet::Base
362
+ include Helper::Cursor
363
+ attr_reader :objects
364
+
365
+ setup do
366
+ Stylet::SE.load("assets/komori_explosion01.ogg")
367
+ Stylet::SE.load("assets/komori_launch01.ogg")
368
+
369
+ self.title = "戦車 vs 戦車"
370
+ cursor.display = false
371
+ SDL::Mouse.hide
372
+ end
373
+
374
+ def reset_objects
375
+ @objects = []
376
+ @ships = []
377
+ @tank1 = Tank1.new("1P", vec2[srect.hx - srect.hx * 0.8, srect.hy])
378
+ @tank2 = Tank2.new("2P", vec2[srect.hx + srect.hx * 0.8, srect.hy])
379
+ @tank1.target = @tank2
380
+ @tank2.target = @tank1
381
+ @ships << @tank1
382
+ @ships << @tank2
383
+ end
384
+ setup :reset_objects
385
+
386
+ update do
387
+ if Stylet.context.key_down?(SDL::Key::R) || ((joy = joys.first) && joy.button(0) && joy.button(3))
388
+ reset_objects
389
+ end
390
+ @ships.each(&:update)
391
+ @objects.each(&:update)
392
+ @objects.reject!(&:death)
393
+ end
394
+
395
+ run
396
+ end