Этим проблема не решилась :(. На других машинах попрежнему "падает". А причину так и не нашли. Зато с проявлением разобрались: каким-то образом обрубывается половина модели, и машина заходя за границе (а это не видно, т. к. рисуется всё норм) падает. Причём, если я переношу прогу откомпелированую у меня - машина сразу падает, а если компелирую там, то она начинает ехать, а потом встречает обрыв, и когда я перенёс эту игру к себе - там тоже был обрыв. В общем, какая-то билебирда.
С SMID разобрались - толи на наших картах он не поддержывается, толи на чужих, но когда поставили 4-ый вектор равным 1, то всё заработало (значит, не поддержывается на наших).
Но на подходе появился следующий баг: болид начал в некоторых местах "проваливаться" через меш. Причем, что усложнило задачу, этот баг был заметен только на других машинах (соответсвенно, более слабых). В конечно этоге, мы разрешили задачу: во-первых, болид находился на нулевой высоте (Y координате) и он уже был "погружён" в тримеш, поэтому мы его чуть-чуть подняли; во-вторых было объявлено два указателя на данные сетки в ОДЕ
var data: PdxTriMeshData;
Объявили как локальную (в процедуре), так и глобальную. Когда одну из них стёрли - всё заработало (на нашей машине тоже начались такие баги). Сработал ли сборщик мусора (который очистил пол сетки) или ещё что-то, но бзыки компилятора мы так и не поняли. Но всё же, не факт, что мы баг устранили. Если что - радируйте (можно прям в коминтариях). <
... Читать дальше »
В новых версиях был добавлен TriMesh (физические объекты с произвольной формой). Этот элемент был добавлен с огромным трудом, т.к. меш в ODE имел утечки в памяти. В конце концов с утечками разобрались, но появилась новая проблема: ОДЕ принимал, только, 4-х компонентные (4 значения single/double) векторы (вершины), поэтому принялось решение делать структуру сетки из 4 компонентов, и рисовать пришлось так же. Но разное железо, оказывается, рассматривает SMID операцию по разному, поэтому на некоторых машинах, сетка не отображается. Но даже с этим багом, мы всё равно довольны результатом.
П.С. Добавление физического образа сетки для объектов в скрипте: Physics: ( AnyObject TriMesh )
Для загрузки карт был выбран скрипт, т.к. с помощью него, в динамических условиях можно добовлять различные возможности. К сожалению, пока ему до полноценного скрипта далеко, но в будущем будет разработан компилятор в опкод, а покаместь, программа будет считовать текст из вайла и загружать физику и модели.
... Читать дальше »