Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 24.12.2007, 18:01   #1
JeSss
ПроЭктировщик
 
Регистрация: 05.08.2007
Сообщений: 115
Написано 0 полезных сообщений
(для 0 пользователей)
Смех Двойная анимация

Как сделать чтобы при нажатии кнопки проигравалось сразу 2 анимации?
(Offline)
 
Ответить с цитированием
Старый 24.12.2007, 18:06   #2
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Двойная анимация

а как ты делаеш чтобы у тебя проиграывалась одна?
(Offline)
 
Ответить с цитированием
Старый 24.12.2007, 18:40   #3
JeSss
ПроЭктировщик
 
Регистрация: 05.08.2007
Сообщений: 115
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Двойная анимация

Сообщение от HolyDel
а как ты делаеш чтобы у тебя проиграывалась одна?
Сначала
box = LoadAnimMesh("normal.b3d")
LoadAnimSeq box, ("left.b3d")
LoadAnimSeq box, ("right.b3d")

затем в цикле
If KeyDown(17)
If AnimSeq(Box)=0 Animate Box,2,1,2,10
Else
If AnimSeq
(Box)=1 Or AnimSeq(Box)=2 Animate Box, 2,1,0,10
EndIf
(Offline)
 
Ответить с цитированием
Старый 24.12.2007, 18:41   #4
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Двойная анимация

Сначала

box = LoadAnimMesh("normal.b3d")
LoadAnimSeq box, ("left.b3d")

box2 = LoadAnimMesh("normal2.b3d")
LoadAnimSeq box2, ("left2.b3d")


затем в цикле
If KeyDown(17)
If AnimSeq(Box)=0
Animate Box,2,1,2,10
Animate Box2,2,1,2,10
endif
Else
If AnimSeq(Box)=1 Or AnimSeq(Box)=2 Animate Box, 2,1,0,10
If AnimSeq(Box2)=1 Or AnimSeq(Box2)=2 Animate Box2, 2,1,0,10

EndIf
найди 10 отличий
(Offline)
 
Ответить с цитированием
Старый 24.12.2007, 19:44   #5
JeSss
ПроЭктировщик
 
Регистрация: 05.08.2007
Сообщений: 115
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Двойная анимация

