forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Коллизия в анимации (http://forum.boolean.name/showthread.php?t=8570)

Kyard 27.06.2009 20:07

Коллизия в анимации
 
У меня проблема которую я не могу решить :wallbash: . Все варианты которые мне предложили не смог реализовать((( Код полностью рабочий, но анимация проходит на сквозь.
Помогите кто чем может! (исправьте код):SOS:
Вот код:

Graphics3D 1440,900,32,2


Const robotcol = 1


l = CreateLight() ; свет
RotateEntity l, 0, 45, 45 ; поварачиваем свет

fir = CreatePivot() ; хз зачем это

ground = CreatePlane ( ) ; создаем землю

PositionEntity ground,0,-8,0 ; задаем кординаты земли

grass = LoadTexture ("D:\Проги\Bliz3D\1.jpg") ; загружаем текстуру земли

ScaleTexture grass,50,50 ; увеличиваем текстуру земли

EntityTexture ground, grass ; хз зачем это


dom = LoadAnimMesh ("D:\Проги\Blitz3D\дом.3ds") ; загружаем дом с анимацией

PositionEntity dom,0,-8.5 ,50 ; позиция дома

ScaleEntity dom,0.3,0.3,0.3 ; размеры дома

EntityType dom, 1 ; хз зачем это








robot = LoadAnimMesh ("D:\Проги\Blitz3D\анимация1.3ds") ; загружаем перса

cam = CreateCamera( robot) ; создаем и направляем камеру на перса

PositionEntity cam, -10, 70, 130 ; позиция камеры

LoadAnimSeq robot, "D:\Проги\Blitz3D\бег.3ds" ; перс шагает анимация

LoadAnimSeq robot, "D:\Проги\Blitz3D\прыжок.3ds" ; перс прыгает анимация

LoadAnimSeq robot, "D:\Проги\Blitz3D\присед.3ds" ; перс приседает анимация


ScaleEntity robot, 0.2, 0.2, 0.2 ; размеры перса

; переменные

rx# = 10

ry# = -8

rz# = 0

dy# = 0

ang = 90




PositionEntity robot, rx#, ry#, rz# ; позиция перса

RotateEntity robot, 0, ang + 90, 0 ; хз зачем это

EntityType robot, 2 ; хз зачем это

PointEntity cam, robot ; камеру на перса ; хз зачем это


Collisions 1, 2, 1,3 ; хз зачем это


Repeat ; хз зачем это


EntityCollided robot,2 ; хз зачем это

PositionEntity robot, rx#, ry#, rz# ; хз зачем это

RotateEntity robot, 0, ang + 90, 0 ; хз зачем это


; загружаем анимацию по приседанию

If KeyDown(46) Then

If AnimSeq (robot) = 0 Then Animate robot, 3, 0.5, 3, 10

ry# = ry# - 1

Else

If AnimSeq (robot) = 3 Then Animate robot, 1, 1, 0, 10



End If


; прыжок анимация не подключена но прыжок есть (просто смещение по Y)

If KeyDown (57) Then

If ry# = -8 Then dy# = 2

End If

ry# = ry# + dy#

dy# = dy# - 0.1

If ry# < -8 Then ry# = -8: dy# = 0


; анимация бега

If KeyDown (200)


If AnimSeq (robot) = 0 Then Animate robot, 1, 0.5, 1, 10

rx# = rx# + Cos (ang) *0.2

rz# = rz# + Sin (ang) * 0.2

Else


If AnimSeq (robot) = 1 Then Animate robot, 2, 1, 0, 10

End If


; поворачивает влево и право

If KeyDown(203) Then ang = ang + 0.7

If KeyDown (205) Then ang = ang - 0.7

; выход из программы

If KeyDown (1) Then Exit




UpdateWorld ; хз зачем это

RenderWorld ; хз зачем это

Flip ; хз зачем это

Forever ; хз зачем это



UpdateWorld ; хз зачем это
RenderWorld ; хз зачем это
Flip ; хз зачем это
WaitKey ; хз зачем это

tormoz 27.06.2009 20:18

Ответ: Коллизия в анимации
 
стописят раз проблема описывалась на форуме.
ищи и будет счастье


Часовой пояс GMT +4, время: 18:30.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot