• Мультиплеер js?

    @ArtC Автор вопроса
    А сам язык node.js и js одинаков в плане команд и синтаксиса? Можно ли зная js - автоматом знать и node.js?
  • Вывод определённого текста при условии?

    @ArtC Автор вопроса
    dollar, так не выходит. нужно как-то указывать, что конкретно col2, потому что это не единственное поле ввода.
  • JS код в php файле?

    @ArtC Автор вопроса
    А если js вставить или перевести в node.js? Он то ведь на сервере выполняется?

    Как файл js перевести в node.js? И достаточно ли будет залить этот node.js на хостинг?
  • Вывести текс из JS, но не показать?

    @ArtC Автор вопроса
    Ну как был невидимым, но существовал на страничке.
  • Как сделать if для текста в JS?

    @ArtC Автор вопроса
    Отлично, благодарю!
  • Как учесть текст с поля ввода в JS второй вопрос?

    @ArtC Автор вопроса
    Код:
    var col1 = ["текст"]
    var col2 = ["текст"]
    var col3 = ["текст"]
    var col4 = ["текст"]
    
      let inputTag2 = document.getElementById("mytext");
      let col5 = "";
      inputTag2.addEventListener("change", (e) => {
      col5 = e.target.value
      })


    Как сделать, чтобы то значение, которое передаёт col5 из:
    <input id="mytext" type="text">

    Можно было вставить тут:
    var col1 = ["текст", тут, "текст"]
  • Как учесть текст с поля ввода в JS?

    @ArtC Автор вопроса
    Благодарю вас!
  • Полёт пули в игре html5+js?

    @ArtC Автор вопроса
    Роман, спасибо огромное. Я только начал изучать js, голова уже кругом от стремительности.
  • Полёт пули в игре html5+js?

    @ArtC Автор вопроса
    Почему-то при добавлении кода:
    const Vector = window.libs.Vector;
    Вся игра перестаёт работать.

    Ваше решение бесспорно отличное и благодарю за детальное разъяснение, забрал ваш пример в копилку для изучения.

    Вот я нашёл основной код моих пуль, гляньте пожалуйста, может здесь можно как-то реализовать?
    $.Bullet = function( opt ) {
    for( var k in opt ) {
    this[k] = opt[k];
    }
    this.enemiesHit = [];
    this.inView = 0;
    $.particleEmitters.push( new $.ParticleEmitter( {
    x: this.x,
    y: this.y,
    count: 1,
    spawnRange: 1,
    friction: 0.75,
    minSpeed: 2,
    maxSpeed: 10,
    minDirection: 0,
    maxDirection: $.twopi,
    hue: 0,
    saturation: 0
    } ) );
    };

    /*==============================================================================
    Update
    ==============================================================================*/
    $.Bullet.prototype.update = function( i ) {
    /*==============================================================================
    Apply Forces
    ==============================================================================*/
    this.x += Math.cos( this.direction ) * ( this.speed * $.dt );
    this.y += Math.sin( this.direction ) * ( this.speed * $.dt );
    this.ex = this.x - Math.cos( this.direction ) * this.size;
    this.ey = this.y - Math.sin( this.direction ) * this.size;

    /*==============================================================================
    Check Collisions
    ==============================================================================*/
    var ei = $.enemies.length;
    while( ei-- ) {
    var enemy = $.enemies[ ei ];
    if( $.util.distance( this.x, this.y, enemy.x, enemy.y ) <= enemy.radius ) {
    if( this.enemiesHit.indexOf( enemy.index ) == -1 ){
    $.particleEmitters.push( new $.ParticleEmitter( {
    x: this.x,
    y: this.y,
    count: Math.floor( $.util.rand( 1, 4 ) ),
    spawnRange: 0,
    friction: 0.85,
    minSpeed: 5,
    maxSpeed: 12,
    minDirection: ( this.direction - $.pi ) - $.pi / 5,
    maxDirection: ( this.direction - $.pi ) + $.pi / 5,
    hue: enemy.hue
    } ) );

    this.enemiesHit.push( enemy.index );
    enemy.receiveDamage( ei, this.damage );

    if( this.enemiesHit.length > 3 ) {
    $.bullets.splice( i, 1 );
    }
    }
    if( !this.piercing ) {
    $.bullets.splice( i, 1 );
    }
    }
    }

    /*==============================================================================
    Lock Bounds
    ==============================================================================*/
    if( !$.util.pointInRect( this.ex, this.ey, 0, 0, $.ww, $.wh ) ) {
    $.bullets.splice( i, 1 );
    }

    /*==============================================================================
    Update View
    ==============================================================================*/
    if( $.util.pointInRect( this.ex, this.ey, -$.screen.x, -$.screen.y, $.cw, $.ch ) ) {
    this.inView = 1;
    } else {
    this.inView = 0;
    }
    };

    /*==============================================================================
    Render
    ==============================================================================*/
    $.Bullet.prototype.render = function( i ) {
    if( this.inView ) {
    $.ctxmg.beginPath();
    $.ctxmg.moveTo( this.x, this.y );
    $.ctxmg.lineTo( this.ex, this.ey );
    $.ctxmg.lineWidth = this.lineWidth;
    $.ctxmg.strokeStyle = this.strokeStyle;
    $.ctxmg.stroke();
    }
    };