Saya mencoba membuat permainan seperti pong di html, tetapi setiap kali satu pemain mencoba bergerak, gerakan lainnya akan berhenti.

//javaScript

var p1axis = 40;
var p2axis = 40;
function input(event) 
{
    var x = event.charCode || event.keyCode;
    if(x == 115) 
    {
        p1axis += 2;
        document.getElementById("p1").style.top = p1axis + "%";
    }
    if(x == 119) 
    {
        p1axis -= 2;
        document.getElementById("p1").style.top = p1axis + "%";
    }
    if(x == 108) 
    {
        p2axis += 2;
        document.getElementById("p2").style.top = p2axis + "%";
    }
    if(x == 111) 
    {
        p2axis -= 2;
        document.getElementById("p2").style.top = p2axis + "%";
    }
}

Saya berharap kedua pemain bisa bermain dengan bebas. sebaliknya hanya satu yang bisa bergerak sekaligus.

1
neriazadok 30 Oktober 2019, 20:02

2 jawaban

Jawaban Terbaik

Anda dapat membuat larik dan menambahkan kunci saat tombol tersebut ditekan. Anda harus menghapusnya saat kunci dilepaskan. Juga, saya baru saja menggunakan keydown dengan jQuery, Anda juga dapat menggunakan keydown dengan JavaScript.

var bKeys = [];

$('body').keydown(function(e) {
  if (bKeys.includes(e.which) === false) {
    bKeys.push(e.which);
  }
});

$('body').keyup(function(e) {
  bKeys.pop(e.which);
});
setInterval(() => {
  console.log(bKeys);
}, 15);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Ingatlah untuk mengklik di badan saat Anda menjalankan kode

0
Rojo 4 November 2019, 18:07
var k1 = false, k2 = false, k3 = false, k4 = false;

var p1axis = 40;
var p2axis = 40;

function input(event) 
{
  var x = event.charCode || event.keyCode;
  if(x == 115 || x == 83) 
  {
    k1 = true;
  }
  if(x == 119 || x == 87) 
  {
    k2 = true;
  }
  if(x == 108 || x == 76) 
  {
    k3 = true;
  }
  if(x == 111 || x == 79) 
  {
    k4 = true;
  }
}

function remove(event) 
{
  var x = event.charCode || event.keyCode;
  if(x == 115 || x == 83) 
  {
    k1 = false;
  }
  if(x == 119 || x == 87) 
  {
    k2 = false;
  }
  if(x == 108 || x == 76) 
  {
    k3 = false;
  }
  if(x == 111 || x == 79) 
  {
    k4 = false;
  }
}

function move() 
{
  if(k1) 
  {
    p1axis += 1;
    document.getElementById("p1").style.top = p1axis + "%";
  }
  if(k2) 
  {
    p1axis -= 1;
    document.getElementById("p1").style.top = p1axis + "%";
  }
  if(k3) 
  {
    p2axis += 1;
    document.getElementById("p2").style.top = p2axis + "%";
  }
  if(k4) 
  {
    p2axis -= 1;
    document.getElementById("p2").style.top = p2axis + "%";
  }

  setTimeout(move, 20);
}
0
neriazadok 4 November 2019, 17:44