2014-12-16 1 views
0

как типичный «Hello World» для разработки игр. Я решил сделать игру в понг, так как я учусь использовать LWJGL.Обнаружение столкновений и расположение между двумя объектами в Java-игре (LWJGL)

На данный момент у меня уже есть обе мои сущности (летучая мышь и мяч), но мяч просто бежит туда-сюда по оси х. Я, очевидно, хочу, чтобы он ударился в биту и бежал под разными углами в зависимости от того, как он попал. Проблема в том, что я могу обнаружить столкновение между двумя объектами, но я не знаю, как сказать, в какой момент мяч столкнулся с битой. Есть ли конкретный алгоритм, функция или даже вторая библиотека, которая может мне помочь?

спасибо!

Edit: в соответствии с просьбой, это код для текущего обнаружения столкновений, что у меня есть

if(ball.getX()<=bat.getX()+bat.getWidth() && ball.getX() >= bat.getX() && 
     ball.getY()>=bat.getY() && ball.getY()<=bat.getY()+bat.getHeights()){ 
     //for now, the code in here just makes the ball go the opposite direction 
    } 
+0

сообщения код, который вы написали до сих пор. – nwk

+0

@nwk просто добавил соответствующий код, который я использую в настоящее время. Это просто простая инструкция. – theJuls

ответ

0

Как вы обнаруживая столкновения? Я бы подумал, что если вы сможете обнаружить столкновения, это будет потому, что вы знаете положение мяча и летучей мыши.

Edit:

ОК, я не сделал это точный тип программы прежде, если это программа Hello World, для простоты вы можете просто биту и мяч просто местоположение точки и если заявление будет

if(ball.getX() == bat.getX() && ball.getY() == bat.getY()){ 
    //for now, the code in here just makes the ball go the opposite direction 
} 

Если вы действительно хотите, летучую мышь с шириной, вы могли бы сделать что-то вроде

double xDist = ball.getX() - bat.getX(); 
double yDist = ball.getY() - bat.getY(); 
if(xDist * xDist + yDist * yDist <= BAT_WIDTH * BAT_WIDTH) { 
    //use trigonometry to find the angle between the ball and the mid point of the bat, and then find the point on the bat's surface that corresponds to that angle 
} 
+0

Это очень простая инструкция if, которая получает координаты объекта. Я добавил его к моему вопросу, чтобы вы могли видеть. – theJuls

Смежные вопросы