내 문제는 간단 할 수도 있습니다. 저는 오늘날 대부분의 사람들이 마우스가 가리키는 방향을 결정하고 그 방향으로 총알을 쏘는 알고리듬 (아마도 두 문장 if 문일 것입니다)을 생각해 보았습니다. 나는 이미 총알을 테스트하여 그들이 정의 된 방향으로 총격을 가도록 쏘았는지 확인했다.자바 2d 마우스로 촬영 방향
마우스가 플레이어의 왼쪽, 오른쪽, 위쪽, 아래쪽 또는 플레이어 모서리에 있다면 어떻게 계산합니까?
해결 : 모든 도움 주셔서 감사하지만 생각의 하루 후에 나는 내 자신을 길을 내놓았습니다. 내가 한 것은 if 문을 사용하여 마우스를 눌렀을 때를 결정합니다. 플레이어, 하단, 오른쪽, 왼쪽 또는 모퉁이의 상단 부분과 충돌 할 것입니다. 어쨌든, 여기 내 코드가있다. 추신 변수 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;
}
실제 질문은 무엇입니까? 마우스가있는 곳 (x와 y 좌표)을 알고 총이 어디에 있는지 알면 간단한 지오메트리와 수학이 총알의 각도 또는 x와 y 속도를 결정해야합니다. – DGH
내 실제 질문은 마우스가 플레이어의 왼쪽, 오른쪽, 위쪽, 아래쪽 또는 플레이어 모서리에있는 경우 어떻게 계산할 것입니까? – 36redsoxfan
간단한 대수가 당신에게 대답 할 것입니다. -보고있는 모든 것이 일반적인 방향이라면 삼각법도 필요하지 않습니다. 무엇을 시도 했습니까? 코드에서 어디서 붙어 있습니까? –