![]() |
Проблема при чтении AnimSeq с файла
допустим у меня в текстовом файле
12 34 52 64 78 99 непарная строка - первый кадр анимсека, парная - последний !! читаю их с файла ExtractAnimSeq model, Int(ReadLine(File)),Int(ReadLine(File)) ......... потом анимирую модель Animate model,1,1,1; должен играть первый анимсек, а играет вся анимка т.е. нулевай анимсек !! В чем проблема ?? :4to: кста, даные с файла читаются - это 100 проц !! |
Re: Проблема при чтении AnimSeq с файла
IGR
порядок поступления аргументов в функцию не определяется тоесть если ты пишеш blabla(a1(),a2()) то что будет сначала вызвано a1 или a2 не известно :) поетому сначала прочитай инфу в переменые а только потом вызывай функцию |
Re: Проблема при чтении AnimSeq с файла
верно.
в блице кстати более менее определен - задом наперед. |
Re: Проблема при чтении AnimSeq с файла
да, я кста потом анимсеки в масив загнал, и потом их оттуда читал !!
ExtractAnimSeq model (mas(0,0)),mas(0,1)) ... и всё равно тоже самое !! а может LoadAnimSeq надо ?? |
Re: Проблема при чтении AnimSeq с файла
А зачем такое вообще нужно, чтоб из файла анимсеки считывать? это чушь, уж если и записывать то в код. Подумай, нужно ли это настолько тебе , чтоб тратить на это время?!
|
Re: Проблема при чтении AnimSeq с файла
Ладно еслиб у тебя было 30-150 моделий которые нужно анимаровать по частям, то тогда ето былобы актуально, а так! хотя имхо и так тожа нече!(шарится в коде не надо, открыл блокнот и поменял что надо!)
|
Re: Проблема при чтении AnimSeq с файла
моделер открыл 2 метровый код игры, поменял пару чисел
и отправил на главный сервер компилироватся да вас нафиг уволят через 2 дня работы :) |
Re: Проблема при чтении AnimSeq с файла
как ты считывал в массив?
|
Re: Проблема при чтении AnimSeq с файла
Цитата:
ReadLine$(file) а что ?? но с файла всё четается - это 100 проц !! |
Re: Проблема при чтении AnimSeq с файла
IGR
давай код :) |
Re: Проблема при чтении AnimSeq с файла
gwidth = 800
gheight = 600 Graphics3D gwidth,gheight,32,2 HidePointer Global player = CreatePivot() PositionEntity player,0,45,-300 Global FPS,LastCheck,Frames,campitch#,mvx#,mvy#,mvz# Global C = CreateCamera(player) CameraClsColor C,0,0,0 CameraRange C,0.1,1500 CameraClsColor C,0,0,0;128,128,150 CameraFogRange C,500,1300 CameraFogMode C,1 CameraFogColor C,0,0,0;128,128,150 mx = MouseX() my = MouseY() plan = CreatePlane () p_t = LoadTexture ("Stone3_t2.jpg") ScaleTexture p_t,100,100 EntityTexture plan,p_t ;======||===== BEGIN ANIMATION ====||================== Const anim_stay = 1; Const anim_walk = 2; Const anim_go = 3; Const anim_attack = 4; Const anim_die = 5; ;=========== END ======================== ;=======||======= ENEMY MODES ======= ; режимы поведения врагов Const emod_stay% = 1; свободная стойка Const emod_walk% = 2; свободная ходьба Const emod_go% = 3; враг направляется к персу Const emod_attack% = 4; враг атакует перса Const emod_die% = 5; враг умерает ;=======||=======||=======||======= Type enemy Field e_pivot; повот Field e_model; модель Field e_point; вей-поинт Field e_name$; имя врага Field e_mode; режим врага Field e_life; жизнь врага Field e_alert End Type Dim d_en.enemy(10); максимальное количество врагов Global NumEnemy = -1 Dim EnemySeq(5,2) EnemySF = OpenFile("enemies\dwarf\dwarf_anim.txt") For i=0 To 4 EnemySS = ReadLine$(EnemySF) EnemySeq(i,0) = EnemySS EnemySS = ReadLine$(EnemySF) EnemySeq(i,1) = EnemySS Next CloseFile(EnemySF) Global EModPath$ = "enemies\" ; Создать_Врага(модель$,имя$,состояние%,X%,Y%,Z%,ang le%) Function CRT_enemy(f_model$,f_name$,f_mode%,EX%,EY%,EZ%,Ang le%) NumEnemy = NumEnemy + 1 d_en(NumEnemy) = New enemy d_en(NumEnemy)\e_pivot = CreateSphere() d_en(NumEnemy)\e_point = CreateSphere() ;PositionEntity d_en(NumEnemy)\e_point, EX, EY, EZ PositionEntity d_en(i)\e_point,EntityX(d_en(i)\e_point)+Rnd(-P_di,P_di),EntityY(d_en(i)\e_point),EntityZ(d_en(i )\e_point)+Rnd(-P_di,P_di) PositionEntity d_en(NumEnemy)\e_pivot, EX, EY, EZ d_en(NumEnemy)\e_model = LoadAnimMesh(EModPath$+f_model$+"\"+f_model$+".b3d ",d_en(NumEnemy)\e_pivot) PositionEntity d_en(NumEnemy)\e_model, 0,0,0 EntityType d_en(NumEnemy)\e_pivot, TypeEnemy EntityRadius d_en(NumEnemy)\e_pivot, 40 d_en(NumEnemy)\e_name$ = f_name$ ; вариан с ЧТЕНИЕМ Сикуенсов с масива ;ExtractAnimSeq (d_en(NumEnemy)\e_model,EnemySeq(0,1),EnemySeq(0,1 )) ;ExtractAnimSeq (d_en(NumEnemy)\e_model,EnemySeq(1,1),EnemySeq(1,1 )) ;ExtractAnimSeq (d_en(NumEnemy)\e_model,EnemySeq(2,1),EnemySeq(2,1 )) ;ExtractAnimSeq (d_en(NumEnemy)\e_model,EnemySeq(3,1),EnemySeq(3,1 )) ;ExtractAnimSeq (d_en(NumEnemy)\e_model,EnemySeq(4,1),EnemySeq(4,1 )) ; вариан с ЧТЕНИЕМ Сикуенсов с файла ;EAF = OpenFile(EModPath$+f_model$+"\"+f_model$+_anim.txt ") ;ExtractAnimSeq (d_en(NumEnemy)\e_model,Int(ReadLine$(EAF)),Int(Re adLine$(EAF))) ;ExtractAnimSeq (d_en(NumEnemy)\e_model,Int(ReadLine$(EAF)),Int(Re adLine$(EAF))) ;ExtractAnimSeq (d_en(NumEnemy)\e_model,Int(ReadLine$(EAF)),Int(Re adLine$(EAF))) ;ExtractAnimSeq (d_en(NumEnemy)\e_model,Int(ReadLine$(EAF)),Int(Re adLine$(EAF))) ;ExtractAnimSeq (d_en(NumEnemy)\e_model,Int(ReadLine$(EAF)),Int(Re adLine$(EAF))) ;CloseFile(EAF) ExtractAnimSeq (d_en(NumEnemy)\e_model,75,88) ExtractAnimSeq (d_en(NumEnemy)\e_model,2,14) ExtractAnimSeq (d_en(NumEnemy)\e_model,16,26) ExtractAnimSeq (d_en(NumEnemy)\e_model,112,126) ExtractAnimSeq (d_en(NumEnemy)\e_model,230,251) ScaleEntity d_en(NumEnemy)\e_model,1,1,1 d_en(NumEnemy)\e_mode = f_mode% d_en(NumEnemy)\e_alert = f_mode% EntityPickMode d_en(NumEnemy)\e_model, 2 NameEntity d_en(NumEnemy)\e_model, "model DWARF" d_en(NumEnemy)\e_life = 100 TurnEntity d_en(NumEnemy)\e_pivot, 0, Angle, 0 End Function ;константы разстояния и атаки Const V_di = 200; Visible_DIstance - бот замечает перса Const S_di = 400; Stay_DIstance - бот наченает движение, если стоял Const A_di = 70; Attack_DIstance - бот атакует Const P_di = 500; Pivot_DIstance - создается вей-пивот Global BOT$ = " " Global BOT_LIFE Global MYLIFE# = 300 Global KILLS = 0 Repeat UDT_enemy() move_me() UpdateWorld RenderWorld GetFPS() Text 10,10,FPS Text 10,30,"X "+Str(EntityX(player))+" Y "+EntityY(player)+" Z "+EntityZ(player) Text 10,70,"POLYGONS: " + TrisRendered() Text 10,90,BOT$ Text 10,110,Str(BOT_LIFE) Text 10,130,Str(MYLIFE) Text 10,150,Str(KILLS) Text 200,10,EnemySeq(0,0)+" - "+EnemySeq(0,1) Text 200,30,EnemySeq(1,0)+" - "+EnemySeq(1,1) Text 200,50,EnemySeq(2,0)+" - "+EnemySeq(2,1) Text 200,70,EnemySeq(3,0)+" - "+EnemySeq(3,1) Text 200,90,EnemySeq(4,0)+" - "+EnemySeq(4,1) Flip False Until KeyHit(1) End Function GetFPS() Frames = Frames + 1 If MilliSecs() > LastCheck+1000 Then LastCheck = MilliSecs() FPS = Frames Frames = 0 EndIf Return FPS End Function Function move_me() V#=0.7 u#=60 TurnEntity c,MouseYSpeed()*0.25,0,0 TurnEntity player,0,-MouseXSpeed()*0.25,0 If KeyDown(30)=1 Then MoveEntity player,-V#,0,0 If KeyDown(32)=1 Then MoveEntity player,V#,0,0 If KeyDown(17)=1 Then MoveEntity player,0,0,+V# If KeyDown(31)=1 Then MoveEntity player,0,0,-V#:iWalking = True If KeyDown(203)=1 Then MoveEntity player,-V#,0,0 If KeyDown(205)=1 Then MoveEntity player,V#,0,0 If KeyDown(200)=1 Then MoveEntity player,0,0,+V# If KeyDown(208)=1 Then MoveEntity player,0,0,-V# MoveMouse GraphicsWidth()*0.5,GraphicsHeight()*0.5 If Abs(EntityPitch#(c))>u# RotateEntity c,u#*Sgn(EntityPitch#(c)),0,0 End Function |
Re: Проблема при чтении AnimSeq с файла
ИГР: нужен был только этот кусок, мог и не заваливать на всю страницу.
Цитата:
|
Re: Проблема при чтении AnimSeq с файла
Код:
Dim EnemySeq%(5,2) |
Re: Проблема при чтении AnimSeq с файла
jimon, thank U very mach !!
|
Re: Проблема при чтении AnimSeq с файла
Кстати, я раньше никогда не делал через int, просто писал readline без $ и все работало. (и кроме того так должно быть быстрее)
|
Часовой пояс GMT +4, время: 22:46. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot