Моя проблема может быть простой. Я провел большую часть сегодняшнего дня, думая об алгоритме (скорее всего, это будет пара операторов if), который будет определять направление, в котором указывает мышь, и стрелять в этом направлении. Я уже проверил пули, чтобы убедиться, что они стреляют в определенном направлении.
как мне рассчитать, находится ли мышь слева от игрока, справа, сверху, снизу или по углам игрока?
Решено: спасибо за всю вашу помощь, но после дня размышлений я сам придумал способ. Что я сделал, так это использовал операторы if, чтобы определить, когда я нажимаю кнопку мыши, будет ли она сталкиваться с верхней частью игрока, нижней, правой, левой или углами. Во всяком случае, вот мой код. P.S. Я использовал переменную x1 как mousex, y1 как mousey, x как playerx и y как игрока y. Единственная другая переменная, которая у меня есть, это dx и dy, но вы должны знать, что они делают.
//top
if (x1 > x && x1 < x + 40 && y1 > y - 250 && y1 < y){
dy = -1;
dx = 0;
}
//right
if (x1 > x + 40 && x1 < x + 250 && y1 > y && y1 < y + 40){
dx = 1;
dy = 0;
}
//bottom
if (x1 > x && x1 < x + 40 && y1 > y+40 && y1 < y+250){
dy = 1;
dx = 0;
}
//left
if (x1 < x && x1 > x - 250 && y1 > y && y1 < y + 40){
dx = -1;
dy = 0;
}
//top right corner
if (x1 > x + 40 && x1 < x + 250 && y1 > y - 250 && y1 < y){
dx = 1;
dy = -1;
}
//top left corner
if (x1 < x && x1 > x - 250 && y1 > y - 250 && y1 < y){
dx = -1;
dy = -1;
}
//bottom right corner
if (x1 > x + 40 && x1 < x + 250 && y1 > y + 40 && y1 < y + 250){
dx = 1;
dy = 1;
}
//bottom left corner
if (x1 < x && x1 > x - 250 && y1 > y + 40 && y1 < y + 250){
dx = -1;
dy = 1;
}