основная функция столкновения javascript для проекта средней школы - PullRequest
0 голосов
/ 11 декабря 2018

Привет всем, я пытаюсь сделать функцию столкновения, поэтому, если обезьяна касается банана, банан перемещается куда-то вокруг холста.

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

Это функция:

var mx = canvas.width / 2;     
var my = canvas.height / 2;
var mdx = 0;        
var mdy = 0;
var mspeed = 2;        
var mlives = 3; 
var cx = 400;
var cy = 250;
var cspeed = 3;
var cdx = cspeed - 1;
var cdy = cspeed;
var bx = Math.floor(Math.random() * canvas.width);
var by = Math.floor(Math.random() * canvas.height);
var bananasEaten = 0;
var lives = 3;
var rightPressed = false;
var leftPressed = false;
var upPressed = false;
var downPressed = false;

function getBanana() {
    if (mx <= (bx + bananaImage.width) && bx <= (mx + monkeyImage.width)) {
        if (my <= (by + bananaImage.height) && by <= (my + monkeyImage.height)) {
             bananasEaten = bananasEaten + 1;
             bx = Math.floor(Math.random() * (canvasWidth - bananaImage.width));
             by = Math.floor(Math.random() * (canvasHeight - bananaImage.height));
         }
    }
}

1 Ответ

0 голосов
/ 11 декабря 2018

Итак, в основном вы хотели бы проверить, соответствует ли положение обезьяны (mx, my) положению банана (bx, by).Поэтому:

 if( mx + monkey.width >= bx && mx <= bx + banana.width &&
     my + monkey.height >= by && my <= by + banana.height) {
      // Execute code
 }

Хотя, я должен упомянуть, что вам, вероятно, нужно поместить эту функцию getBanana в другую функцию, которая рисует игру, которая вызывается снова и снова с помощью setInterval или * 1006.*, так как я предполагаю, что это какая-то игра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...