Проверить Matter.js
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

800.пример.json.js 9.9KB

3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355
  1. // // // //
  2. // Основа избы
  3. // // // //
  4. мир.разобрать({
  5. заголовок: "Колобку здесь быть",
  6. изображения: {
  7. дом: {
  8. ширина: 2000,
  9. высота: 600,
  10. вид: {
  11. background: "url(р/сцены/изба.jpg)",
  12. },
  13. },
  14. },
  15. объекты: {
  16. полСлева: {
  17. x: 0,
  18. y: 580,
  19. ширина: 355,
  20. вид: {
  21. background: "url(р/отладка/основа.jpg)",
  22. //display: "none",
  23. },
  24. },
  25. полКрышки: {
  26. x: 357,
  27. y: 580,
  28. ширина: 135,
  29. вид: {
  30. background: "url(р/отладка/основа.jpg)",
  31. //display: "none",
  32. },
  33. },
  34. полСправа: {
  35. x: 495,
  36. y: 580,
  37. ширина: 1505,
  38. вид: {
  39. background: "url(р/отладка/основа.jpg)",
  40. //display: "none",
  41. },
  42. },
  43. стол: {
  44. x: 1253,
  45. y: 420,
  46. ширина: 610,
  47. вид: {
  48. background: "url(р/отладка/основа.jpg)",
  49. //display: "none",
  50. },
  51. физика: {
  52. collisionFilter: {
  53. category: 2,
  54. },
  55. },
  56. },
  57. подоконник: {
  58. x: 1673,
  59. y: 375,
  60. ширина: 200,
  61. вид: {
  62. background: "url(р/отладка/основа.jpg)",
  63. //display: "none",
  64. },
  65. физика: {
  66. angle: -0.0698,
  67. collisionFilter: {
  68. category: 2,
  69. },
  70. },
  71. },
  72. },
  73. });
  74. // // // //
  75. // Игрок
  76. // // // //
  77. мир.разобрать({
  78. изображения: {
  79. колобок: {
  80. //x: 100,
  81. x: 1180,
  82. y: 250,
  83. ширина: 70,
  84. высота: 70,
  85. вид: {
  86. background: "url(р/колобок/колобок_неподвижен.png)",
  87. "z-index": 10,
  88. },
  89. },
  90. },
  91. объекты: {
  92. кирпич: {
  93. x: 1170,
  94. y: 350,
  95. высота: 20,
  96. ширина: 40,
  97. вид: {
  98. background: "url(р/отладка/основа.jpg)",
  99. display: "none",
  100. },
  101. физика: {
  102. isStatic: false,
  103. inertia: Infinity,
  104. },
  105. },
  106. },
  107. игрок: {
  108. объект: "кирпич",
  109. скорость: [5, 12],
  110. клавиши: ["ArrowLeft", "ArrowRight", "ArrowUp"],
  111. },
  112. слежение: {
  113. колобок: {
  114. объект: "кирпич",
  115. изображение: "колобок",
  116. смещение: [-35, -65],
  117. скорость: 1,
  118. },
  119. камера: {
  120. объект: "кирпич",
  121. скорость: 0.1,
  122. },
  123. },
  124. });
  125. // // // //
  126. // Платформы и объекты печи
  127. // // // //
  128. мир.разобрать({
  129. объекты: {
  130. фундаментПечи: {
  131. x: 570,
  132. y: 470,
  133. ширина: 550,
  134. вид: {
  135. background: "url(р/отладка/основа.jpg)",
  136. //display: "none",
  137. },
  138. физика: {
  139. collisionFilter: {
  140. category: 2,
  141. },
  142. },
  143. },
  144. полка1: {
  145. x: 660,
  146. y: 335,
  147. ширина: 40,
  148. высота: 10,
  149. вид: {
  150. background: "url(р/отладка/основа.jpg)",
  151. //display: "none",
  152. },
  153. физика: {
  154. collisionFilter: {
  155. category: 2,
  156. },
  157. },
  158. },
  159. полка2: {
  160. x: 767,
  161. y: 335,
  162. ширина: 40,
  163. высота: 10,
  164. вид: {
  165. background: "url(р/отладка/основа.jpg)",
  166. //display: "none",
  167. },
  168. физика: {
  169. collisionFilter: {
  170. category: 2,
  171. },
  172. },
  173. },
  174. полка3: {
  175. x: 855,
  176. y: 335,
  177. ширина: 40,
  178. высота: 10,
  179. вид: {
  180. background: "url(р/отладка/основа.jpg)",
  181. //display: "none",
  182. },
  183. физика: {
  184. collisionFilter: {
  185. category: 2,
  186. },
  187. },
  188. },
  189. полкаСамовара: {
  190. x: 975,
  191. y: 355,
  192. ширина: 70,
  193. высота: 10,
  194. вид: {
  195. background: "url(р/отладка/основа.jpg)",
  196. //display: "none",
  197. },
  198. физика: {
  199. collisionFilter: {
  200. category: 2,
  201. },
  202. },
  203. },
  204. лежанкаПечки: {
  205. x: 600,
  206. y: 242,
  207. ширина: 330,
  208. высота: 10,
  209. вид: {
  210. background: "url(р/отладка/основа.jpg)",
  211. //display: "none",
  212. },
  213. физика: {
  214. collisionFilter: {
  215. category: 2,
  216. },
  217. },
  218. },
  219. основаниеТрубыПечки: {
  220. x: 937,
  221. y: 175,
  222. ширина: 130,
  223. высота: 10,
  224. вид: {
  225. background: "url(р/отладка/основа.jpg)",
  226. //display: "none",
  227. },
  228. физика: {
  229. collisionFilter: {
  230. category: 2,
  231. },
  232. },
  233. },
  234. самовар: {
  235. x: 650,
  236. y: 300,
  237. ширина: 70,
  238. высота: 120,
  239. вид: {
  240. background: "url(р/вещи/самовар.png) no-repeat scroll 0% 0% / contain",
  241. },
  242. физика: {
  243. isStatic: false,
  244. //inertia: Infinity,
  245. },
  246. },
  247. },
  248. });
  249. // // // //
  250. // Подкидывание стрелы
  251. // // // //
  252. мир.подкидываниеСтрелы = {
  253. сенсор: null,
  254. стрела: null,
  255. подкинули: false,
  256. };
  257. /*
  258. мир.отладка = {
  259. сенсор: null,
  260. стрела: null,
  261. срабатывание: false,
  262. };
  263. */
  264. мир.разобрать({
  265. объекты: {
  266. сенсор: {
  267. x: 1280,
  268. y: 400,
  269. ширина: 120,
  270. вид: {
  271. background: "url(р/отладка/основа.jpg)",
  272. display: "none",
  273. },
  274. физика: {
  275. isStatic: true,
  276. isSensor: true,
  277. },
  278. },
  279. стрела: {
  280. x: 1230,
  281. y: 350,
  282. высота: 30,
  283. ширина: 200,
  284. вид: {
  285. display: "inline-block",
  286. background: "url(р/вещи/стрела.png) no-repeat scroll 0% 0% / contain",
  287. transform: "scaleX(-1)",
  288. },
  289. физика: {
  290. isStatic: false,
  291. inertia: Infinity,
  292. collisionFilter: {
  293. category: 4,
  294. },
  295. },
  296. },
  297. },
  298. столкновения: {
  299. стрела: {
  300. объекты: ["кирпич", "сенсор"],
  301. действие: "сенсорСтрелы",
  302. },
  303. },
  304. действия: {
  305. сенсорСтрелы: [
  306. () => {
  307. мир.подкидываниеСтрелы.сенсор = мир.физика.движок.timing.timestamp;
  308. },
  309. "подкинутьСтрелу",
  310. ],
  311. игрокНачалПрыжок: [
  312. () => {
  313. мир.подкидываниеСтрелы.сенсор = null;
  314. мир.подкидываниеСтрелы.стрела = null;
  315. мир.подкидываниеСтрелы.подкинули = false;
  316. },
  317. ],
  318. игрокПриземлился: [
  319. () => { мир.подкидываниеСтрелы.стрела = мир.физика.движок.timing.timestamp; },
  320. "подкинутьСтрелу",
  321. ],
  322. подкинутьСтрелу: [
  323. () => {
  324. if (
  325. мир.подкидываниеСтрелы.подкинули ||
  326. !мир.подкидываниеСтрелы.стрела ||
  327. !мир.подкидываниеСтрелы.сенсор ||
  328. Math.abs(мир.подкидываниеСтрелы.стрела - мир.подкидываниеСтрелы.сенсор) > 0.00001 ||
  329. Math.abs(мир.объекты.тела.стрела.velocity.y) > 0.00001
  330. ) {
  331. return;
  332. }
  333. мир.подкидываниеСтрелы.подкинули = true;
  334. Matter.Body.setVelocity(
  335. мир.объекты.тела.стрела,
  336. { x: 0, y: -мир.игрок.приземление.скорость }
  337. );
  338. },
  339. ],
  340. },
  341. });