forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Смена Анимации. (http://forum.boolean.name/showthread.php?t=10338)

KingMaks 26.11.2009 22:59

Ответ: Смена Анимации.
 
Артем Валерьевич ты там чуть выше написал пример анимации
так у меня всегда какуето ашибку выдает вот мой код:


If KeyDown(200) Then
If AnimSeq(player) = 0
Animate player, 1, 0.5, 1, 10
End If

Else

If AnimSeq(player)=1
Animate player, 2, 1, 0, 10
End If

ОШИБКА: "FOREVER" without "repeat"
а када другими способами пишет "endif" without "else"

Артем Валерьевич 27.11.2009 10:19

Ответ: Смена Анимации.
 
Цитата:

Артёв Валерич. Нескромно благодарен. Но это я научился делать давныыым-
давноооо! Ты выше записи читал ??? ===>>>
Копипастеры в штабе! Живьём брать!!!


If KeyDown(200) Then
If AnimSeq(player) <> 0 Then Animate player, 1, 0.5, 1, 10
End If

Else
If AnimSeq(player)<>1 then Animate player, 2, 1, 0, 10
;End If

DeadElf 29.11.2009 20:36

Ответ: Смена Анимации.
 
KingMaks,если я правильно понимаю о чём ты, то:

If KeyDown(200) Then
If AnimSeq(player) = 0
Animate player, 1, 0.5, 1, 10
End If

Else

If AnimSeq(player)=1
Animate player, 2, 1, 0, 10
End If
End If

KingMaks 29.11.2009 21:57

Ответ: Смена Анимации.
 
та уже пашет все))

Ganociy 01.12.2009 13:01

Ответ: Смена Анимации.
 
Цитата:

Сообщение от DeadElf (Сообщение 127523)
KingMaks,если я правильно понимаю о чём ты, то:

If KeyDown(200) Then
If AnimSeq(player) = 0
Animate player, 1, 0.5, 1, 10
End If

Else

If AnimSeq(player)=1
Animate player, 2, 1, 0, 10
End If
End If

Ребята, выдействительно меня не понимаете?! Или я не так спрашиваю ?!
Я прошу код смены анимации у БОТА . Дан игрок , дан БОТ. Бот умеет драться и бегать.
Таквот выражаююсь русским языком .
Если дистанция между игроком и ботом меньше 5 , то анимировать бота анимацией АТАКА.
Если дистанция между игроком и ботом больше 5 , то анимировать юота анимацией БЕГ.
Но дело в том ,что он после того как проанимировался АТАКОй и дистанция уже стала меньше пяти, то он продолжакт дальше анимироваться АТАКОЙ , а не БЕГОМ. Т.е. зацикливается.
Так вот как сделать так, что бот как и вдругих нормальных играх не зацикливался?!

H@NON 01.12.2009 13:14

Ответ: Смена Анимации.
 
Код:

dist# = EntityDistance(player, bot)
If dist < 5 Then
      If AnimSeq(bot) <> seqAttack  Animate bot, 1, 0.5, seqAttack
Else
      If AnimSeq(bot) <> seqRun  Animate bot, 1, 0.5, seqRun
Endif


Ganociy 04.12.2009 18:37

Ответ: Смена Анимации.
 
И опять же как , да есть !!! Когда переходит границу дистанции 5-ти , то как бешенный кролик влево в право и всё . Выходит за границы 5-ти хорошо анимируется ходьбой. Хр#новина какая та.
Вот код создания и апдейта бота. (наш бот - model.На остальное не обращайте внимания.)

Function create_bot(x#,y#,z#)
b.bot=New bot
b\model=LoadAnimMesh ("Data\Bots\Zombie.b3d")
b\animrun=LoadAnimSeq (b\model,"Data\Bots\run.b3d")
b\animattack=LoadAnimSeq (b\model,"Data\Bots\attack.b3d")
Animate b\model,1,Rnd (0.4,1.8),b\animrun
ScaleEntity b\model,0.05,0.05,0.05
PositionEntity b\model,x#,y#,z#
;RotateEntity b\model,0,-180,0
b\entity=CreateSphere(32,b\model)
ScaleEntity b\entity,15,30,10
;PositionEntity b\entity,x#,y#,z#
MoveEntity b\entity,-3,40,-5
EntityAlpha b\entity,0
EntityPickMode b\entity,2
b\life=10
Return True
End Function

Function update_bot()
v#=Rnd (0.01,0.07)
For a.bot=Each bot
TurnEntity a\model,0,Sgn(DeltaYaw(a\model,player))*-0.9,0
MoveEntity a\model,0,0,-v#
;AI
dist#=EntityDistance (a\model,player)
If dist < 5 Then
If AnimSeq (a\model)<>a\animattack
Animate a\model,3,1,a\animattack,2
Else
If AnimSeq (a\model) <> a\animrun
Animate a\model,3,1,a\animrun,1
EndIf
EndIf
EndIf
;EndAI
Next
End Function

H@NON 04.12.2009 19:10

Ответ: Смена Анимации.
 
Блииин, ты выносишь всем мозг) Мало того, что тебе объяснили каждую команду, так тебе еще и каждый параметр в этой команде объяснять нужно? Юзай скорость в Animate


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

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