Garmaine Staff asked 1 year ago

I am making a game in the code.org App Lab. The game is based around Player 2 dropping meteors that Player 1 has to dodge. However, I have no idea how to do collision detection. can someone please help? I need a basic collision detection system to lower Player 1's health when a meteor hits them. Feel free to use the x and y values of Player 1, as well as add your own variables. I will give a shout-out to the person who help me. Here is my code:

var x = 104;
var y = 172;
var p1HP = 100;
var meteorCount = 25;
var mousex;
var mousey;
var meteorNum = 0;
//Code below triggers a screen change and music when a button is pressed.
onEvent("startButton", "click", function() {
  setScreen("playscreen");
  playSound("Brobot-Battle-(8-BIT)---Super-Paper-Mario-(192--kbps).mp3", false);
});
//Code below is basic movement for player.
onEvent("playscreen", "keydown", function(event) {
  if (event.key=="w") {
    getP1Pos();
    setPosition("image2", x, y-8, 100, 100);
  } else if (event.key=="a") {
    getP1Pos();
    setPosition("image2", x-8, y, 100, 100);
  } else if (event.key=="d") {
    getP1Pos();
    setPosition("image2", x+8, y, 100, 100);
  } else if (event.key=="s") {
    getP1Pos();
    setPosition("image2", x, y+8, 100, 100);
  }
});
function getP1Pos() {
  x = getXPosition("image2");
  y = getYPosition("image2");
}
//code below resets the game when a retry button is pressed
onEvent("retry"||"retry2", "click", function( ) {
  setScreen("startscreen");
  p1HP = 100;
  meteorCount = 20;
  setText("p1HP", "P1 HP: "+p1HP);
  setText("meteorCounter", "P2 METEORS: "+meteorCount);
});
//code below records mouse position
onEvent("playscreen", "mousemove", function(mouse) {
  mousex = mouse.x;
  mousey = mouse.y;
});
//code below makes the meteors go to the mouse and fall when the screen is clicked
onEvent("playscreen", "click", function() {
  stopTimedLoop();
  if (meteorNum==5) {
    meteorNum = 1;
  } else {
    meteorNum = meteorNum+1;
  }
  meteorCount = meteorCount-1;
  if (meteorCount==-1) {
    setScreen("p1victory");
    stopSound("Brobot-Battle-(8-BIT)---Super-Paper-Mario-(192--kbps).mp3");
  } else {
    setPosition("meteor"+meteorNum, mousex-20, mousey-20, 100, 100);
    timedLoop(60, function() {
      setPosition("meteor"+meteorNum, getXPosition("meteor"+meteorNum), getYPosition("meteor"+meteorNum) + 40, 100, 100);
    });
    setText("meteorCounter", "P2 METEORS: "+meteorCount);
  }
});
//Insert collision detection algorithm here