Проверить 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.

00135.действия.js 1.6KB

3 vuotta sitten
3 vuotta sitten
3 vuotta sitten
3 vuotta sitten
3 vuotta sitten
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. мир.действия = {
  2. задано: {},
  3. исполнить: исполнитьДействие,
  4. };
  5. // // // //
  6. мир.ключники.push(function(ключ, путь, значение){
  7. if (!ключ.startsWith("действия"))
  8. {
  9. return;
  10. }
  11. var имя = путь[1];
  12. if (!(имя in мир.действия.задано))
  13. {
  14. мир.действия.задано[имя] = {};
  15. }
  16. var свойство = путь.slice(2).join(".");
  17. мир.действия.задано[имя][свойство] = значение;
  18. });
  19. // // // //
  20. function исполнитьДействие(имя)
  21. {
  22. var действие = мир.действия.задано[имя];
  23. if (!действие)
  24. {
  25. return;
  26. }
  27. var объект = мир.действия.задано[имя]["объект"];
  28. var скоростьX = мир.действия.задано[имя]["скорость.0"];
  29. var скоростьY = мир.действия.задано[имя]["скорость.1"];
  30. if (
  31. объект &&
  32. (скоростьX != null) &&
  33. (скоростьY != null)
  34. ) {
  35. console.debug("исполнить действие", имя, объект, скоростьX, скоростьY);
  36. var тело = мир.объекты.тела[объект];
  37. var скорость = {
  38. x: скоростьX + тело.velocity.x,
  39. y: скоростьY + тело.velocity.y,
  40. };
  41. Matter.Body.setVelocity(тело, скорость);
  42. }
  43. };