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,15 @@
1
+ require_relative "helper"
2
+
3
+ class App < Stylet::Base
4
+ update do
5
+ v = mouse.point - srect.center
6
+ x, y = *v
7
+ # 中央からカーソル位置への方向を取得
8
+ rad = Math.atan2(y, x)
9
+ # その方向にライン
10
+ x = Math.cos(rad)
11
+ y = Math.sin(rad)
12
+ draw_line(srect.center, srect.center + vec2[x, y] * srect.height / 2)
13
+ end
14
+ run
15
+ end
@@ -0,0 +1,22 @@
1
+ # 標準ライブラリを使った場合の例
2
+ require_relative "helper"
3
+
4
+ class App < Stylet::Base
5
+ update do
6
+ one = 360 # 一周を何度にしてもいい
7
+
8
+ angle = frame_counter.modulo(one)
9
+ vputs "角度: #{angle}"
10
+
11
+ rad = angle * Math::PI / (one / 2)
12
+ vputs "角度→ラジアン: #{rad}"
13
+ x = Math.cos(rad)
14
+ y = Math.sin(rad)
15
+ draw_line(srect.center, srect.center + vec2[x, y] * srect.height / 2)
16
+
17
+ rad_to_angle = rad * (one / 2) / Math::PI
18
+ vputs "ラジアン→角度: #{rad_to_angle}"
19
+ end
20
+
21
+ run
22
+ end
@@ -0,0 +1,27 @@
1
+ # 球が直線的に動いているだけで回転しているように見える
2
+ # http://www.gizmodo.jp/2014/07/post_15084.html
3
+ require_relative "helper"
4
+
5
+ class App < Stylet::Base
6
+ include Helper::Cursor
7
+
8
+ setup do
9
+ @n = 20 # 球の数
10
+ @ball_r = 8 # 球の半径
11
+ @diff = 1.0
12
+ end
13
+
14
+ update do
15
+ @diff += 0.01 * (button.btA.repeat - button.btB.repeat)
16
+
17
+ @n.times do |i|
18
+ r = rsin(0.5 / @n * i + 1.0 / 256 * frame_counter * 1) * srect.h * 0.45
19
+ pos = vec2.angle_at(0.5 / @n * i * @diff) * r
20
+ draw_circle(srect.center + pos, :radius => @ball_r, :vertex => 8)
21
+ end
22
+
23
+ draw_circle(srect.center, :radius => srect.h * 0.45 + @ball_r, :vertex => 20)
24
+ end
25
+
26
+ run
27
+ end
@@ -0,0 +1,75 @@
1
+ # 車
2
+ require_relative "helper"
3
+
4
+ class App < Stylet::Base
5
+ include Helper::Cursor
6
+
7
+ setup do
8
+ self.title = "車"
9
+
10
+ @pos = srect.center.clone # 車体の位置
11
+ @body_dir = Stylet::Magic.clock(0) # 車体の進む方向
12
+ @handle_dir = 0 # ハンドル角度
13
+ @accel = 0 # 加速度
14
+ @speed = 0 # 速度
15
+ @old_pos = @pos.clone # 前回の位置
16
+
17
+ @cursor.display = false
18
+ end
19
+
20
+ update do
21
+ # リセット(画面外に行ってしまったとき用)
22
+ if key_down?(SDL::Key::R)
23
+ @pos = srect.center.clone
24
+ end
25
+
26
+ # ハンドル
27
+ begin
28
+ @handle_adir = 0
29
+ if axis.left.press? || axis.right.press?
30
+ # ハンドルの強さ。大きいと小回りが効く。
31
+ @handle_adir = 0.0003
32
+ if axis.left.press?
33
+ @handle_adir *= -1
34
+ end
35
+ end
36
+ @handle_dir += @handle_adir
37
+ # ハンドルの角度の減速度(1.00なら車体が回りっぱなしになる)
38
+ if @old_pos.truncate == @pos.truncate
39
+ @handle_dir *= 0.0 # 止まっている場合はハンドルがなかなか効かない(普通の車なら0.0)
40
+ else
41
+ @handle_dir *= 0.94 # 動いている状態ではハンドルが効きやすい
42
+ end
43
+ handle_gap = 0.1 # ハンドルが曲る最大の角度
44
+ @handle_dir = Stylet::Chore.clamp(@handle_dir, (-handle_gap..handle_gap))
45
+ @body_dir += @handle_dir
46
+ vputs "ハンドル: #{@handle_dir.round(4)}"
47
+ vputs "車体向き: #{@body_dir.round(4)}"
48
+ end
49
+
50
+ # アクセル
51
+ begin
52
+ @accel = 0
53
+ if button.btA.press?
54
+ @accel = 0.09 # 前の進むときの加速度
55
+ end
56
+ if button.btD.press?
57
+ @accel = -0.06 # ブレーキの効き具合い
58
+ end
59
+ @speed += @accel
60
+ @speed *= 0.991 # 空気抵抗
61
+ @speed = Stylet::Chore.clamp(@speed, (-1..4)) # 下るときと進むときの速度のリミット
62
+ vputs "速度: #{@speed.round(4)}"
63
+ end
64
+
65
+ # 移動
66
+ begin
67
+ @old_pos = @pos.clone
68
+ @pos += vec2.angle_at(@body_dir) * @speed
69
+ end
70
+
71
+ draw_angle_rect(@pos, :angle => @body_dir, :radius => 20, :edge => 0.07)
72
+ end
73
+
74
+ run
75
+ end
@@ -0,0 +1,90 @@
1
+ # 戦車
2
+ require_relative "helper"
3
+
4
+ class App < Stylet::Base
5
+ include Helper::CursorWithObjectCollection
6
+
7
+ setup do
8
+ self.title = "戦車"
9
+
10
+ @pos = srect.center.clone # 車体の位置
11
+ @body_dir = Stylet::Magic.clock(0) # 車体の進む方向
12
+ @handle_dir = 0 # ハンドル角度
13
+ @accel = 0 # 加速度
14
+ @speed = 0 # 速度
15
+ @old_pos = @pos.clone # 前回の位置
16
+
17
+ @cannon_dir = @body_dir
18
+
19
+ @cursor.display = false
20
+ end
21
+
22
+ update do
23
+ # リセット(画面外に行ってしまったとき用)
24
+ if key_down?(SDL::Key::R)
25
+ @pos = srect.center.clone
26
+ end
27
+
28
+ # ハンドル
29
+ begin
30
+ @handle_adir = 0
31
+ if axis.left.press? || axis.right.press?
32
+ # ハンドルの強さ。大きいと小回りが効く。
33
+ @handle_adir = 0.0005
34
+ if axis.left.press?
35
+ @handle_adir *= -1
36
+ end
37
+ end
38
+ @handle_dir += @handle_adir
39
+ # ハンドルの角度の減速度(1.00なら車体が回りっぱなしになる)
40
+ if @old_pos.truncate == @pos.truncate
41
+ # @handle_dir *= 0.9 # 止まっている場合はハンドルがなかなか効かない(普通の車なら0.0)
42
+ else
43
+ # @handle_adir *= 1.1
44
+ # @handle_dir *= 1.0 # 動いている状態ではハンドルが効きやすい
45
+ end
46
+ @handle_dir *= 0.95 # ハンドルを元に戻す
47
+ handle_gap = 0.1 # ハンドルが曲る最大の角度
48
+ @handle_dir = Stylet::Chore.clamp(@handle_dir, (-handle_gap..handle_gap))
49
+ @body_dir += @handle_dir
50
+ vputs "ハンドル: #{@handle_dir.round(4)}"
51
+ vputs "車体向き: #{@body_dir.round(4)}"
52
+ end
53
+
54
+ # アクセル
55
+ begin
56
+ @accel = 0
57
+ if button.btA.press?
58
+ @accel = 0.06 # 前の進むときの加速度
59
+ end
60
+ if button.btD.press?
61
+ @accel = -0.06 # ブレーキの効き具合い
62
+ end
63
+ @speed += @accel
64
+ @speed *= 0.98 # 空気抵抗
65
+ @speed = Stylet::Chore.clamp(@speed, (-2..2)) # 下るときと進むときの速度のリミット
66
+ vputs "速度: #{@speed.round(4)}"
67
+ end
68
+
69
+ # 移動
70
+ begin
71
+ @old_pos = @pos.clone
72
+ @pos += vec2.angle_at(@body_dir) * @speed
73
+ end
74
+
75
+ # 砲台
76
+ begin
77
+ if joy = joys.first
78
+ @cannon_vector = joy.adjusted_analog_levers[:left]
79
+ if @cannon_vector.magnitude > 0.5
80
+ @cannon_dir = @cannon_vector.angle
81
+ end
82
+ end
83
+ end
84
+
85
+ draw_angle_rect(@pos, :angle => @cannon_dir, :radius => 30, :edge => 0.02)
86
+ draw_angle_rect(@pos, :angle => @body_dir, :radius => 25, :edge => 0.09)
87
+ end
88
+
89
+ run
90
+ end
@@ -0,0 +1,36 @@
1
+ require_relative "helper"
2
+
3
+ class App < Stylet::Base
4
+ include Helper::Cursor
5
+
6
+ setup do
7
+ @dirs = Array.new(2) {0}
8
+ end
9
+
10
+ update do
11
+ angle = (cursor.point - srect.center).angle
12
+ if button.btA.press?
13
+ @dirs[1] = angle
14
+ end
15
+ if button.btB.press?
16
+ @dirs[0] = angle
17
+ end
18
+
19
+ @dirs.each do |dir|
20
+ draw_vector(vec2.angle_at(dir) * srect.height / 4, :origin => srect.center, :label => dir.round(2))
21
+ vputs "dir: #{dir.round(2)}"
22
+ end
23
+
24
+ # 以下はライブラリでメソッド化してある
25
+ # 0 は 1 に向う
26
+ sub = @dirs[1].modulo(1.0) - @dirs[0].modulo(1.0)
27
+ if sub < -1.0 / 2
28
+ sub = 1.0 + sub
29
+ elsif sub > 1.0 / 2
30
+ sub = -1.0 + sub
31
+ end
32
+ @dirs[0] += sub * 0.1
33
+ end
34
+
35
+ run
36
+ end
@@ -0,0 +1,61 @@
1
+ #
2
+ # 放物線 狙撃 時間固定
3
+ #
4
+ # Flashゲーム講座&ASサンプル集【狙撃の計算方法について】
5
+ # http://hakuhin.jp/as/shot.html#SHOT_02_00
6
+ #
7
+ # ・反対側に行っても打てる
8
+ #
9
+ require_relative "helper"
10
+
11
+ class Bullet
12
+ include Stylet::Delegators
13
+
14
+ def initialize(pos, target)
15
+ @pos = pos.clone # 自分の初期値
16
+ @target = target # 相手の初期値
17
+
18
+ @frames = 60 * 1.5 # 到達するまでのフレーム数(小さくすると早くなる)
19
+
20
+ # どちらかを0にすると直線の軌跡になり指定フレームかけて二点間を移動することになる
21
+ @g = 2.0 # 上昇加速度(大きくすると高く上がる)
22
+ @dt = 0.05 # 微分 (結局 y の差分は g * dt で出している)
23
+
24
+ @speed = @target - @pos # 対象までの差分
25
+ @speed.y -= @frames**2 * (@g * @dt) / 2 # 上方向の加速度の初期値が求まる
26
+ @speed /= @frames # フレーム数で分割
27
+
28
+ end
29
+
30
+ def update
31
+ @speed.y += @g * @dt # Yの加速度が変化していく
32
+ @pos += @speed
33
+ draw_triangle(@pos, :radius => 16, :angle => @speed.angle)
34
+ draw_vector(@speed * 8, :origin => @pos) # スピードベクトルの可視化
35
+ end
36
+
37
+ def screen_out?
38
+ @pos.y > srect.max_y
39
+ end
40
+ end
41
+
42
+ class App < Stylet::Base
43
+ include Helper::CursorWithObjectCollection
44
+ include Helper::MovablePoint
45
+
46
+ setup do
47
+ self.title = "放物線 狙撃【時間固定】"
48
+ @points = []
49
+ @points << srect.center + vec2[+srect.w / 4, 0]
50
+ end
51
+
52
+ update do
53
+ update_movable_points(@points)
54
+ @points.each_with_index {|e, i|vputs("p#{i}", :vector => e)}
55
+ if frame_counter.modulo(30) == 1
56
+ @objects << Bullet.new(@points[0], cursor.point)
57
+ end
58
+ end
59
+
60
+ run
61
+ end
@@ -0,0 +1,84 @@
1
+ #
2
+ # 放物線 狙撃 角度固定
3
+ #
4
+ # Flashゲーム講座&ASサンプル集【狙撃の計算方法について】
5
+ # http://hakuhin.jp/as/shot.html#SHOT_02_01
6
+ #
7
+ # ・砲台の角度(45度ぐらいの範囲)の中に対象が入っていないと弾道がおかしくなる
8
+ #
9
+ require_relative "helper"
10
+
11
+ class Bullet
12
+ include Stylet::Delegators
13
+
14
+ attr_accessor :pos
15
+
16
+ def initialize(pos, target, rot)
17
+ @pos = pos.clone # 自分の初期値
18
+ @target = target # 相手の初期値
19
+
20
+ @rot = rot
21
+
22
+ # どちらかを0にすると直線の軌跡になり指定フレームかけて二点間を移動することになる
23
+ @g = 2.0 # 重力加速度
24
+ @dt = 0.05 # 微分 (結局 y の差分は g * dt で出している)
25
+
26
+ @speed = @target - @pos # 対象までの差分
27
+
28
+ t = -(2 * @speed.x * rsin(@rot)) / (rcos(@rot) * @g * @dt) + (2 * @speed.y / (@g * @dt))
29
+ t = Math.sqrt(t.abs)
30
+
31
+ @speed.x /= t
32
+ @speed.y = @speed.x / rcos(@rot) * rsin(@rot)
33
+ end
34
+
35
+ def update
36
+ @speed.y += @g * @dt # Yの加速度が変化していく
37
+ @pos += @speed
38
+
39
+ unless @pos.to_a.any?(&:nan?)
40
+ draw_triangle(@pos, :radius => 16, :angle => @speed.angle)
41
+ draw_vector(@speed * 8, :origin => @pos) # スピードベクトルの可視化
42
+ vputs "speed: #{@speed.round(2)}"
43
+ end
44
+ end
45
+
46
+ def screen_out?
47
+ @pos.to_a.any?(&:nan?) || @pos.y > srect.max_y
48
+ end
49
+ end
50
+
51
+ class App < Stylet::Base
52
+ include Helper::CursorWithObjectCollection
53
+ include Helper::MovablePoint
54
+
55
+ setup do
56
+ self.title = "放物線 狙撃【角度固定】"
57
+
58
+ @points = []
59
+ @points << srect.center + vec2[+srect.w / 4, 0] # 右の点
60
+
61
+ @rot = Stylet::Magic.clock(10, 30)
62
+ end
63
+
64
+ update do
65
+ update_movable_points(@points)
66
+ @points.each_with_index {|e, i|vputs("p#{i}", :vector => e)}
67
+
68
+ # アナログレバーの方向を向く
69
+ if (joy = Stylet.context.joys.first) && (al = joy.adjusted_analog_levers[:right]) && al.magnitude >= 0.5
70
+ if al.magnitude >= 0.5
71
+ @rot = al.angle
72
+ end
73
+ end
74
+ @rot += (1.0 / 24) * (button.btB.repeat_0or1 - button.btC.repeat_0or1)
75
+ draw_vector(vec2.angle_at(@rot).scale(32), :origin => @points[0])
76
+
77
+ # 球発射
78
+ if frame_counter.modulo(30) == 1
79
+ @objects << Bullet.new(@points[0], cursor.point, @rot)
80
+ end
81
+ end
82
+
83
+ run
84
+ end
@@ -0,0 +1,66 @@
1
+ #
2
+ # 放物線 狙撃 横方向のスピード固定
3
+ #
4
+ # Flashゲーム講座&ASサンプル集【狙撃の計算方法について】
5
+ # http://hakuhin.jp/as/shot.html#SHOT_02_02
6
+ #
7
+ # ・反対側に行っても打てる
8
+ #
9
+ require_relative "helper"
10
+
11
+ class Bullet
12
+ include Stylet::Delegators
13
+
14
+ def initialize(pos, target)
15
+ @pos = pos.clone # 自分の初期値
16
+ @target = target # 相手の初期値
17
+
18
+ # どちらかを0にすると直線の軌跡になり指定フレームかけて二点間を移動することになる
19
+ @g = 2.0 # 上昇加速度(大きくすると高く上がる)
20
+ @dt = 0.05 # 微分 (結局 y の差分は g * dt で出している)
21
+
22
+ diff = @target - @pos
23
+ dx = 5 # X方向の速度
24
+ if diff.x < 0 # Flashゲーム講座の説明のコードではこれがなくなっていた
25
+ dx = -dx
26
+ end
27
+ t = diff.x / dx # t = 到達までのフレーム数
28
+ dy = (diff.y - t**2 * (@g * @dt) / 2) / t
29
+ @speed = vec2[dx, dy]
30
+ end
31
+
32
+ def update
33
+ @speed.y += @g * @dt # Yの加速度が変化していく
34
+ @pos += @speed
35
+ unless @pos.to_a.any?(&:nan?)
36
+ draw_triangle(@pos, :radius => 16, :angle => @speed.angle)
37
+ draw_vector(@speed * 8, :origin => @pos) # スピードベクトルの可視化
38
+ vputs "speed: #{@speed.round(2)}"
39
+ end
40
+ end
41
+
42
+ def screen_out?
43
+ @pos.to_a.any?(&:nan?) || @pos.y > srect.max_y
44
+ end
45
+ end
46
+
47
+ class App < Stylet::Base
48
+ include Helper::CursorWithObjectCollection
49
+ include Helper::MovablePoint
50
+
51
+ setup do
52
+ self.title = "放物線 狙撃【横方向の速度固定】"
53
+ @points = []
54
+ @points << srect.center + vec2[+srect.w / 4, 0]
55
+ end
56
+
57
+ update do
58
+ update_movable_points(@points)
59
+ @points.each_with_index {|e, i|vputs("p#{i}", :vector => e)}
60
+ if frame_counter.modulo(30) == 1
61
+ @objects << Bullet.new(@points[0], cursor.point)
62
+ end
63
+ end
64
+
65
+ run
66
+ end