У меня проблема которую я не могу решить
. Все варианты которые мне предложили не смог реализовать((( Код полностью рабочий, но анимация проходит на сквозь.
Помогите кто чем может! (исправьте код)
Вот код:
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 ; хз зачем это