1 брать каждый треугольник меша колеса:
Кстати, хотел давно спросить. Николай Николаев, а можно такую "цацку" сделать с рисованием в текстуру в BGE? А то, куча объектов для следа - это будет сильно тормозить, если их не уничтожать со временем... нужно для царапин и следов от выстрелов и холодного оружия... визуализации повреждений противников...
import bgeimport randomfrom PIL import Imagefrom bgl import Buffer, GL_BYTEdd = 1024d2 = dd/2bb = 128b2 = 64ss = 5sc = bge.logic.getCurrentScene()ob = sc.objects['ground']ground = Image.open(bge.logic.expandPath("//ground.png"))sled = Image.open(bge.logic.expandPath("//brush.png")) def init(): ob.collisionCallbacks.append(order) addSp(None) def addSp(ob): sp = sc.objectsInactive["Sphere"] sp = sc.addObject(sp) sp.worldPosition = (random.random()*ss-ss/2,random.random()*ss-ss/2,7) if ob: ob.endObject()def order(object, point, normal): x = int((1.0+point.x/ss)/2*dd-b2) y = int((1.0-point.y/ss)/2*dd-b2) image = ground sleds = image.crop((x,y,x+bb,y+bb)) for i in range(int(random.random()*7+3)): brush = sled.copy() r = 180*random.random() s = int(random.random()*bb) brush = brush.rotate(r) brush = brush.resize((s,s)) sleds.paste(brush,(0,0),brush) image.paste(sleds,(x,y)) image = image.convert("RGB") image = image.transpose(Image.FLIP_TOP_BOTTOM) idata = image.tobytes() ibuff = Buffer(GL_BYTE,len(idata),idata) if "buff" not in ob: ob["buff"] = bge.texture.ImageBuff() ob["buff"].load(ibuff,dd,dd) bge.logic.texture = bge.texture.Texture(ob,0) bge.logic.texture.source = ob["buff"] bge.logic.texture.refresh(True) addSp(object)
>> Есть ли способ в Blender подобной разбивки.... в режиме редактирования выделить все полигоны A и далее Ctrl+T ...
>> если я ещё не совсем надоел... нет никакой необходимости оправдываться, смело задавай вопросы и если ответа не последовала пробуй их задать ещё раз ...
>> Участить обращение к модулю возможно? Вроде и так сенсор "Всегда" будирует контроллер. ... суть в том, что ты не понял что "Всегда" тут не причём ...... "Всегда" срабатывает один раз и вызывает не модуль, а функцию модуля (по ходу модуль инициализируется, но для тебя важен именно вызов функции модуля) ...... для того чтобы решить задачу тебе нужно отчасти восстановить ту логику которую ты использовал ранее но в контексте модуля ...... то есть - запоминать точку соприкосновения (которая сформировалась в результате срабатывания коллизии) и далее при следующем срабатывании коллизии заполнять путь от старого значения соприкосновения до нового с учётом длины следа, после чего новое значение нужно поместить на место ранее запомненного и ждать очередного срабатывания коллизии ...