Сообщение от cancel
Маленкий "plain" и на его кладу текстуру.
Мне же надо "collision detection" в 3D.
Но пока типа:
Global cop = LoadTexture ("c:\temp\cop.bmp")
Global copc=CreateCube ()
ScaleEntity copc,1.5,0.01,3.0
А если для каждого спрйта просто черную копию сделать и рисовать?
Потом копировать для каждого человека и машины?
|
Эх да, стар я стал, не подумал

Но только неправильно ты, дядя Фёдор, бутерброд ешь.
Во-первых, кубик здесь не рулит.
У куба шесть граней, а нам нужна только одна - верхняя.
Так что куб в топку.
Надо самому построить меш! С преферансом и куртизанками!
Что это даст? Вместо 24 полигонов получим 4, вместо 2 ентити - один. Это улучшит производительность.
Вот тебе простой пример создания меша:
Graphics3D 800,600,32,2
SetBuffer BackBuffer()
cam = CreateCamera()
PositionEntity cam, 0,5,0
TurnEntity cam, 90,0,0
sprite = CreateMesh()
surf = CreateSurface(sprite)
v0 = AddVertex (surf, -1,0,-1, 0 ,1)
v1 = AddVertex (surf, -1,0,1, 0 ,0)
v2 = AddVertex (surf, 1, 0,1, 1,0)
v3 = AddVertex (surf, 1, 0,-1, 1,1)
AddTriangle (surf,v0,v1,v2)
AddTriangle (surf,v2,v3,v0)
RenderWorld()
Flip()
WaitKey()
End
На него, в принципе, уже можно натягивать текстуру.
Но в этом же сурфейсе нужно создать ещё такие же 2 полигона, вершины которых ты покрасишь в чёрный цвет, то есть это и будет тень. Добавишь этим вершинам альфу - тень будет полупрозрачна. Соответствующие команды найдёшь в справке.
Вертеть только придётся по-особенному, т.к. у объекта и тени разные центры. Тут уж вспоминай тригонометрию и верти их. (Гугли Поворот точки на плоскости)
Если разберёшься с этим, то будешь круче, чем яйца

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