... решение по коррекции траектории - делать расчёт точки соприкосновения (через вектора) или попытаться использовать точку, которая формируется во время коллизии при соприкосновении колеса с землёй, но там есть свои проблемы (поскольку будут соприкасаться левая или правая сторона колеса) ...
... у меня был проект на плоскости с треками и следом ( https://sungreen.github.io/projects/veterbot/veterbot.html ), но рассчитывал всё через в скриптах ...... и отложил идею делать на неровной поверхности из-за усложнения расчётов ...... поэтому у меня интерес к этой теме тоже есть ...
... поясни цель задачи, это курсовик? может стоит условия поменять ...
if not 'objs' in own: # если нет списка добавляемых следов print("25 not 'objs' in own = ", not 'objs' in own) own['objs'] = [] # создать список добавляемых следов longSleda = 0 # назначаю параметр переменной print("29 longSleda = ", longSleda) # проверка elif own['objs'] == []: # если список уже создан print("31 not 'objs' in own = ", not 'objs' in own own['objs'].append(sled) # добавить след в список longSleda += spd # наращиваю длину следа print("34 longSleda = ", longSleda) # проверкка if longSleda >= 0.4: print("36 longSleda = ", longSleda) sled = scn.addObject(inobjs[sled]) # добавить след в сцену sled.worldPosition.x = pos.x #расположить след в точке столкновения sled.worldPosition.y = pos.y #расположить след в точке столкновения sled.worldPosition.z = pos.z - 1 #расположить след в точке столкновения, с заданным отступом print("41 sled.worldPosition = ", sled.worldPosition) # own['objs'] = [] # очистить список следов longSleda = 0
25 not 'objs' in own = True29 longSleda = 0 =31 not 'objs' in own = FalsePython script error - object 'Koleso', controller 'Python':Traceback (most recent call last): File "Text", line 33, in <module>NameError: name 'longSleda' is not defined
Как долго переменные живут, только в одном кадре, или я в чём-то другом ошибаюсь?
... рекомендовал бы использовать Module Mode против Script Mode, преимущества описаны здесь https://wiki.blender.org/index.php/Doc:/Tutorials/Game_Engine/ScriptMode_vs_ModuleMode ...... собственно Module Mode - полноценная программа внутри Blender с соответствующими областями видимости переменных, в том числе и global ...
Куском чего является этот твой код?
Если это внутри какой-либо функции, то все её локальные переменные живут только внутри одного вызова. Если нужно длительное хранение значения, то это должна быть либо глобальная переменная (для её изменения внутри функции применяется ключевое слово globals), либо она должна быть членом некоего большого объекта (тогда уже он должен быть глобальной переменной) - это может быть экземпляр класса, или, например, словарь.
... и отложил идею делать на неровной поверхности из-за усложнения расчётов ...... поэтому у меня интерес к этой теме тоже есть ...