Проверить Matter.js
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.4KB

  1. мир.маскиПрыжков = {
  2. задано: {},
  3. };
  4. // // // //
  5. мир.ключники.push(function(ключ, путь, значение){
  6. if (!путь[0].startsWith("маскиПрыжков"))
  7. {
  8. return;
  9. }
  10. var имя = путь[1];
  11. var свойство = путь.slice(2).join(".");
  12. if (!мир.маскиПрыжков.задано[имя])
  13. {
  14. мир.маскиПрыжков.задано[имя] = {};
  15. }
  16. мир.маскиПрыжков.задано[имя][свойство] = значение;
  17. });
  18. // // // //
  19. мир.маскиПрыжков.обновить = function()
  20. {
  21. var за = мир.маскиПрыжков.задано;
  22. for (var имя in за)
  23. {
  24. var з = за[имя];
  25. var объект = з["объект"];
  26. var скорость = з["скорость"];
  27. var маскаДо = з["маски.0"];
  28. var маскаПосле = з["маски.1"];
  29. if (!объект || (скорость == null) || (маскаДо == null) || (маскаПосле == null))
  30. {
  31. continue;
  32. }
  33. var тело = мир.объекты.тела[объект];
  34. if (!тело)
  35. {
  36. continue;
  37. }
  38. var маска = (тело.velocity.y < скорость) ? маскаДо : маскаПосле;
  39. тело.collisionFilter.mask = маска;
  40. }
  41. };