2016-02-12 3 views
-2

У меня есть вопросы по обнаружению столкновений. Я использую LWJGL для своей игры в java. У меня нет опыта в этом вопросе и я следую тонким матричным учебникам OpenGL для ядра игры. У меня есть опыт работы с html, css, C++ и, конечно же, с java. Я искал по сети и не нашел ничего полезного.Обнаружение столкновений в java

Каков самый простой способ реализовать обнаружение 3D-коллизий в моих играх?

+0

Я пытаюсь восстановить его вопрос, отредактировав вопрос. Надеюсь, все в порядке. – rjdkolb

+0

ok Спасибо за редактирование – TheThirtyFirst

ответ

0

Я бы предложил использовать 3d-движок, который распознает столкновение для вас, как jMonkey. jMonkey может использовать LWJGL. Здесь есть потрясающий учебник: http://wiki.jmonkeyengine.org/doku.php/jme3:beginner:hello_collision

Если вы хотите катиться самостоятельно, как и я, я создаю хэш трехмерных точек в пространстве. Если другой объект имеет тот же самый хэш, он имеет почти столкновение.

import static java.lang.System.out; 

public class App { 
    public static int hash(float x, float y, float z) { 
     double hash = (((x * 31) + (y * 37) + (z * 41)));//31,37 and 41 are prime numbers 
     return (int) (hash);//multiplying the hash by 1000 for example may increase the accuracy significantly. Depends on the size of your space 
    } 

    public static void main(String[] args) { 
     for (float count = 0; count < 2; count += 0.01) { 
      out.println(hash(0, 0, count)); 
     } 
    } 

} 

Как видите, хеши на выходе показывают близкое столкновение, когда количество увеличивается на 0,01.

0 
0 
0 
1 
1 
2 
2 
2 
3 
3 
4 
4 
4 
5 
5 
6 
6 
6 

Вы можете изменить простые числа для большей точности.

+0

спасибо, это отлично – TheThirtyFirst