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

57 lines
1.6KB

  1. мир.игрок = {
  2. задано: {},
  3. обновить: обновитьИгрока,
  4. };
  5. // // // //
  6. мир.ключники.push(function(ключ, путь, значение){
  7. if (!ключ.startsWith("игрок"))
  8. {
  9. return;
  10. }
  11. var свойство = путь.slice(1).join(".");
  12. мир.игрок.задано[свойство] = значение;
  13. });
  14. // // // //
  15. function обновитьИгрока()
  16. {
  17. var к = [
  18. мир.игрок.задано["клавиши.0"],
  19. мир.игрок.задано["клавиши.1"],
  20. мир.игрок.задано["клавиши.2"],
  21. ];
  22. var влево = (мир.ввод.клавиши[к[0]] == true);
  23. var вправо = (мир.ввод.клавиши[к[1]] == true);
  24. var вверх = (мир.ввод.клавиши[к[2]] == true);
  25. var тело = мир.объекты.тела[мир.игрок.задано.объект];
  26. if (!тело)
  27. {
  28. return;
  29. }
  30. var скоростьГ = мир.игрок.задано["скорость.0"];
  31. var скоростьВ = мир.игрок.задано["скорость.1"];
  32. var скоростьY = (вверх && Math.abs(тело.velocity.y) <= 0.0000000000001) ? -скоростьВ : тело.velocity.y;
  33. var скоростьX = 0;
  34. if (влево)
  35. {
  36. скоростьX = -скоростьГ;
  37. }
  38. else if (вправо)
  39. {
  40. скоростьX = скоростьГ;
  41. }
  42. Matter.Sleeping.set(тело, false);
  43. Matter.Body.setVelocity(тело, { x: скоростьX, y: скоростьY });
  44. }