================
WARNING!!!
================
Так, сразу предупреждаю: копипастить ragdoll Render'a из аналогичного семпла я НЕ НАМЕРЕН. Почему - не спрашивайте. Как говорится, t0p secre|)
================
Теперь по теме:
---
Итак, задача: сделать меш и физическое тело (с написанием всех элементов проблем нет), объеденить все тела (думаю, тоже сам смогу сваять) и сделать функцию приведения в соответствие всех элементов.
Именно с последним пунктом у меня и возникли проблемы. Поначалу использовал вот эту функцию, вычитав ее в справке (эх, пора-бы что ли справку поисправлять, или мне свежую версию найти... Кстати, никто не знает, где брать? Только точный линк, плз) :
pxBodySetBodyEntity ...
С этой коммандой все нормально компилировалось, однако никаких результатов ее работы я лично так и не обнаружил.
Потом глянул в семплы, нашел другой синтаксис:
pxBodySetEntity ...
Вот тут и начались веселости... Т.к. я работаю сразу в Realese режиме, я сразу же словил MAV. Угу, молодец, ничего не скажешь... Включил дебаг, поймал тот же самый MAV на строчке:
pxBodySetEntity a\meshL,a\bodyL
В чем же дело? Код вот такой:

;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
; |||||||||||||||||||||||||||||
; . . Initializing . . . . . .
; |||||||||||||||||||||||||||||
Include "b3d_dx9.bb" ; Include |-| 0 |_ \|/ lib...
; set Title, Mode, AntiAlias & Tex_Filter
xAppTitle "|)ynamics"
xGraphics3D 800,600,32,0,False
xAntiAlias True
xSetTextureFiltering TF_ANISOTROPIC
If xGetMaxVertexShaderVersion() > -1
xSetSkinningMethod SKIN_HARDWAREVS
skinvs = xLoadVertexShader("..\media\skinning.txt", "main", VS_1_1)
Else
xSetSkinningMethod SKIN_SOFTWARE
EndIf
; |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
; //////////////////////////////////////////////////////////
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
; |||||||||||||||||||||||||||||
; . . Player . . . . . . . . .
; |||||||||||||||||||||||||||||
Type arm
Field name$
;-----------|
Field meshL
Field bodyL
Field angL
;-----------|
Field meshU
Field bodyU
Field angU
;-----------|
Field rotate
Field Aend
End Type
; |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
; //////////////////////////////////////////////////////////
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
; |||||||||||||||||||||||||||||
; . . Creating . . . . . . . .
; |||||||||||||||||||||||||||||
cam = xCreateCamera()
xPositionEntity cam, 0, 0, -40
xCameraRange cam, 0.1, 1000
light1 = xCreateLight(LIGHT_DIRECTION)
xRotateEntity light1, -45, 0, 0
pxCreateWorld(1,"36777-32943-20423-12306-18567")
pxSetGravity(0, -10, 0)
create_pl()
; |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
; //////////////////////////////////////////////////////////
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
; |||||||||||||||||||||||||||||
; . . Main l00p . . . . . . . .
; |||||||||||||||||||||||||||||
While Not xKeyHit(1)
pxRenderPhysic(30,0)
update_pl()
xRenderWorld()
xFlip()
Wend
; |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
; //////////////////////////////////////////////////////////
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
; |||||||||||||||||||||||||||||
; . . Ending . . . . . . . . .
; |||||||||||||||||||||||||||||
End
; |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
; //////////////////////////////////////////////////////////
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
; |||||||||||||||||||||||||||||
; . . Functions . . . . . . . .
; |||||||||||||||||||||||||||||
; Create function
Function create_pl()
; Pre-creation
seg=xCreateCylinder()
xScaleEntity seg,1,3.5,1.5
xPositionMesh seg,0,-1.5,0
xHideEntity seg
;===========================
; Creation. Stage 1 == leg_L
;===========================
a.arm=New arm
a\name="leg_l"
a\meshL=xCopyEntity(seg)
xPositionEntity a\meshL,-1.5,3.8,0
; - -
a\bodyL=pxBodyCreateCylinder(0.6,3.5,8,7)
pxBodySetPosition a\bodyL,-1.5,4.5,0
;pxBodySetCMassGlobalposition a\bodyL,-1.5,3.8,0
;- - - - - - - - - - - - - -
a\meshU=xCopyEntity(seg)
xPositionEntity a\meshU,-1.5,6,0
;xEntityParent a\meshL,a\meshU
; - -
a\bodyU=pxBodyCreateCylinder(0.6,3.5,8,7)
pxBodySetPosition a\bodyU,0,10,0
;xHideEntity a\meshU
End Function
; Update function
Function update_pl()
For a.arm=Each arm
pxBodySetEntity a\meshL,a\bodyL
pxBodySetEntity a\meshU,a\bodyU
Next
End Function
; |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
; //////////////////////////////////////////////////////////
Если кто знает, в чем дело, просьба разъяснить... Ну, или рабочим вариантом поделиться... (^_^')