теперь ни 1 из 2 анимаций непашет(
(Offline)
 
Ответить с цитированием
Старый 24.12.2007, 19:52   #6
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Двойная анимация

эмм. а у тебя есть файлы
"normal2.b3d"
и
"left2.b3d"?


далее правочка:
If KeyDown(17)
If AnimSeq(Box)=0
Animate Box,2,1,2,10
endif
If AnimSeq(Box2)=0
Animate Box2,2,1,2,10
endif
Else
If AnimSeq(Box)=1 Or AnimSeq(Box)=2 Animate Box, 2,1,0,10
If AnimSeq(Box2)=1 Or AnimSeq(Box2)=2 Animate Box2, 2,1,0,10

EndIf
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Arles (25.10.2009)
Старый 24.12.2007, 20:00   #7
JeSss
ПроЭктировщик
 
Регистрация: 05.08.2007
Сообщений: 115
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Двойная анимация

да, эти файлы я сделал, но нифига непашет...
Кстати, и этот тоже нет(
(Offline)
 
Ответить с цитированием
Старый 24.12.2007, 20:14   #8
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Двойная анимация

даже хз.
может ето из за забытого
LoadAnimSeq box, ("right.b3d")
и соответственно
LoadAnimSeq box2, ("right2.b3d")
?
(Offline)
 
Ответить с цитированием
Старый 24.12.2007, 20:36   #9
JeSss
ПроЭктировщик
 
Регистрация: 05.08.2007
Сообщений: 115
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Двойная анимация

не, наврятли, я кстати ту страку удалил...
(Offline)
 
Ответить с цитированием
Старый 27.12.2007, 13:06   #10
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Двойная анимация

Пролистай чайлды в корню модельки, и пробуй анимацию грузить к чайлду с именем модельки, и анимировать непосредственно этот чайлд.
(Offline)
 
Ответить с цитированием
Старый 27.12.2007, 21:35   #11
JeSss
ПроЭктировщик
 
Регистрация: 05.08.2007
Сообщений: 115
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Двойная анимация

Я непонял чё ты щас сказал т.к. я про чайлды ..... хз)
(Offline)
 
Ответить с цитированием
Старый 28.12.2007, 11:48   #12
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Двойная анимация

Тогда го справка, учи функции: CountChildren, GetChild, FindChild, LoadAnimSeq.
(Offline)
 
Ответить с цитированием
Старый 28.12.2007, 12:11   #13
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Двойная анимация

Итак, дамы и господа, если вы хотите, затекстурить, установить альфу, режим блендинга, или еще что либо для анимированной модели, то делайте ето в рекурсии. Марк - жопа, и не написал необходимых функций, но мы то с вами, тоже не дураки, поетому можем написать сами.

вот всякие ф-ии для работы с анимированными объектами

Function AnimEntityTexture(aent,tex,frame=0,layer=0)
Local ent
EntityTexture aent,tex,frame,layer
For c=1 To CountChildren(aent)
	ent=GetChild(aent,c)
	If CountChildren(ent)>0
	AnimEntityTexture(ent,tex,frame,layer)
	Else
	If EntityClass(ent)="Mesh" Then EntityTexture ent,tex,frame,layer
	EndIf
Next
End Function

Function AnimEntityColor(aent,r,g,b)
Local ent
EntityColor aent,r,g,b
For c=1 To CountChildren(aent)
	ent=GetChild(aent,c)
	If CountChildren(ent)>0
	AnimEntityColor(ent,r,g,b)
	Else
	If EntityClass(ent)="Mesh" Then EntityColor ent,r,g,b
	EndIf
Next
End Function

Function AnimEntityAlpha(aent,a#)
Local ent
EntityAlpha aent,a
For c=1 To CountChildren(aent)
	ent=GetChild(aent,c)
	If CountChildren(ent)>0
	AnimEntityAlpha(ent,a)
	Else
	If EntityClass(ent)="Mesh" Then EntityAlpha ent,a
	EndIf
Next
End Function


Function AnimEntityFX(aent,fx)
Local ent
EntityFX aent,fx
For c=1 To CountChildren(aent)
	ent=GetChild(aent,c)
	If CountChildren(ent)>0
		AnimEntityFX(ent,fx)
	Else
		If EntityClass(ent)="Mesh" Then EntityFX ent,blend
	EndIf
Next
End Function

Function AnimEntityBlend(aent,blend)
Local ent
EntityBlend aent,blend
For c=1 To CountChildren(aent)
	ent=GetChild(aent,c)
	If CountChildren(ent)>0
		AnimEntityBlend(ent,blend)
	Else
		If EntityClass(ent)="Mesh" Then EntityBlend ent,blend
	EndIf
Next
End Function

Function AnimEntityPickMode(aent,mode)
	EntityPickMode aent,mode,0
	For i=1 To CountChildren(aent)
		AnimEntityPickMode(GetChild(aent,i),mode)
	Next
End Function

Function AnimEntityAnimate(aent,mode=1,speed#=1,sequence=0,transition#=0)
	Local ent
	Animate(aent,mode,speed#,sequence,transition#)
	For c=1 To CountChildren(aent)
		ent=GetChild(aent,c)
		If CountChildren(ent)>0
			AnimEntityAnimate(ent,mode,speed#,sequence,transition#)
		Else
			Animate(ent,mode,speed#,sequence,transition#)
		EndIf
	Next	
End Function
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двойная проверка MouseHit(1) Hurrit Blitz3D 1 14.05.2009 19:43
Анимация ArtemkA 3D-программирование 12 02.02.2009 23:31
анимация Jenya 3D-программирование 2 22.06.2007 01:42
анимация и FPS Leito 3D-программирование 4 11.02.2007 09:30
Анимация Ins!de 3D-программирование 4 11.08.2006 23:45


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com