kiwiengine 0.0.1-alpha → 0.5.2

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 (438) hide show
  1. package/README.ko.md +550 -0
  2. package/README.md +575 -4
  3. package/examples/collision-test/assets/cat.png +0 -0
  4. package/examples/collision-test/dist/game.js +2 -0
  5. package/examples/collision-test/dist/game.js.LICENSE.txt +35 -0
  6. package/examples/collision-test/index.ts +30 -0
  7. package/examples/dom-particle-test/assets/bird.png +0 -0
  8. package/examples/dom-particle-test/dist/game.js +2 -0
  9. package/examples/dom-particle-test/dist/game.js.LICENSE.txt +35 -0
  10. package/examples/dom-particle-test/index.html +24 -0
  11. package/examples/dom-particle-test/index.ts +27 -0
  12. package/examples/dom-sprite-test/assets/bird.png +0 -0
  13. package/examples/dom-sprite-test/assets/fire.png +0 -0
  14. package/examples/dom-sprite-test/assets/run.png +0 -0
  15. package/examples/dom-sprite-test/dist/game.js +2 -0
  16. package/examples/dom-sprite-test/dist/game.js.LICENSE.txt +35 -0
  17. package/examples/dom-sprite-test/index.html +24 -0
  18. package/examples/dom-sprite-test/index.ts +38 -0
  19. package/examples/dom-test/dist/game.js +2 -0
  20. package/examples/dom-test/dist/game.js.LICENSE.txt +35 -0
  21. package/examples/dom-test/index.html +24 -0
  22. package/examples/dom-test/index.ts +22 -0
  23. package/examples/flappy-cat/assets/bgm/bgm.ogg +0 -0
  24. package/examples/flappy-cat/assets/images/base.png +0 -0
  25. package/examples/flappy-cat/assets/images/bg.png +0 -0
  26. package/examples/flappy-cat/assets/images/cat.png +0 -0
  27. package/examples/flappy-cat/assets/images/pipe-green.png +0 -0
  28. package/examples/flappy-cat/assets/images/pipe-red.png +0 -0
  29. package/examples/flappy-cat/assets/sfx/die.wav +0 -0
  30. package/examples/flappy-cat/assets/sfx/hit.wav +0 -0
  31. package/examples/flappy-cat/assets/sfx/point.wav +0 -0
  32. package/examples/flappy-cat/assets/sfx/wing.wav +0 -0
  33. package/examples/flappy-cat/dist/game.js +0 -0
  34. package/examples/flappy-cat/index.html +24 -0
  35. package/examples/flappy-cat/index.ts +0 -0
  36. package/examples/particle-test/assets/bird.png +0 -0
  37. package/examples/particle-test/dist/game.js +2 -0
  38. package/examples/particle-test/dist/game.js.LICENSE.txt +35 -0
  39. package/examples/particle-test/index.html +24 -0
  40. package/examples/particle-test/index.ts +30 -0
  41. package/examples/renderer-test/dist/game.js +2 -0
  42. package/examples/renderer-test/dist/game.js.LICENSE.txt +35 -0
  43. package/examples/renderer-test/index.html +24 -0
  44. package/examples/renderer-test/index.ts +9 -0
  45. package/examples/simple-battle/assets/bgm/battle.mp3 +0 -0
  46. package/examples/simple-battle/assets/bitmap-fonts/white-peaberry.fnt +107 -0
  47. package/examples/simple-battle/assets/bitmap-fonts/white-peaberry.png +0 -0
  48. package/examples/simple-battle/assets/joystick/joystick.png +0 -0
  49. package/examples/simple-battle/assets/joystick/knob.png +0 -0
  50. package/examples/simple-battle/assets/sfx/hero/die/die.wav +0 -0
  51. package/examples/simple-battle/assets/sfx/hero/heal/heal.wav +0 -0
  52. package/examples/simple-battle/assets/sfx/hero/hit/hit1.wav +0 -0
  53. package/examples/simple-battle/assets/sfx/hero/hit/hit2.wav +0 -0
  54. package/examples/simple-battle/assets/sfx/hero/hit/hit3.wav +0 -0
  55. package/examples/simple-battle/assets/sfx/hero/miss/miss1.wav +0 -0
  56. package/examples/simple-battle/assets/sfx/hero/miss/miss2.wav +0 -0
  57. package/examples/simple-battle/assets/sfx/hero/miss/miss3.wav +0 -0
  58. package/examples/simple-battle/assets/sfx/orc/die/die.wav +0 -0
  59. package/examples/simple-battle/assets/sfx/orc/hit/hit1.wav +0 -0
  60. package/examples/simple-battle/assets/sfx/orc/hit/hit2.wav +0 -0
  61. package/examples/simple-battle/assets/sfx/orc/hit/hit3.wav +0 -0
  62. package/examples/simple-battle/assets/sfx/orc/miss/miss1.wav +0 -0
  63. package/examples/simple-battle/assets/sfx/orc/miss/miss2.wav +0 -0
  64. package/examples/simple-battle/assets/sfx/orc/miss/miss3.wav +0 -0
  65. package/examples/simple-battle/assets/spritesheets/hero-atlas.json +289 -0
  66. package/examples/simple-battle/assets/spritesheets/hero.png +0 -0
  67. package/examples/simple-battle/assets/spritesheets/orc-atlas.json +289 -0
  68. package/examples/simple-battle/assets/spritesheets/orc.png +0 -0
  69. package/examples/simple-battle/assets/spritesheets/potion-atlas.json +83 -0
  70. package/examples/simple-battle/assets/spritesheets/potion.png +0 -0
  71. package/examples/simple-battle/dist/game.js +2 -0
  72. package/examples/simple-battle/dist/game.js.LICENSE.txt +35 -0
  73. package/examples/simple-battle/hud/damage-text.ts +45 -0
  74. package/examples/simple-battle/hud/heal-text.ts +45 -0
  75. package/examples/simple-battle/hud/hp-bar.ts +38 -0
  76. package/examples/simple-battle/index.html +24 -0
  77. package/examples/simple-battle/index.ts +41 -0
  78. package/examples/simple-battle/objects/character.ts +95 -0
  79. package/examples/simple-battle/objects/hero.ts +113 -0
  80. package/examples/simple-battle/objects/orc.ts +109 -0
  81. package/examples/simple-battle/objects/potion.ts +29 -0
  82. package/examples/simple-battle/stage.ts +176 -0
  83. package/examples/spine-test/assets/spine/spineboy.atlas +95 -0
  84. package/examples/spine-test/assets/spine/spineboy.png +0 -0
  85. package/examples/spine-test/assets/spine/spineboy.skel +0 -0
  86. package/examples/spine-test/dist/game.js +2 -0
  87. package/examples/spine-test/dist/game.js.LICENSE.txt +35 -0
  88. package/examples/spine-test/index.html +24 -0
  89. package/examples/spine-test/index.ts +29 -0
  90. package/examples/sprite-test/assets/bird.png +0 -0
  91. package/examples/sprite-test/assets/fire.png +0 -0
  92. package/examples/sprite-test/dist/game.js +2 -0
  93. package/examples/sprite-test/dist/game.js.LICENSE.txt +35 -0
  94. package/examples/sprite-test/index.html +24 -0
  95. package/examples/sprite-test/index.ts +41 -0
  96. package/examples/tsconfig.json +2 -1
  97. package/examples/webpack.config.js +14 -3
  98. package/jest.config.ts +10 -0
  99. package/lib/asset/audio.js +47 -11
  100. package/lib/asset/audio.js.map +1 -1
  101. package/lib/asset/loaders/audio.js +3 -3
  102. package/lib/asset/loaders/audio.js.map +1 -1
  103. package/lib/asset/loaders/binary.js +3 -3
  104. package/lib/asset/loaders/binary.js.map +1 -1
  105. package/lib/asset/loaders/bitmap-font.js +71 -0
  106. package/lib/asset/loaders/bitmap-font.js.map +1 -0
  107. package/lib/asset/loaders/font.js +1 -1
  108. package/lib/asset/loaders/font.js.map +1 -1
  109. package/lib/asset/loaders/loader.js +17 -12
  110. package/lib/asset/loaders/loader.js.map +1 -1
  111. package/lib/asset/loaders/spritesheet.js +6 -7
  112. package/lib/asset/loaders/spritesheet.js.map +1 -1
  113. package/lib/asset/loaders/text.js +3 -3
  114. package/lib/asset/loaders/text.js.map +1 -1
  115. package/lib/asset/loaders/texture.js +5 -4
  116. package/lib/asset/loaders/texture.js.map +1 -1
  117. package/lib/asset/preload.js +60 -56
  118. package/lib/asset/preload.js.map +1 -1
  119. package/lib/collision/check-collision.js +804 -0
  120. package/lib/collision/check-collision.js.map +1 -0
  121. package/lib/collision/check-collision.test.js +300 -0
  122. package/lib/collision/check-collision.test.js.map +1 -0
  123. package/lib/collision/colliders.js +8 -0
  124. package/lib/collision/colliders.js.map +1 -0
  125. package/lib/debug.js.map +1 -0
  126. package/lib/dom/dom-animated-sprite.js +121 -0
  127. package/lib/dom/dom-animated-sprite.js.map +1 -0
  128. package/lib/dom/dom-game-object.js +106 -0
  129. package/lib/dom/dom-game-object.js.map +1 -0
  130. package/lib/dom/dom-particle.js +105 -0
  131. package/lib/dom/dom-particle.js.map +1 -0
  132. package/lib/dom/dom-preload.js +43 -0
  133. package/lib/dom/dom-preload.js.map +1 -0
  134. package/lib/dom/dom-sprite.js +40 -0
  135. package/lib/dom/dom-sprite.js.map +1 -0
  136. package/lib/dom/dom-texture-loader.js +36 -0
  137. package/lib/dom/dom-texture-loader.js.map +1 -0
  138. package/lib/dom/dom-utils.js +20 -0
  139. package/lib/dom/dom-utils.js.map +1 -0
  140. package/lib/index copy.js +16 -0
  141. package/lib/index copy.js.map +1 -0
  142. package/lib/index.js +35 -10
  143. package/lib/index.js.map +1 -1
  144. package/lib/input/joystick.js +262 -0
  145. package/lib/input/joystick.js.map +1 -0
  146. package/lib/node/core/dirty-number.js +38 -0
  147. package/lib/node/core/dirty-number.js.map +1 -0
  148. package/lib/node/core/game-node.js +63 -0
  149. package/lib/node/core/game-node.js.map +1 -0
  150. package/lib/node/core/game-object.js +8 -0
  151. package/lib/node/core/game-object.js.map +1 -0
  152. package/lib/node/core/renderable.js +52 -0
  153. package/lib/node/core/renderable.js.map +1 -0
  154. package/lib/node/core/transform.js +59 -0
  155. package/lib/node/core/transform.js.map +1 -0
  156. package/lib/node/core/transformable.js +85 -0
  157. package/lib/node/core/transformable.js.map +1 -0
  158. package/lib/node/ext/animated-sprite.js +96 -0
  159. package/lib/node/ext/animated-sprite.js.map +1 -0
  160. package/lib/node/ext/bitmap-text.js +89 -0
  161. package/lib/node/ext/bitmap-text.js.map +1 -0
  162. package/lib/node/ext/circle.js +28 -0
  163. package/lib/node/ext/circle.js.map +1 -0
  164. package/lib/node/ext/deplay.js +20 -0
  165. package/lib/node/ext/deplay.js.map +1 -0
  166. package/lib/node/ext/dom-container.js +51 -0
  167. package/lib/node/ext/dom-container.js.map +1 -0
  168. package/lib/node/ext/interval.js +20 -0
  169. package/lib/node/ext/interval.js.map +1 -0
  170. package/lib/node/ext/particle.js +98 -0
  171. package/lib/node/ext/particle.js.map +1 -0
  172. package/lib/node/ext/rectangle.js +32 -0
  173. package/lib/node/ext/rectangle.js.map +1 -0
  174. package/lib/node/ext/spine.js +272 -0
  175. package/lib/node/ext/spine.js.map +1 -0
  176. package/lib/node/ext/sprite.js +42 -0
  177. package/lib/node/ext/sprite.js.map +1 -0
  178. package/lib/node/physics/physics-object.js +112 -0
  179. package/lib/node/physics/physics-object.js.map +1 -0
  180. package/lib/node/physics/physics-world.js +27 -0
  181. package/lib/node/physics/physics-world.js.map +1 -0
  182. package/lib/renderer/camera.js +19 -0
  183. package/lib/renderer/camera.js.map +1 -0
  184. package/lib/renderer/container-manager.js +29 -0
  185. package/lib/renderer/container-manager.js.map +1 -0
  186. package/lib/renderer/fps-display.js +18 -0
  187. package/lib/renderer/fps-display.js.map +1 -0
  188. package/lib/renderer/layer.js +12 -0
  189. package/lib/renderer/layer.js.map +1 -0
  190. package/lib/renderer/renderer.js +145 -0
  191. package/lib/renderer/renderer.js.map +1 -0
  192. package/lib/renderer/ticker.js +56 -0
  193. package/lib/renderer/ticker.js.map +1 -0
  194. package/lib/renderer/ticker.test.js +241 -0
  195. package/lib/renderer/ticker.test.js.map +1 -0
  196. package/lib/types/asset/audio.d.ts +5 -4
  197. package/lib/types/asset/audio.d.ts.map +1 -1
  198. package/lib/types/asset/loaders/audio.d.ts +1 -1
  199. package/lib/types/asset/loaders/audio.d.ts.map +1 -1
  200. package/lib/types/asset/loaders/binary.d.ts +1 -1
  201. package/lib/types/asset/loaders/binary.d.ts.map +1 -1
  202. package/lib/types/asset/loaders/bitmap-font.d.ts +16 -0
  203. package/lib/types/asset/loaders/bitmap-font.d.ts.map +1 -0
  204. package/lib/types/asset/loaders/font.d.ts +1 -1
  205. package/lib/types/asset/loaders/font.d.ts.map +1 -1
  206. package/lib/types/asset/loaders/loader.d.ts +6 -6
  207. package/lib/types/asset/loaders/loader.d.ts.map +1 -1
  208. package/lib/types/asset/loaders/spritesheet.d.ts +5 -5
  209. package/lib/types/asset/loaders/spritesheet.d.ts.map +1 -1
  210. package/lib/types/asset/loaders/text.d.ts +1 -1
  211. package/lib/types/asset/loaders/text.d.ts.map +1 -1
  212. package/lib/types/asset/loaders/texture.d.ts +2 -2
  213. package/lib/types/asset/loaders/texture.d.ts.map +1 -1
  214. package/lib/types/asset/preload.d.ts +5 -3
  215. package/lib/types/asset/preload.d.ts.map +1 -1
  216. package/lib/types/bitmap-font.js +2 -0
  217. package/lib/types/bitmap-font.js.map +1 -0
  218. package/lib/types/collision/check-collision.d.ts +4 -0
  219. package/lib/types/collision/check-collision.d.ts.map +1 -0
  220. package/lib/types/collision/check-collision.test.d.ts +2 -0
  221. package/lib/types/collision/check-collision.test.d.ts.map +1 -0
  222. package/lib/types/collision/colliders.d.ts +34 -0
  223. package/lib/types/collision/colliders.d.ts.map +1 -0
  224. package/lib/types/debug.d.ts.map +1 -0
  225. package/lib/types/dom/dom-animated-sprite.d.ts +29 -0
  226. package/lib/types/dom/dom-animated-sprite.d.ts.map +1 -0
  227. package/lib/types/dom/dom-game-object.d.ts +44 -0
  228. package/lib/types/dom/dom-game-object.d.ts.map +1 -0
  229. package/lib/types/dom/dom-particle.d.ts +30 -0
  230. package/lib/types/dom/dom-particle.d.ts.map +1 -0
  231. package/lib/types/dom/dom-preload.d.ts +2 -0
  232. package/lib/types/dom/dom-preload.d.ts.map +1 -0
  233. package/lib/types/dom/dom-sprite.d.ts +13 -0
  234. package/lib/types/dom/dom-sprite.d.ts.map +1 -0
  235. package/lib/types/dom/dom-texture-loader.d.ts +8 -0
  236. package/lib/types/dom/dom-texture-loader.d.ts.map +1 -0
  237. package/lib/types/dom/dom-utils.d.ts +3 -0
  238. package/lib/types/dom/dom-utils.d.ts.map +1 -0
  239. package/lib/types/index copy.d.ts +16 -0
  240. package/lib/types/index copy.d.ts.map +1 -0
  241. package/lib/types/index.d.ts +25 -11
  242. package/lib/types/index.d.ts.map +1 -1
  243. package/lib/types/input/joystick.d.ts +28 -0
  244. package/lib/types/input/joystick.d.ts.map +1 -0
  245. package/lib/types/node/core/dirty-number.d.ts +17 -0
  246. package/lib/types/node/core/dirty-number.d.ts.map +1 -0
  247. package/lib/types/node/core/game-node.d.ts +16 -0
  248. package/lib/types/node/core/game-node.d.ts.map +1 -0
  249. package/lib/types/node/core/game-object.d.ts +8 -0
  250. package/lib/types/node/core/game-object.d.ts.map +1 -0
  251. package/lib/types/node/core/renderable.d.ts +22 -0
  252. package/lib/types/node/core/renderable.d.ts.map +1 -0
  253. package/lib/types/node/core/transform.d.ts +25 -0
  254. package/lib/types/node/core/transform.d.ts.map +1 -0
  255. package/lib/types/node/core/transformable.d.ts +44 -0
  256. package/lib/types/node/core/transformable.d.ts.map +1 -0
  257. package/lib/types/node/ext/animated-sprite.d.ts +28 -0
  258. package/lib/types/node/ext/animated-sprite.d.ts.map +1 -0
  259. package/lib/types/node/ext/bitmap-text.d.ts +14 -0
  260. package/lib/types/node/ext/bitmap-text.d.ts.map +1 -0
  261. package/lib/types/node/ext/circle.d.ts +19 -0
  262. package/lib/types/node/ext/circle.d.ts.map +1 -0
  263. package/lib/types/node/ext/deplay.d.ts +8 -0
  264. package/lib/types/node/ext/deplay.d.ts.map +1 -0
  265. package/lib/types/node/ext/dom-container.d.ts +12 -0
  266. package/lib/types/node/ext/dom-container.d.ts.map +1 -0
  267. package/lib/types/node/ext/interval.d.ts +9 -0
  268. package/lib/types/node/ext/interval.d.ts.map +1 -0
  269. package/lib/types/node/ext/particle.d.ts +30 -0
  270. package/lib/types/node/ext/particle.d.ts.map +1 -0
  271. package/lib/types/node/ext/rectangle.d.ts +22 -0
  272. package/lib/types/node/ext/rectangle.d.ts.map +1 -0
  273. package/lib/types/node/ext/spine.d.ts +36 -0
  274. package/lib/types/node/ext/spine.d.ts.map +1 -0
  275. package/lib/types/node/ext/sprite.d.ts +13 -0
  276. package/lib/types/node/ext/sprite.d.ts.map +1 -0
  277. package/lib/types/node/physics/physics-object.d.ts +38 -0
  278. package/lib/types/node/physics/physics-object.d.ts.map +1 -0
  279. package/lib/types/node/physics/physics-world.d.ts +18 -0
  280. package/lib/types/node/physics/physics-world.d.ts.map +1 -0
  281. package/lib/types/renderer/camera.d.ts +13 -0
  282. package/lib/types/renderer/camera.d.ts.map +1 -0
  283. package/lib/types/renderer/container-manager.d.ts +9 -0
  284. package/lib/types/renderer/container-manager.d.ts.map +1 -0
  285. package/lib/types/renderer/fps-display.d.ts +7 -0
  286. package/lib/types/renderer/fps-display.d.ts.map +1 -0
  287. package/lib/types/renderer/layer.d.ts +7 -0
  288. package/lib/types/renderer/layer.d.ts.map +1 -0
  289. package/lib/types/renderer/renderer.d.ts +40 -0
  290. package/lib/types/renderer/renderer.d.ts.map +1 -0
  291. package/lib/types/renderer/ticker.d.ts +6 -0
  292. package/lib/types/renderer/ticker.d.ts.map +1 -0
  293. package/lib/types/renderer/ticker.test.d.ts +40 -0
  294. package/lib/types/renderer/ticker.test.d.ts.map +1 -0
  295. package/lib/types/types/bitmap-font.d.ts +18 -0
  296. package/lib/types/types/bitmap-font.d.ts.map +1 -0
  297. package/lib/types/utils/device.d.ts +2 -0
  298. package/lib/types/utils/device.d.ts.map +1 -0
  299. package/lib/utils/device.js +2 -0
  300. package/lib/utils/device.js.map +1 -0
  301. package/package.json +8 -7
  302. package/src/asset/audio.ts +134 -90
  303. package/src/asset/loaders/audio.ts +19 -19
  304. package/src/asset/loaders/binary.ts +16 -16
  305. package/src/asset/loaders/bitmap-font.ts +85 -0
  306. package/src/asset/loaders/font.ts +14 -14
  307. package/src/asset/loaders/loader.ts +27 -23
  308. package/src/asset/loaders/spritesheet.ts +34 -36
  309. package/src/asset/loaders/text.ts +15 -15
  310. package/src/asset/loaders/texture.ts +29 -28
  311. package/src/asset/preload.ts +75 -64
  312. package/src/collision/check-collision.test.ts +349 -0
  313. package/src/collision/check-collision.ts +821 -0
  314. package/src/collision/colliders.ts +19 -0
  315. package/src/debug.ts +5 -0
  316. package/src/dom/dom-animated-sprite.ts +153 -0
  317. package/src/dom/dom-game-object.ts +131 -0
  318. package/src/dom/dom-particle.ts +151 -0
  319. package/src/dom/dom-preload.ts +54 -0
  320. package/src/dom/dom-sprite.ts +50 -0
  321. package/src/dom/dom-texture-loader.ts +44 -0
  322. package/src/dom/dom-utils.ts +19 -0
  323. package/src/index.ts +46 -13
  324. package/src/input/joystick.ts +316 -0
  325. package/src/node/core/dirty-number.ts +45 -0
  326. package/src/node/core/game-node.ts +74 -0
  327. package/src/node/core/game-object.ts +11 -0
  328. package/src/node/core/renderable.ts +65 -0
  329. package/src/node/core/transform.ts +70 -0
  330. package/src/node/core/transformable.ts +111 -0
  331. package/src/node/ext/animated-sprite.ts +123 -0
  332. package/src/node/ext/bitmap-text.ts +109 -0
  333. package/src/node/ext/circle.ts +40 -0
  334. package/src/node/ext/deplay.ts +24 -0
  335. package/src/node/ext/dom-container.ts +62 -0
  336. package/src/node/ext/interval.ts +24 -0
  337. package/src/node/ext/particle.ts +142 -0
  338. package/src/node/ext/rectangle.ts +51 -0
  339. package/src/node/ext/spine.ts +323 -0
  340. package/src/node/ext/sprite.ts +53 -0
  341. package/src/node/physics/physics-object.ts +156 -0
  342. package/src/node/physics/physics-world.ts +40 -0
  343. package/src/renderer/camera.ts +25 -0
  344. package/src/renderer/container-manager.ts +36 -0
  345. package/src/renderer/fps-display.ts +21 -0
  346. package/src/renderer/layer.ts +15 -0
  347. package/src/renderer/renderer.ts +180 -0
  348. package/src/renderer/ticker.test.ts +325 -0
  349. package/src/renderer/ticker.ts +54 -0
  350. package/src/types/bitmap-font.ts +19 -0
  351. package/src/utils/device.ts +1 -0
  352. package/examples/test-dom/index.ts +0 -21
  353. package/lib/game-object/game-object-physics.js +0 -188
  354. package/lib/game-object/game-object-physics.js.map +0 -1
  355. package/lib/game-object/game-object-rendering.js +0 -35
  356. package/lib/game-object/game-object-rendering.js.map +0 -1
  357. package/lib/game-object/game-object.js +0 -162
  358. package/lib/game-object/game-object.js.map +0 -1
  359. package/lib/game-object/transform.js +0 -118
  360. package/lib/game-object/transform.js.map +0 -1
  361. package/lib/game-object-ext/animated-sprite.js +0 -117
  362. package/lib/game-object-ext/animated-sprite.js.map +0 -1
  363. package/lib/game-object-ext/dom-container.js +0 -56
  364. package/lib/game-object-ext/dom-container.js.map +0 -1
  365. package/lib/game-object-ext/rect.js +0 -30
  366. package/lib/game-object-ext/rect.js.map +0 -1
  367. package/lib/game-object-ext/spine.js +0 -206
  368. package/lib/game-object-ext/spine.js.map +0 -1
  369. package/lib/game-object-ext/sprite.js +0 -46
  370. package/lib/game-object-ext/sprite.js.map +0 -1
  371. package/lib/game-object-ext/text.js +0 -68
  372. package/lib/game-object-ext/text.js.map +0 -1
  373. package/lib/game-object-ext/tiling-sprite.js +0 -64
  374. package/lib/game-object-ext/tiling-sprite.js.map +0 -1
  375. package/lib/types/game-object/game-object-physics.d.ts +0 -42
  376. package/lib/types/game-object/game-object-physics.d.ts.map +0 -1
  377. package/lib/types/game-object/game-object-rendering.d.ts +0 -15
  378. package/lib/types/game-object/game-object-rendering.d.ts.map +0 -1
  379. package/lib/types/game-object/game-object.d.ts +0 -81
  380. package/lib/types/game-object/game-object.d.ts.map +0 -1
  381. package/lib/types/game-object/transform.d.ts +0 -43
  382. package/lib/types/game-object/transform.d.ts.map +0 -1
  383. package/lib/types/game-object-ext/animated-sprite.d.ts +0 -29
  384. package/lib/types/game-object-ext/animated-sprite.d.ts.map +0 -1
  385. package/lib/types/game-object-ext/dom-container.d.ts +0 -16
  386. package/lib/types/game-object-ext/dom-container.d.ts.map +0 -1
  387. package/lib/types/game-object-ext/rect.d.ts +0 -17
  388. package/lib/types/game-object-ext/rect.d.ts.map +0 -1
  389. package/lib/types/game-object-ext/spine.d.ts +0 -35
  390. package/lib/types/game-object-ext/spine.d.ts.map +0 -1
  391. package/lib/types/game-object-ext/sprite.d.ts +0 -14
  392. package/lib/types/game-object-ext/sprite.d.ts.map +0 -1
  393. package/lib/types/game-object-ext/text.d.ts +0 -26
  394. package/lib/types/game-object-ext/text.d.ts.map +0 -1
  395. package/lib/types/game-object-ext/tiling-sprite.d.ts +0 -20
  396. package/lib/types/game-object-ext/tiling-sprite.d.ts.map +0 -1
  397. package/lib/types/utils/debug.d.ts.map +0 -1
  398. package/lib/types/utils/go.d.ts +0 -26
  399. package/lib/types/utils/go.d.ts.map +0 -1
  400. package/lib/types/world/world-debug.d.ts +0 -11
  401. package/lib/types/world/world-debug.d.ts.map +0 -1
  402. package/lib/types/world/world-physics.d.ts +0 -16
  403. package/lib/types/world/world-physics.d.ts.map +0 -1
  404. package/lib/types/world/world-rendering.d.ts +0 -28
  405. package/lib/types/world/world-rendering.d.ts.map +0 -1
  406. package/lib/types/world/world.d.ts +0 -38
  407. package/lib/types/world/world.d.ts.map +0 -1
  408. package/lib/utils/debug.js.map +0 -1
  409. package/lib/utils/go.js +0 -33
  410. package/lib/utils/go.js.map +0 -1
  411. package/lib/world/world-debug.js +0 -89
  412. package/lib/world/world-debug.js.map +0 -1
  413. package/lib/world/world-physics.js +0 -45
  414. package/lib/world/world-physics.js.map +0 -1
  415. package/lib/world/world-rendering.js +0 -123
  416. package/lib/world/world-rendering.js.map +0 -1
  417. package/lib/world/world.js +0 -147
  418. package/lib/world/world.js.map +0 -1
  419. package/src/game-object/game-object-physics.ts +0 -191
  420. package/src/game-object/game-object-rendering.ts +0 -27
  421. package/src/game-object/game-object.ts +0 -190
  422. package/src/game-object/transform.ts +0 -164
  423. package/src/game-object-ext/animated-sprite.ts +0 -140
  424. package/src/game-object-ext/dom-container.ts +0 -67
  425. package/src/game-object-ext/rect.ts +0 -40
  426. package/src/game-object-ext/spine.ts +0 -235
  427. package/src/game-object-ext/sprite.ts +0 -55
  428. package/src/game-object-ext/text.ts +0 -83
  429. package/src/game-object-ext/tiling-sprite.ts +0 -73
  430. package/src/utils/debug.ts +0 -5
  431. package/src/utils/go.ts +0 -53
  432. package/src/world/world-debug.ts +0 -114
  433. package/src/world/world-physics.ts +0 -52
  434. package/src/world/world-rendering.ts +0 -145
  435. package/src/world/world.ts +0 -171
  436. /package/examples/{test-dom → collision-test}/index.html +0 -0
  437. /package/lib/{utils/debug.js → debug.js} +0 -0
  438. /package/lib/types/{utils/debug.d.ts → debug.d.ts} +0 -0
