Ресурсы для 2-й игровой [закрытой] физики

Использование коллекций для перетасовки массива примитивных типов является немного избыточным ...

Достаточно просто реализовать функцию самостоятельно, используя, например, Fisher-Yates shuffle :

import java.util.*;
import java.util.concurrent.ThreadLocalRandom;

class Test
{
  public static void main(String args[])
  {
    int[] solutionArray = { 1, 2, 3, 4, 5, 6, 16, 15, 14, 13, 12, 11 };

    shuffleArray(solutionArray);
    for (int i = 0; i < solutionArray.length; i++)
    {
      System.out.print(solutionArray[i] + " ");
    }
    System.out.println();
  }

  // Implementing Fisher–Yates shuffle
  static void shuffleArray(int[] ar)
  {
    // If running on Java 6 or older, use `new Random()` on RHS here
    Random rnd = ThreadLocalRandom.current();
    for (int i = ar.length - 1; i > 0; i--)
    {
      int index = rnd.nextInt(i + 1);
      // Simple swap
      int a = ar[index];
      ar[index] = ar[i];
      ar[i] = a;
    }
  }
}

41
задан Erik Forbes 3 October 2008 в 13:41
поделиться

7 ответов

Вот некоторые ресурсы, которые я собрал несколько лет назад. Знаменитый Интеграция Verlet. Я также включаю ссылки на некоторые и коммерческие механизмы физики с открытым исходным кодом, которые я нашел в то время. Существует stackoverflow статья об этом предмете здесь: 2-я игровая физика?

Методы Физики

Книги

  • "Игровая Разработка Механизма Физики" , Ian Millington - я владею этой книгой и настоятельно рекомендую его. Книга создает механизм физики в C++ с нуля. Автор запускает с базовой физики элементарных частиц и затем добавляет "законы движения", ограничения, физика твердого тела и вперед и вперед. Он включает хорошо зарегистрированный исходный код полностью через.

Механизмы Физики

19
ответ дан Community 23 September 2019 в 15:47
поделиться

Это - большое учебное руководство, которое демонстрирует 2D понятия физики с помощью флэш-памяти и не характерно для флэш-памяти. http://www.rodedev.com/tutorials/gamephysics/game_physics.swf

3
ответ дан angelo 23 September 2019 в 15:47
поделиться
7
ответ дан Glorfindel 23 September 2019 в 15:47
поделиться

Даже если Вы хотите изучить все это с самого начала, библиотека физики с открытым исходным кодом, которая хорошо кодируется и документируется, содержит намного больше информации, чем книга. Как заключают меня сделка с ситуацией x.. найдите в файлах, может быть быстрее, чем бумажный индекс.

Исходный ответ:

, Что, никакое упоминание о Box2D? Параллельный проект с открытым исходным кодом сотрудника снежной бури, имеет хорошее сообщество, и хорошо, работает отлично.

В моем (кратком) опыте с Box2D, интегрируя его с Игровым Разработчиком Крутящего момента, я нашел API чистым для использования, документация была четкой, это поддерживало все объекты физики, которые я ожидал (соединения в особенности были требованием), и сообщество выглядело дружелюбным и активным (когда-то около начала 2010 года).

Оценка по плакатам форума, также казалось, что менеджеры были восприимчивыми к исходным вкладам (который не нес багаж лицензии).

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

3
ответ дан James 23 September 2019 в 15:47
поделиться

Это - большой ресурс для записи Вашего первого механизма. Это находится в 3D, но очень легко преобразовать вниз в 2D. Я знаю по крайней мере одну крупную компанию, которая следовала этому учебному руководству для их внутреннего механизма, и я лично выполнил его шаги для своего собственного механизма. Он объясняет все основные понятия физики в основанной на пружине/импульсе физике и показывает Вам, как записать Вашу собственную межтерку.

1
ответ дан DavidG 23 September 2019 в 15:47
поделиться

F# имеет функцию, названную Единицы измерения , который делает размерный анализ для Вас, обеспечивая ошибки, если Вы понимаете его превратно. Например, если Вы говорите:

let distance : float<meters> = gravity * 3.0<seconds>

, Который привел бы к ошибке компиляции, так как сила тяжести является < meters/seconds^2> и не < метры>. Кроме того, так как F# является просто.NET, которую можно записать коду математики/физики в библиотеке классов и ссылке это от C#.

я был бы reccomend Вы проверять эти сообщения в блоге для получения дополнительной информации:

Andew Kennedy
2
ответ дан Chris Smith 23 September 2019 в 15:47
поделиться
0
ответ дан 27 November 2019 в 00:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: