Проверить Matter.js
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

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

3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
3 år sedan
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529
  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. файл: "р/звуки/387922__setuniman__scheming-1o95.mp3",
  77. повторять: true,
  78. останов: ["покинули избу"],
  79. },
  80. },
  81. });
  82. // // // //
  83. // Игрок
  84. // // // //
  85. мир.разобрать({
  86. изображения: {
  87. колобок: {
  88. ширина: 70,
  89. высота: 70,
  90. вид: {
  91. background: "url(р/колобок/колобок_неподвижен.png)",
  92. //"z-index": 10,
  93. },
  94. },
  95. },
  96. объекты: {
  97. кирпич: {
  98. x: 100,
  99. y: 350,
  100. высота: 20,
  101. ширина: 40,
  102. вид: {
  103. background: "url(р/отладка/основа.jpg)",
  104. //display: "none",
  105. },
  106. физика: {
  107. isStatic: false,
  108. inertia: Infinity,
  109. },
  110. },
  111. /*
  112. сенсорИгрока: {
  113. x: 170,
  114. y: 350,
  115. высота: 70,
  116. ширина: 70,
  117. вид: {
  118. background: "url(р/отладка/основа.jpg)",
  119. },
  120. физика: {
  121. isSensor: true,
  122. },
  123. },
  124. игрок: {
  125. x: 100,
  126. y: 350,
  127. части: ["кирпич", "сенсорИгрока"],
  128. физика: {
  129. isStatic: false,
  130. inertia: Infinity,
  131. },
  132. },
  133. */
  134. },
  135. игрок: {
  136. объект: "кирпич",
  137. скорость: [5, 12.5],
  138. клавиши: ["ArrowLeft", "ArrowRight", "ArrowUp"],
  139. },
  140. слежение: {
  141. колобок: {
  142. объект: "кирпич",
  143. изображение: "колобок",
  144. смещение: [-35, -60],
  145. скорость: 1,
  146. },
  147. камера: {
  148. объект: "кирпич",
  149. скорость: 0.1,
  150. },
  151. },
  152. маскиПрыжков: {
  153. игрок: {
  154. объект: "кирпич",
  155. скорость: -1,
  156. маски: [1, 1|2],
  157. },
  158. },
  159. звуки: {
  160. прыжокИгрока: {
  161. события: ["игрок начал прыжок"],
  162. файл: "р/звуки/331381__qubodup__public-domain-jump-sound.wav",
  163. },
  164. },
  165. });
  166. // // // //
  167. // Платформы и объекты печи
  168. // // // //
  169. мир.разобрать({
  170. объекты: {
  171. фундаментПечи: {
  172. x: 570,
  173. y: 470,
  174. ширина: 550,
  175. вид: {
  176. background: "url(р/отладка/основа.jpg)",
  177. display: "none",
  178. },
  179. физика: {
  180. collisionFilter: {
  181. category: 2,
  182. },
  183. },
  184. },
  185. полка1: {
  186. x: 660,
  187. y: 335,
  188. ширина: 40,
  189. высота: 10,
  190. вид: {
  191. background: "url(р/отладка/основа.jpg)",
  192. display: "none",
  193. },
  194. физика: {
  195. collisionFilter: {
  196. category: 2,
  197. },
  198. },
  199. },
  200. полка2: {
  201. x: 767,
  202. y: 335,
  203. ширина: 40,
  204. высота: 10,
  205. вид: {
  206. background: "url(р/отладка/основа.jpg)",
  207. display: "none",
  208. },
  209. физика: {
  210. collisionFilter: {
  211. category: 2,
  212. },
  213. },
  214. },
  215. полка3: {
  216. x: 855,
  217. y: 335,
  218. ширина: 40,
  219. высота: 10,
  220. вид: {
  221. background: "url(р/отладка/основа.jpg)",
  222. display: "none",
  223. },
  224. физика: {
  225. collisionFilter: {
  226. category: 2,
  227. },
  228. },
  229. },
  230. полкаСамовара: {
  231. x: 975,
  232. y: 355,
  233. ширина: 70,
  234. высота: 10,
  235. вид: {
  236. background: "url(р/отладка/основа.jpg)",
  237. display: "none",
  238. },
  239. физика: {
  240. collisionFilter: {
  241. category: 2,
  242. },
  243. },
  244. },
  245. лежанкаПечки: {
  246. x: 600,
  247. y: 242,
  248. ширина: 330,
  249. высота: 10,
  250. вид: {
  251. background: "url(р/отладка/основа.jpg)",
  252. display: "none",
  253. },
  254. физика: {
  255. collisionFilter: {
  256. category: 2,
  257. },
  258. },
  259. },
  260. основаниеТрубыПечки: {
  261. x: 937,
  262. y: 175,
  263. ширина: 130,
  264. высота: 10,
  265. вид: {
  266. background: "url(р/отладка/основа.jpg)",
  267. display: "none",
  268. },
  269. физика: {
  270. collisionFilter: {
  271. category: 2,
  272. },
  273. },
  274. },
  275. самовар: {
  276. x: 650,
  277. y: 300,
  278. ширина: 70,
  279. высота: 120,
  280. вид: {
  281. background: "url(р/вещи/самовар.png) no-repeat scroll 0% 0% / contain",
  282. },
  283. физика: {
  284. isStatic: false,
  285. //inertia: Infinity,
  286. },
  287. },
  288. },
  289. });
  290. // // // //
  291. // Подкидывание стрелы
  292. // // // //
  293. мир.разобрать({
  294. объекты: {
  295. сенсор: {
  296. x: 1280,
  297. y: 400,
  298. ширина: 120,
  299. вид: {
  300. background: "url(р/отладка/основа.jpg)",
  301. display: "none",
  302. },
  303. физика: {
  304. isStatic: true,
  305. isSensor: true,
  306. },
  307. },
  308. стрела: {
  309. x: 1230,
  310. y: 350,
  311. высота: 30,
  312. ширина: 200,
  313. вид: {
  314. display: "inline-block",
  315. background: "url(р/вещи/стрела.png) no-repeat scroll 0% 0% / contain",
  316. transform: "scaleX(-1)",
  317. },
  318. физика: {
  319. isStatic: false,
  320. inertia: Infinity,
  321. collisionFilter: {
  322. category: 4,
  323. },
  324. },
  325. },
  326. лук: {
  327. x: 1250,
  328. y: 200,
  329. ширина: 100,
  330. вид: {
  331. background: "url(р/отладка/основа.jpg)",
  332. display: "none",
  333. },
  334. физика: {
  335. isStatic: true,
  336. collisionFilter: {
  337. category: 4,
  338. },
  339. },
  340. },
  341. },
  342. столкновения: {
  343. стрелаНачало: {
  344. объекты: ["кирпич", "сенсор"],
  345. событие: "сенсор стрелы",
  346. },
  347. стрелаКонец: {
  348. объекты: ["стрела", "лук"],
  349. событие: "стрела и лук",
  350. },
  351. },
  352. маскиПрыжков: {
  353. стрела: {
  354. объект: "стрела",
  355. скорость: -1,
  356. маски: [0, 2|4]
  357. },
  358. },
  359. звуки: {
  360. зарядкаЛука: {
  361. события: ["закинули стрелу"],
  362. файл: "р/звуки/543927__eminyildirim__pistol-gun-cocking.wav",
  363. },
  364. },
  365. });
  366. function ПодкидываниеСтрелы() {
  367. this.создать = function() {
  368. this.времяСтрелы = null;
  369. this.времяПриземления = null;
  370. this.подкинули = false;
  371. this.закинули = false;
  372. this.завершить = null;
  373. мир.события.подписать(this);
  374. };
  375. this.обработатьСобытие = function(событие) {
  376. if (событие == "сенсор стрелы")
  377. {
  378. this.времяСтрелы = мир.физика.движок.timing.timestamp;
  379. this.подкинуть();
  380. }
  381. else if (событие == "игрок приземлился")
  382. {
  383. this.времяПриземления = мир.физика.движок.timing.timestamp;
  384. this.подкинуть();
  385. }
  386. else if (событие == "игрок начал прыжок")
  387. {
  388. this.времяСтрелы = null;
  389. this.времяПриземления = null;
  390. this.подкинули = false;
  391. }
  392. else if (
  393. (событие == "стрела и лук") &&
  394. this.закинули &&
  395. this.завершить
  396. ) {
  397. мир.события.уведомить("закинули стрелу");
  398. мир.события.отписать(this);
  399. this.завершить();
  400. }
  401. };
  402. this.подкинуть = function() {
  403. if (
  404. this.подкинули ||
  405. !this.времяСтрелы ||
  406. !this.времяПриземления ||
  407. Math.abs(this.времяСтрелы - this.времяПриземления) > 0.00001 ||
  408. Math.abs(мир.объекты.тела.стрела.velocity.y) > 0.00001
  409. ) {
  410. return;
  411. }
  412. this.подкинули = true;
  413. Matter.Body.setVelocity(
  414. мир.объекты.тела.стрела,
  415. { x: 0, y: -мир.игрок.приземление.скорость * 1.2 }
  416. );
  417. if (мир.игрок.приземление.скорость > 16)
  418. {
  419. this.закинули = true;
  420. }
  421. };
  422. // Конструктор.
  423. this.создать();
  424. }
  425. мир.подкидываниеСтрелы = new ПодкидываниеСтрелы();
  426. мир.подкидываниеСтрелы.завершить = function() {
  427. мир.подкидываниеСтрелы = null;
  428. };
  429. // Запустить звук избы
  430. мир.события.уведомить("вошли в избу");
  431. // // // //
  432. // Отладка событий
  433. // // // //
  434. function ОтладкаСобытий() {
  435. this.обработатьСобытие = function(событие) {
  436. if (событие.startsWith("игрокПаук"))
  437. {
  438. console.debug("событие", событие);
  439. }
  440. };
  441. // Конструктор.
  442. мир.события.подписать(this);
  443. }
  444. мир.отладкаСобытий = new ОтладкаСобытий();
  445. // // // //
  446. // Пауки
  447. // // // //
  448. мир.разобрать({
  449. объекты: {
  450. паук1: {
  451. x: 680,
  452. y: 300,
  453. ширина: 30,
  454. вид: {
  455. background: "url(р/животные/паук.png) no-repeat scroll 0% 0% / contain",
  456. },
  457. физика: {
  458. isStatic: false,
  459. isSensor: true,
  460. },
  461. },
  462. },
  463. столкновения: {
  464. игрокПаук1: {
  465. объекты: ["кирпич", "паук1"],
  466. событие: "игрокПаук1",
  467. },
  468. /*
  469. проверкаСенсораИгрокаРТ: {
  470. объекты: ["рт", "паук1"],
  471. событие: "игрокПаукРТ",
  472. },
  473. проверкаСенсораИгрокаРТ1: {
  474. объекты: ["рт1", "паук1"],
  475. событие: "игрокПаукРТ1",
  476. },
  477. проверкаСенсораИгрокаРТ2: {
  478. объекты: ["рт2", "паук1"],
  479. событие: "игрокПаукРТ2",
  480. },
  481. */
  482. },
  483. движение: {
  484. паук1: {
  485. объекты: ["паук1"],
  486. скорость: [0.7, 1],
  487. x: [610, 1080],
  488. y: [350, 450],
  489. },
  490. },
  491. });