@@ -1,67 +1,65 @@
1
- import { Spritesheet, SpritesheetData } from 'pixi.js';
2
- import { Loader } from './loader';
3
- import { textureLoader } from './texture';
1
+ import { Spritesheet, SpritesheetData } from 'pixi.js'
2
+ import { Loader } from './loader'
3
+ import { textureLoader } from './texture'
4
4
 
5
- const atlasIdCache = new WeakMap<object, Map<string, string>>();
6
- let idCounter = 0;
5
+ const atlasIdCache = new WeakMap<SpritesheetData, Map<string, string>>()
6
+ let idCounter = 0
7
7
 
8
- function getCachedId(src: string, atlas: object): string {
9
- let innerMap = atlasIdCache.get(atlas);
8
+ export function getCachedAtlasId(src: string, atlas: SpritesheetData): string {
9
+ let innerMap = atlasIdCache.get(atlas)
10
10
  if (!innerMap) {
11
- innerMap = new Map<string, string>();
12
- atlasIdCache.set(atlas, innerMap);
11
+ innerMap = new Map<string, string>()
12
+ atlasIdCache.set(atlas, innerMap)
13
13
  }
14
14
 
15
15
  if (!innerMap.has(src)) {
16
- innerMap.set(src, `${src}#${idCounter++}`);
16
+ innerMap.set(src, `${src}#${idCounter++}`)
17
17
  }
18
18
 
19
- return innerMap.get(src)!;
19
+ return innerMap.get(src)!
20
20
  }
21
21
 
22
22
  class SpritesheetLoader extends Loader<Spritesheet> {
23
- #idToSrc: Map<string, string> = new Map();
23
+ #idToSrc = new Map<string, string>();
24
24
 
25
- protected override async _load(id: string, src: string, atlas: SpritesheetData) {
26
- this.#idToSrc.set(id, src);
25
+ protected override async doLoad(id: string, src: string, atlas: SpritesheetData) {
26
+ this.#idToSrc.set(id, src)
27
27
 
28
28
  const loadingPromise = (async () => {
29
- const texture = await textureLoader.load(src);
29
+ const texture = await textureLoader.load(src)
30
30
  if (!texture) {
31
- console.error(`Failed to load texture: ${src}`);
32
- return;
31
+ console.error(`Failed to load texture: ${src}`)
32
+ return
33
33
  }
34
34
 
35
- const spritesheet = new Spritesheet(texture, atlas);
36
- await spritesheet.parse();
35
+ const spritesheet = new Spritesheet(texture, atlas)
36
+ await spritesheet.parse()
37
37
 
38
- this.loadingPromises.delete(id);
38
+ this.loadingPromises.delete(id)
39
39
 
40
40
  if (this.hasActiveRef(id)) {
41
- if (this.loadedAssets.has(id)) {
42
- textureLoader.release(src);
43
- console.error(`Spritesheet already exists: ${src}`);
41
+ if (this.cachedAssets.has(id)) {
42
+ textureLoader.release(src)
43
+ console.error(`Spritesheet already exists: ${src}`)
44
44
  } else {
45
- this.loadedAssets.set(id, spritesheet);
46
- return spritesheet;
45
+ this.cachedAssets.set(id, spritesheet)
46
+ return spritesheet
47
47
  }
48
48
  } else {
49
- textureLoader.release(src);
49
+ textureLoader.release(src)
50
50
  }
51
- })();
51
+ })()
52
52
 
53
- this.loadingPromises.set(id, loadingPromise);
54
- return await loadingPromise;
53
+ this.loadingPromises.set(id, loadingPromise)
54
+ return await loadingPromise
55
55
  }
56
56
 
57
- protected override _dispose(id: string, spritesheet: Spritesheet) {
58
- spritesheet.destroy();
57
+ protected override cleanup(id: string, spritesheet: Spritesheet) {
58
+ spritesheet.destroy()
59
59
 
60
- const src = this.#idToSrc.get(id);
61
- if (src) textureLoader.release(src);
60
+ const src = this.#idToSrc.get(id)
61
+ if (src) textureLoader.release(src)
62
62
  }
63
63
  }
64
64
 
65
- const spritesheetLoader = new SpritesheetLoader();
66
-
67
- export { getCachedId, spritesheetLoader };
65
+ export const spritesheetLoader = new SpritesheetLoader()
@@ -1,31 +1,31 @@
1
- import { Loader } from './loader';
1
+ import { Loader } from './loader'
2
2
 
3
3
  class TextLoader extends Loader<string> {
4
- protected override async _load(src: string) {
4
+ protected override async doLoad(src: string) {
5
5
  const loadingPromise = (async () => {
6
- const response = await fetch(src);
6
+ const response = await fetch(src)
7
7
  if (!response.ok) {
8
- console.error(`Failed to load text: ${src}`);
9
- return;
8
+ console.error(`Failed to load text: ${src}`)
9
+ return
10
10
  }
11
11
 
12
- const text = await response.text();
12
+ const text = await response.text()
13
13
 
14
- this.loadingPromises.delete(src);
14
+ this.loadingPromises.delete(src)
15
15
 
16
16
  if (this.hasActiveRef(src)) {
17
- if (this.loadedAssets.has(src)) {
18
- console.error(`Text already exists: ${src}`);
17
+ if (this.cachedAssets.has(src)) {
18
+ console.error(`Text already exists: ${src}`)
19
19
  } else {
20
- this.loadedAssets.set(src, text);
21
- return text;
20
+ this.cachedAssets.set(src, text)
21
+ return text
22
22
  }
23
23
  }
24
- })();
24
+ })()
25
25
 
26
- this.loadingPromises.set(src, loadingPromise);
27
- return await loadingPromise;
26
+ this.loadingPromises.set(src, loadingPromise)
27
+ return await loadingPromise
28
28
  }
29
29
  }
30
30
 
31
- export const textLoader = new TextLoader();
31
+ export const textLoader = new TextLoader()
@@ -1,46 +1,47 @@
1
- import { Texture } from 'pixi.js';
2
- import { Loader } from './loader';
1
+ import { Texture } from 'pixi.js'
2
+ import { Loader } from './loader'
3
3
 
4
4
  class TextureLoader extends Loader<Texture> {
5
- protected override async _load(src: string) {
5
+ protected override async doLoad(src: string) {
6
6
  const loadingPromise = new Promise<Texture | undefined>((resolve) => {
7
- const image = new Image();
8
- image.crossOrigin = 'anonymous';
9
- image.src = src;
7
+ const image = new Image()
8
+ image.crossOrigin = 'anonymous'
9
+ image.src = src
10
10
 
11
11
  image.onload = () => {
12
- this.loadingPromises.delete(src);
12
+ this.loadingPromises.delete(src)
13
13
 
14
14
  if (!this.hasActiveRef(src)) {
15
- resolve(undefined);
16
- return;
15
+ resolve(undefined)
16
+ return
17
17
  }
18
18
 
19
- if (this.loadedAssets.has(src)) {
20
- console.error(`Texture already loaded: ${src}`);
21
- resolve(undefined);
22
- return;
19
+ if (this.cachedAssets.has(src)) {
20
+ console.error(`Texture already loaded: ${src}`)
21
+ resolve(undefined)
22
+ return
23
23
  }
24
24
 
25
- const texture = Texture.from(image);
26
- this.loadedAssets.set(src, texture);
27
- resolve(texture);
28
- };
25
+ const texture = Texture.from(image)
26
+ texture.source.scaleMode = 'nearest'
27
+ this.cachedAssets.set(src, texture)
28
+ resolve(texture)
29
+ }
29
30
 
30
31
  image.onerror = (error) => {
31
- this.loadingPromises.delete(src);
32
- console.error(`Failed to load texture: ${src}`, error);
33
- resolve(undefined);
34
- };
35
- });
36
-
37
- this.loadingPromises.set(src, loadingPromise);
38
- return await loadingPromise;
32
+ this.loadingPromises.delete(src)
33
+ console.error(`Failed to load texture: ${src}`, error)
34
+ resolve(undefined)
35
+ }
36
+ })
37
+
38
+ this.loadingPromises.set(src, loadingPromise)
39
+ return await loadingPromise
39
40
  }
40
41
 
41
- protected override _dispose(src: string, texture: Texture) {
42
- texture.destroy(true);
42
+ protected override cleanup(src: string, texture: Texture) {
43
+ texture.destroy(true)
43
44
  }
44
45
  }
45
46
 
46
- export const textureLoader = new TextureLoader();
47
+ export const textureLoader = new TextureLoader()
@@ -1,76 +1,87 @@
1
- import { SpritesheetData } from 'pixi.js';
2
- import { audioLoader } from './loaders/audio';
3
- import { fontFamilyLoader } from './loaders/font';
4
- import { getCachedId, spritesheetLoader } from './loaders/spritesheet';
5
- import { textureLoader } from './loaders/texture';
1
+ import { SpritesheetData } from 'pixi.js'
2
+ import { audioLoader } from './loaders/audio'
3
+ import { binaryLoader } from './loaders/binary'
4
+ import { bitmapFontLoader } from './loaders/bitmap-font'
5
+ import { fontFamilyLoader } from './loaders/font'
6
+ import { Loader } from './loaders/loader'
7
+ import { getCachedAtlasId, spritesheetLoader } from './loaders/spritesheet'
8
+ import { textLoader } from './loaders/text'
9
+ import { textureLoader } from './loaders/texture'
6
10
 
7
- type AssetSource = string | {
8
- src: string;
9
- atlas: SpritesheetData;
10
- };
11
-
12
- function isImage(path: string): boolean {
13
- return path.endsWith('.png') ||
14
- path.endsWith('.jpg') ||
15
- path.endsWith('.jpeg') ||
16
- path.endsWith('.gif') ||
17
- path.endsWith('.webp');
11
+ export type AssetSource = string | {
12
+ src: string
13
+ atlas: SpritesheetData
14
+ } | {
15
+ fnt: string
16
+ src: string
18
17
  }
19
18
 
20
- function isAudio(path: string): boolean {
21
- return path.endsWith('.mp3') ||
22
- path.endsWith('.wav') ||
23
- path.endsWith('.ogg');
24
- }
19
+ const loaderForPathMap: Array<{ check: (path: string) => boolean, loader: Loader<any> }> = [
20
+ { check: (p) => p.endsWith('.json') || p.endsWith('.atlas'), loader: textLoader },
21
+ { check: (p) => p.endsWith('.skel'), loader: binaryLoader },
22
+ { check: (p) => /\.(png|jpe?g|gif|webp)$/.test(p), loader: textureLoader },
23
+ { check: (p) => /\.(mp3|wav|ogg)$/.test(p), loader: audioLoader },
24
+ { check: (p) => !p.includes('.'), loader: fontFamilyLoader }
25
+ ]
25
26
 
26
- function isFontFamily(fontFamily: string): boolean {
27
- return !fontFamily.includes('.');
27
+ function getLoaderForPath(path: string): Loader<any> | undefined {
28
+ return loaderForPathMap.find(({ check }) => check(path))?.loader
28
29
  }
29
30
 
30
- async function preload(assets: AssetSource[], progressCallback: (progress: number) => void) {
31
- const total = assets.length;
32
- let loaded = 0;
33
-
34
- await Promise.all(assets.map(async (asset) => {
35
- if (typeof asset === 'string') {
36
- if (isImage(asset)) {
37
- await textureLoader.load(asset);
38
- } else if (isAudio(asset)) {
39
- await audioLoader.load(asset);
40
- } else if (isFontFamily(asset)) {
41
- await fontFamilyLoader.load(asset);
42
- } else {
43
- console.error(`Unknown asset type: ${asset}`);
44
- }
31
+ async function loadAsset(asset: AssetSource): Promise<void> {
32
+ if (typeof asset === 'string') {
33
+ const loader = getLoaderForPath(asset)
34
+ if (!loader) {
35
+ console.warn(`No loader found for asset: ${asset}`)
36
+ return
45
37
  }
46
- else {
47
- const id = getCachedId(asset.src, asset.atlas);
48
- await spritesheetLoader.load(id, asset.src, asset.atlas);
38
+ await loader.load(asset)
39
+ } else if ('atlas' in asset) {
40
+ const id = getCachedAtlasId(asset.src, asset.atlas)
41
+ await spritesheetLoader.load(id, asset.src, asset.atlas)
42
+ } else if ('fnt' in asset) {
43
+ await bitmapFontLoader.load(asset.fnt, asset.src)
44
+ } else {
45
+ console.warn(`Unknown asset type: ${asset}`)
46
+ }
47
+ }
48
+
49
+ function releaseAsset(asset: AssetSource): void {
50
+ if (typeof asset === 'string') {
51
+ const loader = getLoaderForPath(asset)
52
+ if (!loader) {
53
+ console.warn(`No loader found for asset: ${asset}`)
54
+ return
49
55
  }
56
+ loader.release(asset)
57
+ } else if ('atlas' in asset) {
58
+ const id = getCachedAtlasId(asset.src, asset.atlas)
59
+ spritesheetLoader.release(id)
60
+ } else if ('fnt' in asset) {
61
+ bitmapFontLoader.release(asset.fnt)
62
+ } else {
63
+ console.warn(`Unknown asset type: ${asset}`)
64
+ }
65
+ }
50
66
 
51
- loaded++;
52
- progressCallback?.(loaded / total);
53
- }));
67
+ export async function preload(
68
+ assets: AssetSource[],
69
+ progressCallback?: (progress: number) => void
70
+ ): Promise<() => void> {
71
+ let loaded = 0
72
+ const total = assets.length
54
73
 
55
- return () => {
56
- assets.forEach((asset) => {
57
- if (typeof asset === 'string') {
58
- if (isImage(asset)) {
59
- textureLoader.release(asset);
60
- } else if (isAudio(asset)) {
61
- audioLoader.release(asset);
62
- } else if (isFontFamily(asset)) {
63
- fontFamilyLoader.release(asset);
64
- } else {
65
- console.error(`Unknown asset type: ${asset}`);
66
- }
67
- }
68
- else {
69
- const id = getCachedId(asset.src, asset.atlas);
70
- spritesheetLoader.release(id);
74
+ await Promise.all(
75
+ assets.map(async (asset) => {
76
+ try {
77
+ await loadAsset(asset)
78
+ loaded++
79
+ progressCallback?.(loaded / total)
80
+ } catch (err) {
81
+ console.error(`Failed to load asset:`, asset, err)
71
82
  }
72
- });
73
- };
74
- }
83
+ })
84
+ )
75
85
 
76
- export { AssetSource, preload };
86
+ return () => assets.forEach(releaseAsset)
87
+ }