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
Please login or Register to submit your answer