В настоящее время я делаю клон Понга в Gamemaker (мой первый самостоятельный проект в Gamemaker).
Когда мяч сталкивается с веслом, я переворачиваю x_speed
(меняя направление, взяв его * -1
).Однако, когда мяч касается верхней или нижней части весла, мяч застревает внутри, постоянно меняя свой x_speed
, но никогда не выходя из ракетки.
Мой вопрос не столько в том, чтопроблема, но есть ли практический способ обойти эту проблему?
Я пытался (но не смог) реализовать метод place_meeting, и я попробовал несколько других методов, чтобы определить, попал ли мяч в верхили в нижней части лопатки, чтобы я мог соответственно отрегулировать ее положения x
и y
.
Если у кого-то есть идеи (мне не обязательно нужен код для решения, просто идея, чтобы яя могу реализовать это в моей игре. Вот что я имею до сих пор.
Я пробовал другие решения, но ни одно из них даже близко не подошло, поэтому нет смысла показывать их здесь. Если вам нужны какие-либо другие фрагменты кодаиз моей программы просто спросите.
Шаг за мячом:
//Checking if it touches the borders of the play area
if (x <= 0) {
x_speed *= -1;
obj_score_left.gameScore += 1;
}
if (x + width >= room_width) {
x_speed *= -1;
obj_score_right.gameScore += 1;
}
if (y <= 0) y_speed *= -1;
if (y + height >= room_height) y_speed *= -1;
//Adds the x and y speeds to x and y
x += x_speed;
y += y_speed;