stylet 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,30 @@
1
+ # Stylet::Base 側のループで描画されるのではなくPlayer側のタイミングで描画する
2
+ require_relative "helper"
3
+
4
+ class Player
5
+ include Observable
6
+ def render
7
+ changed
8
+ notify_observers(self)
9
+ end
10
+ end
11
+
12
+ class Window
13
+ def initialize(player)
14
+ Stylet::Base.active_frame.run_initializers
15
+ player.add_observer(self)
16
+ end
17
+
18
+ def update(player) # Stylet::Base を継承してないのでデフォルトの update で受けられる
19
+ Stylet::Base.active_frame.instance_eval do
20
+ next_frame
21
+ vputs player
22
+ end
23
+ end
24
+ end
25
+
26
+ player = Player.new
27
+ Window.new(player)
28
+ loop do
29
+ player.render
30
+ end
@@ -0,0 +1,28 @@
1
+ # Stylet::Base 側のループで描画されるのではなくPlayer側のタイミングで描画する
2
+ require_relative "helper"
3
+
4
+ class Player
5
+ include Observable
6
+ def render
7
+ changed
8
+ notify_observers(self)
9
+ end
10
+ end
11
+
12
+ class Window < SimpleDelegator
13
+ def initialize(player)
14
+ super(Stylet::Base.active_frame)
15
+ player.add_observer(self)
16
+ end
17
+
18
+ def update(player) # observer として呼ばれる update
19
+ next_frame # Stylet::Base#update を呼ぶ。干渉しない。
20
+ vputs player
21
+ end
22
+ end
23
+
24
+ player = Player.new
25
+ Window.new(player)
26
+ loop do
27
+ player.render
28
+ end
@@ -0,0 +1,28 @@
1
+ # Stylet::Base 側のループで描画されるのではなくPlayer側のタイミングで描画するとみせかけて、やっぱり Stylet::Base 側のループで描画する
2
+ require_relative "helper"
3
+
4
+ class Player
5
+ include Observable
6
+ def render
7
+ changed
8
+ notify_observers(self)
9
+ end
10
+ end
11
+
12
+ class Window < SimpleDelegator
13
+ def initialize(player)
14
+ super(Stylet::Base.active_frame)
15
+ player.add_observer(self)
16
+ end
17
+
18
+ def update(player)
19
+ next_frame
20
+ vputs player
21
+ end
22
+ end
23
+
24
+ player = Player.new
25
+ Window.new(player)
26
+ (60 * 3).times do
27
+ player.render
28
+ end
@@ -0,0 +1,37 @@
1
+ require_relative "helper"
2
+
3
+ class Player
4
+ include Observable
5
+ def render
6
+ changed
7
+ notify_observers(self)
8
+ end
9
+ end
10
+
11
+ class Window < SimpleDelegator
12
+ def initialize(player)
13
+ super(Stylet::Base.active_frame)
14
+ player.add_observer(self)
15
+ end
16
+
17
+ def update(player)
18
+ next_frame
19
+ vputs [frame_counter, player.object_id, self.class.name]
20
+ end
21
+ end
22
+
23
+ player = Player.new
24
+ Window.new(player)
25
+
26
+ 60.times { player.render } # observer形式で60回呼ぶ
27
+
28
+ # 【重要】 Stylet::Base.run の場合は singleton のインスタンスを汚さないので何度呼んでもいいが、
29
+ # Stylet::Base を継承して作ったクラスで update コールバックを使う場合はグローバルなインスタンスに結びついてしまうため
30
+ # 他のところで実行されたオブザーバーが update コールバックもいっしょに呼んでしまう。
31
+
32
+ Stylet::Base.run do # これを実行し始めたときにはすでに frame_counter は 60 になっている
33
+ if frame_counter == 120 # ので 60 フレームたったときにここにくる
34
+ 60.times { player.render } # さらにループの中で observer 形式で呼び出しても Singleton なので安全
35
+ end
36
+ vputs [frame_counter, player.object_id, self.class.name]
37
+ end
@@ -0,0 +1,30 @@
1
+ require_relative "helper"
2
+
3
+ class W1 < SimpleDelegator
4
+ def initialize
5
+ super(Stylet::Base.active_frame)
6
+ end
7
+
8
+ def update
9
+ next_frame
10
+ vputs self.class.name
11
+ end
12
+ end
13
+
14
+ class W2 < SimpleDelegator
15
+ def initialize
16
+ super(Stylet::Base.active_frame)
17
+ end
18
+
19
+ def update
20
+ next_frame
21
+ vputs self.class.name
22
+ end
23
+ end
24
+
25
+ w1 = W1.new
26
+ w2 = W2.new
27
+
28
+ 30.times { w1.update }
29
+ 30.times { w2.update }
30
+ 30.times { w1.update }
@@ -0,0 +1,57 @@
1
+ require_relative "helper"
2
+
3
+ class MyApp < Stylet::Base
4
+ attr_accessor :tasks
5
+ def initialize(*)
6
+ super
7
+ @tasks = []
8
+ end
9
+ instance
10
+ end
11
+
12
+ class Player
13
+ include Observable
14
+ def render
15
+ changed
16
+ notify_observers(self)
17
+ end
18
+ end
19
+
20
+ class Task
21
+ include Stylet::Delegators
22
+
23
+ def initialize
24
+ @counter = 0
25
+ end
26
+
27
+ def call
28
+ @counter += 1
29
+ vputs "#{self.class.name} #{@counter}"
30
+ if @counter >= 60
31
+ Stylet::Base.active_frame.tasks.delete(self)
32
+ end
33
+ end
34
+ end
35
+
36
+ class Window < SimpleDelegator
37
+ def initialize(player)
38
+ super(Stylet::Base.active_frame) # MyApp.active_frame でも可
39
+ player.add_observer(self)
40
+ end
41
+
42
+ def update(player) # observer として呼ばれる update
43
+ if frame_counter.modulo(120).zero?
44
+ tasks << Task.new
45
+ end
46
+ tasks.each(&:call)
47
+
48
+ next_frame # Stylet::Base#update を呼ぶ。干渉しない。
49
+ vputs "#{self.class.name} #{frame_counter}"
50
+ end
51
+ end
52
+
53
+ player = Player.new
54
+ window = Window.new(player)
55
+ loop do
56
+ player.render
57
+ end
@@ -0,0 +1,18 @@
1
+ # マウスの位置にピクセルを打つ
2
+ require_relative "helper"
3
+
4
+ class App < Stylet::Base
5
+ setup do
6
+ SDL::Mouse.hide
7
+ end
8
+
9
+ update do
10
+ rgb = 3.times.collect { rand(256) }
11
+ screen[*mouse.point] = screen.format.map_rgb(*rgb)
12
+ end
13
+
14
+ def background_clear
15
+ end
16
+
17
+ run
18
+ end
@@ -0,0 +1,27 @@
1
+ require_relative "helper"
2
+
3
+ Stylet.configure do |config|
4
+ config.screen_size = [320 / 4, 240 / 4]
5
+ end
6
+
7
+ class App < Stylet::Base
8
+ setup do
9
+ SDL::Mouse.hide
10
+ end
11
+
12
+ update do
13
+ screen.h.times.each do |y|
14
+ screen.w.times.each do |x|
15
+ r = 127 * Stylet::Magic.rsin(1.0 / 256 / 2 * frame_counter * x)
16
+ g = 0
17
+ b = 127 * Stylet::Magic.rsin(1.0 / 256 / 2 * frame_counter * y)
18
+ screen[x, y] = screen.format.map_rgb(r, g, b)
19
+ end
20
+ end
21
+ end
22
+
23
+ def background_clear
24
+ end
25
+
26
+ run
27
+ end
@@ -0,0 +1,116 @@
1
+ # 参考
2
+ # 画像のコンボリュート法によるブラー処理(dinop.com)
3
+ # http://www.dinop.com/vc/image_convolute_blur.html
4
+
5
+ require_relative "helper"
6
+ require "matrix"
7
+
8
+ class App < Stylet::Base
9
+ include Helper::Cursor
10
+
11
+ setup do
12
+ SDL::Mouse.hide
13
+
14
+ @around = [
15
+ [-1, -1], [0, -1], [1, -1],
16
+ [-1, 0], [0, 0], [1, 0],
17
+ [-1, 1], [0, 1], [1, 1],
18
+ ]
19
+
20
+ @cell = 8
21
+
22
+ @index = 0
23
+ load_image
24
+ effect_set
25
+ end
26
+
27
+ update do
28
+ if button.btB.trigger? || button.btC.trigger? || button.btD.trigger?
29
+ @index += -button.btB.repeat + button.btC.repeat
30
+ load_image
31
+ effect_set
32
+ end
33
+ if button.btA.trigger? || frame_counter == 0
34
+ (screen.h / @cell).times.each do |y|
35
+ (screen.w / @cell).times.each do |x|
36
+ color = Vector[0, 0, 0]
37
+ @around.each.with_index do |v, i|
38
+ vv = Vector[x, y] + Vector[*v]
39
+ color += Vector[*screen.format.get_rgb(screen[*(vv * @cell)])] * @current[:weights][i]
40
+ end
41
+ color /= @total_weight
42
+ color = color.collect do |v|
43
+ if v < 0
44
+ 0
45
+ elsif v > 255
46
+ 255
47
+ else
48
+ v
49
+ end
50
+ end
51
+ screen.fill_rect(x * @cell, y * @cell, @cell, @cell, color.to_a)
52
+ end
53
+ end
54
+ end
55
+ vputs "A:実行 B:NEXT C:PREV"
56
+ vputs "#{@index}:#{@current[:name]}"
57
+ end
58
+
59
+ def background_clear
60
+ end
61
+
62
+ def effect_set
63
+ @effects = [
64
+ {
65
+ :name => "ブラー",
66
+ :weights => [
67
+ 1, 2, 1,
68
+ 2, 3, 2,
69
+ 1, 2, 1,
70
+ ],
71
+ },
72
+ {
73
+ :name => "ぼかし",
74
+ :weights => [
75
+ 1, 1, 1,
76
+ 1, 1, 1,
77
+ 1, 1, 1,
78
+ ],
79
+ },
80
+ {
81
+ :name => "シャープ",
82
+ :weights => [
83
+ 0, -3, 0,
84
+ -3, 24, -3,
85
+ 0, -3, 0,
86
+ ],
87
+ },
88
+ {
89
+ :name => "エンボス",
90
+ :weights => [
91
+ -4, -2, 0,
92
+ -2, 2, -2,
93
+ 0, 2, 4,
94
+ ],
95
+ },
96
+ {
97
+ :name => "なし",
98
+ :weights => [
99
+ 0, 0, 0,
100
+ 0, 1, 0,
101
+ 0, 0, 0,
102
+ ],
103
+ },
104
+ ]
105
+ @current = @effects[@index.modulo(@effects.size)]
106
+ @total_weight = @current[:weights].reduce(0, :+).abs.to_f
107
+ end
108
+
109
+ def load_image
110
+ s = SDL::Surface.load("assets/love_live.png")
111
+ image = s.display_format
112
+ screen.put(image, 0, 0)
113
+ end
114
+
115
+ run
116
+ end
@@ -0,0 +1,33 @@
1
+ # FF7の戦闘に入るときのエフェクト
2
+
3
+ require_relative "helper"
4
+ require "matrix"
5
+
6
+ Stylet.configure do |config|
7
+ config.screen_size = [640, 480]
8
+ config.production = true
9
+ end
10
+
11
+ class App < Stylet::Base
12
+ include Helper::Cursor
13
+
14
+ setup do
15
+ SDL::Mouse.hide
16
+ screen.set_alpha(SDL::SRCALPHA, 128)
17
+ end
18
+
19
+ update do
20
+ if button.btA.trigger? || frame_counter == 0 || frame_counter.modulo(60).zero?
21
+ f = Pathname.glob("assets/bg*.png").to_a.sample
22
+ s = SDL::Surface.load(f.to_s)
23
+ image = s.display_format
24
+ SDL::Surface.transform_draw(image, screen, 0, 1.00, 1.00, image.w / 2, image.h / 2, *srect.center, SDL::Surface::TRANSFORM_AA)
25
+ end
26
+ end
27
+
28
+ def background_clear
29
+ SDL::Surface.transform_blit(screen, screen, 2, 1.05, 1.05, *srect.center, *srect.center, SDL::Surface::TRANSFORM_AA | SDL::Surface::TRANSFORM_SAFE)
30
+ end
31
+
32
+ run
33
+ end
@@ -0,0 +1,16 @@
1
+ # 背景を100%で塗り潰さないとスムーズになる
2
+ require_relative "helper"
3
+
4
+ class App < Stylet::Base
5
+ include Helper::CursorWithObjectCollection
6
+
7
+ update do
8
+ draw_triangle(mouse.point, :radius => 128, :angle => 1.0 / 256 * frame_counter)
9
+ end
10
+
11
+ def background_clear
12
+ screen.draw_filled_rect_alpha(*srect, [0, 0, 0], 8)
13
+ end
14
+
15
+ run
16
+ end
@@ -0,0 +1,37 @@
1
+ # 画像のクロスフェード
2
+ require_relative "helper"
3
+ require "pathname"
4
+
5
+ class App < Stylet::Base
6
+ include Helper::CursorWithObjectCollection
7
+
8
+ setup do
9
+ @images = Pathname.glob(Pathname("assets/bg*.png").expand_path).collect do |file|
10
+ SDL::Surface.load(file.to_s).display_format
11
+ end
12
+ @index = 0
13
+ @alpha = 0
14
+ end
15
+
16
+ update do
17
+ a = @images[(@index + 0).modulo(@images.size)]
18
+ b = @images[(@index + 1).modulo(@images.size)]
19
+
20
+ a.set_alpha(SDL::SRCALPHA, 255)
21
+ screen.put(a, 0, 0)
22
+
23
+ b.set_alpha(SDL::SRCALPHA, @alpha)
24
+ screen.put(b, 0, 0)
25
+
26
+ @alpha += 4
27
+ if @alpha >= 255
28
+ @index += 1
29
+ @alpha = 0
30
+ end
31
+ end
32
+
33
+ def background_clear
34
+ end
35
+
36
+ run
37
+ end