Я делаю игру в App Lab на code.org. Игра основана на том, что Игрок 2 сбрасывает метеоры, от которых Игрок 1 должен увернуться. Тем не менее, я понятия не имею, как сделать обнаружение столкновений. Может кто-нибудь, пожалуйста, помогите? Мне нужна базовая c система обнаружения столкновений, чтобы понизить здоровье Игрока 1, когда метеорит ударит их. Не стесняйтесь использовать значения x и y Игрока 1, а также добавлять свои собственные переменные. Я дам привет человеку, который мне поможет. Вот мой код:
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