ExtractAnimSeq and types

Blitz3D Forums/Blitz3D Beginners Area/ExtractAnimSeq and types

HypnoXX(Posted 2007) [#1]
Hi,

i have problem with animation of types. All is ok if it is static, but when i try animate...
I was try warious calls and... Memory Acces Violation :/

Just please remove comments

sorry for my english

here is code:

---------------------
---------------------

Graphics3D 1024,768
SetBuffer BackBuffer()

mode=1:anim=1

AmbientLight 190, 190, 190

Global cam1 = CreateCamera()
PositionEntity cam1,0,0,100
RotateEntity cam1,0,220,0
CameraRange cam1,1,100000


Type woj ;warior

Field rodzaj ;kind of warior
Field numer ;number
Field pozX, pozY, pozZ ;position

End Type

Dim armia.woj(21)
Global liczba_wojow=22

wojowie()



While Not KeyDown(1) ; loop - Esc = exit

ruch()
; animuj()



UpdateWorld()
Flip
RenderWorld
Wend

End


Function wojowie ()

For arm=1 To liczba_wojow
armia.woj(arm) = New woj
armia(arm)\numer=arm

armia(arm)\pozX = arm*30
armia(arm)\pozZ = arm

armia(arm)\rodzaj=LoadAnimMesh( "mod\wyspa\postaci\osa3.b3d" ) ; path of animmesh
;armia(arm)\rodzaj=ExtractAnimSeq (woj,16,26)


PositionEntity armia(arm)\rodzaj,armia(arm)\pozX,0,0



Next

End Function

Function ruch()


If KeyDown( 17 )=True Then MoveEntity cam1,0,0,10
If KeyDown( 31 )=True Then MoveEntity cam1,0,0,-10
If KeyDown( 30 )=True Then TurnEntity cam1,0,2,0
If KeyDown( 32 )=True Then TurnEntity cam1,0,-2,0
End Function

Function animuj()
For arm=1 To liczba_wojow
armia(arm)\numer=arm
Animate armia(arm)\rodzaj,mode,.1,anim
Next
End Function

------------------------------
------------------------------

What I must change?


HypnoXX(Posted 2007) [#2]
OK, my friend KOMODOR find problems. Here is good code:

Graphics3D 1024,768,32,2
SetBuffer BackBuffer()
Global mode=1,anim=1
AmbientLight 190, 190, 190
light2=CreateLight()
LightColor light2,120,120,220
RotateEntity light2,0,40,0
PositionEntity light2, 70,20,70
light3=CreateLight()
LightColor light3,120,120,130
RotateEntity light3,0,0,0
PositionEntity light3, -400,20,0

Global cam1 = CreateCamera()
PositionEntity cam1,0,0,100
RotateEntity cam1,0,220,0
CameraRange cam1,1,100000

Type woj ;wojownik
Field rodzaj ;rodzaj ladowanego woja
Field numer ;numer jednostki
Field pozX, pozY, pozZ ;ozycja na której le?y
End Type
Dim armia.woj(21)
Global liczba_wojow=20
wojowie()


While Not KeyDown(1) ;petla glowna - Esc = Exit
ruch()
If KeyDown(200) Then animuj()

UpdateWorld()
Flip
RenderWorld
Wend
End

Function wojowie ()
For arm=1 To liczba_wojow
armia.woj(arm) = New woj
armia(arm)\numer=arm
armia(arm)\pozX = arm*30
armia(arm)\pozZ = arm
armia(arm)\rodzaj=LoadAnimMesh( "mod\wyspa\postaci\osa3.b3d")
ExtractAnimSeq(armia(arm)\rodzaj,16,26)

PositionEntity armia(arm)\rodzaj,armia(arm)\pozX,0,0

Next
End Function
Function ruch()

If KeyDown( 17 )=True Then MoveEntity cam1,0,0,10
If KeyDown( 31 )=True Then MoveEntity cam1,0,0,-10
If KeyDown( 30 )=True Then TurnEntity cam1,0,2,0
If KeyDown( 32 )=True Then TurnEntity cam1,0,-2,0
End Function
Function animuj()
For arm=1 To liczba_wojow
armia(arm)\numer=arm
Animate armia(arm)\rodzaj,mode,.1,anim
Next
End Function

---------------
www.blitzbasic.pl