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

42 lines
992B

  1. мир.камера = {
  2. обновить: обновитьКамеру,
  3. };
  4. // // // //
  5. function обновитьКамеру()
  6. {
  7. var тело = мир.объекты.тела[мир.игрок.задано.объект];
  8. if (!тело)
  9. {
  10. return;
  11. }
  12. var корень = document.getElementById("корень");
  13. // Сейчас.
  14. var x0 = 0;
  15. if (корень.style.left.endsWith("px"))
  16. {
  17. x0 = корень.style.left.slice(0, -2);
  18. }
  19. var y0 = 0;
  20. if (корень.style.top.endsWith("px"))
  21. {
  22. y0 = корень.style.top.slice(0, -2);
  23. }
  24. // Цель.
  25. var x1 = window.innerWidth / 2 - тело.position.x;
  26. var y1 = window.innerHeight / 2 - тело.position.y;
  27. // Плавно.
  28. function lerp(v0, v1, t) {
  29. return v0 * (1 - t) + v1 * t;
  30. }
  31. var x = lerp(x0, x1, 0.1);
  32. var y = lerp(y0, y1, 0.1);
  33. корень.style.left = `${x}px`;
  34. корень.style.top = `${y}px`;
  35. }