Тема: Разрабам
Показать сообщение отдельно
Старый 12.10.2010, 21:00   #1
Colossus
Разработчик
 
Аватар для Colossus
 
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений
(для 92 пользователей)
Сообщение Разрабам

Здравствуйте, уважаемые товарищи разработчики Xors3d!

у меня небольшая непонятка - к примеру:

написал такой код - пикаем кубик и на месте пика создается декаль(дырка от пули)(AlignToVectot и все такое)

переписал ето дело на }{ers3D и все работает косячно - декаль не алигнится по вектору, она создается в месте пика но не припарентивается к объекту пика... ет же полный пэ...

что же это? мои кривые руки или недоделка Xors3d?

Вот собственно все ето:

Код Блица

Graphics3D 1024,768,32,2
SetBuffer BackBuffer()

Camera = CreateCamera()
PositionEntity Camera,5,2,-10
Hole1=LoadSprite("Media\Gfx\Decal\Metall\Hole1.png",2)
HideEntity Hole1

pivot = CreatePivot()

CreateLight%()

Cube = CreateCube()
EntityPickMode Cube,2

While Not KeyHit(1)

If MouseHit(1) Then
    CameraPick(Camera,MouseX(),MouseY())
    If PickedEntity() <> 0 Then
        MakeHole(Hole1,pivot,5)
    End If
End If

RenderWorld
    Text 5,5,"PickedNX : "+PickedNX()
    Text 5,25,"PickedNY : "+PickedNY()
    Text 5,45,"PickedNZ : "+PickedNZ()
Flip
Wend
End

Function MakeHole(hole%,lvlpivot%,maxdecals%)
    hole=CopyEntity(hole,lvlpivot)
    SpriteViewMode hole,2
    ScaleSprite hole,0.1,0.1
    
    PositionEntity hole,PickedX(),PickedY(),PickedZ(),True
    RotateSprite hole,Rnd(0,360)
    AlignToVector(hole,-PickedNX(),-PickedNY(),-PickedNZ(),3)
    MoveEntity hole,0,0,-0.05
    If CountChildren(lvlpivot)>maxdecals Then FreeEntity GetChild(lvlpivot,1)
End Function
и код Xors3D

Include "xors3d.bb"
xGraphics3D 1024,768,32,False,True
xSetBuffer xBackBuffer()

Camera = xCreateCamera()
xPositionEntity Camera,5,2,-10
Hole1=xLoadSprite("Media\Gfx\Decal\Metall\Hole1.png",2)
xHideEntity Hole1

pivot = xCreatePivot()

xCreateLight%()

Cube = xCreateCube()
xEntityPickMode Cube,2

While Not xKeyHit(1)

If xMouseHit(1) Then
    xCameraPick(Camera,xMouseX(),xMouseY())
    If xPickedEntity() <> 0 Then
        MakeHole(Hole1,pivot,5)
    End If
End If

xRenderWorld
    xText 5,5,"xPickedNX : "+xPickedNX()
    xText 5,25,"xPickedNY : "+xPickedNY()
    xText 5,45,"xPickedNZ : "+xPickedNZ()
xFlip
Wend
End

Function MakeHole(hole%,lvlpivot%,maxdecals%)
    hole=xCopyEntity(hole,lvlpivot)
    xSpriteViewMode hole,4
    xScaleSprite hole,0.1,0.1
    
    xPositionEntity hole,xPickedX(),xPickedY(),xPickedZ(),True
    xRotateSprite hole,Rnd(0,360)
    xAlignToVector(hole,-xPickedNX(),-xPickedNY(),-xPickedNZ(),3)
    xMoveEntity hole,0,0,-0.05
    If xCountChildren(lvlpivot)>maxdecals Then xFreeEntity xGetChild(lvlpivot,0)
End Function
помоему все одинаково но на Xors3d не работает...
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb

Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)

Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
(Offline)
 
Ответить с цитированием