• Как вычислить столкновение круга с другим объектом?

    @MamaLuyba
    Вообще, много где об этом написано в книгах по разработке игр на js. Если не путаю, то я применял метод, связанный с вычислением расстояния от центра окружности до объекта, ну и если расстояние было <= радиусу, то произошло столкновение.

    Пример из книжки "Build your own 2D Game Engine and Create Great Web Games(Apress,2015)" (я не по ней делал, но вроде то же принцип)

    RigidShape.prototype.collidedRectCirc = function(rect1Shape, circ2Shape) {
    var rect1Pos = rect1Shape.getPosition();
    var circ2Pos = circ2Shape.getPosition();
    if (rect1Shape.containsPos(circ2Pos) || (circ2Shape.containsPos(rect1Pos))) {
    return true;
    }
    var vFrom1to2 = [0, 0];
    vec2.subtract(vFrom1to2, circ2Pos, rect1Pos);
    var vec = vec2.clone(vFrom1to2);
    var alongX = rect1Shape.getWidth() / 2;
    var alongY = rect1Shape.getHeight() / 2;
    vec[0] = this.clamp(vec[0], -alongX, alongX);
    vec[1] = this.clamp(vec[1], -alongY, alongY);
    var normal = [0, 0];
    vec2.subtract(normal, vFrom1to2, vec);
    var distSqr = vec2.squaredLength(normal);
    var rSqr = circ2Shape.getRadius() * circ2Shape.getRadius();
    return (distSqr < rSqr);
    };
    Ответ написан
    Комментировать
  • Карта через которую можно указать адрес?

    @Malahov-web
    Речь о геокодировании?
    https://yandex.ru/dev/maps/jsbox/2.1/direct_geocode/

    В примере в доке firstGeoObject хранит все д-е об объекте.
    console.log('Все данные геообъекта: ', firstGeoObject.properties.getAll());

    У меня была задача найдя объект по адресу получит его координаты от геокодера.
    В такой случае добавляем после стр.90

    что-то типа
    setObjNewCoordinates(сoords);

    function setObjNewCoordinates(сoords) {
        // отправляем эти сoords куда-нибудь по аякс
    }


    в которой уже они куда-то отправляются, например по аякс.
    Ответ написан
    Комментировать
  • Как задать атрибут maxlength обьекту через js?

    houseprog
    @houseprog
    Веб-разработчик
    Атрибут maxlength не применим для HTML элемента P.
    Он поддерживается только INPUT, пример <input type="text" size="30" maxlength="10">

    Вариант задать блогу P, свойство CSS text-overflow, со следующим значением

    p {
      width: 200px; /* ширина блока */
      white-space: initial;
      overflow: hidden;
    }


    Еще как вариант, резать значение goods[nomer].name до нужной длины, например:

    pname.innerHTML = goods[nomer].name.substr(0, 50);
    Ответ написан
    Комментировать