|
3D-программирование Вопросы, касающиеся программирования 3D мира |
02.01.2007, 01:01
|
#1
|
AnyKey`щик
Регистрация: 05.10.2006
Сообщений: 14
Написано 0 полезных сообщений (для 0 пользователей)
|
Анимированные спрайты.
Подскажите пожалуйста как в Блице сделать анимированные спрайты? К примеру пламя свечи, или монстров как в М&M7?
|
(Offline)
|
|
02.01.2007, 01:06
|
#2
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Анимированные спрайты.
CreateSprite
LoadAnimTexture
EntityTexture
тебе помогут.
подробнее:
грузим анимированную тексу.
в цикле текстурим срайт текстурой с определенным кадром
EntityTexture spr,tex,frame
этот кадр, ясень пень, надо увеличивать в цикле
|
(Offline)
|
|
02.01.2007, 01:14
|
#3
|
AnyKey`щик
Регистрация: 05.10.2006
Сообщений: 14
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Анимированные спрайты.
Нечто подобное я пробовал. Получалось, что на спрайте рамка ползла по стрипу и ничего не получалось.
|
(Offline)
|
|
02.01.2007, 01:20
|
#4
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Анимированные спрайты.
для спрайта Blend-инг моде поставь 3 (для огня). если по краю рамка, то это скорее всего текстура некачественная
|
(Offline)
|
|
02.01.2007, 01:26
|
#5
|
AnyKey`щик
Регистрация: 05.10.2006
Сообщений: 14
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Анимированные спрайты.
Как некачественная?
Жаль что напрямую GIFы юзать нельзя!
|
(Offline)
|
|
02.01.2007, 14:44
|
#6
|
|
Re: Анимированные спрайты.
Tasadar
некачественая всмысле или сильно зжата или криво зделана
|
|
|
02.11.2011, 23:26
|
#7
|
AnyKey`щик
Регистрация: 22.10.2011
Сообщений: 15
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Анимированные спрайты.
Сделал всё как выше описано но такая проблема возникла: скорость смены кадров текстуры оочень огромна. Хотя в скрипте вроде всё как надо:
Function ubdate_pedobear()
If MilliSecs() > timer + 1000
d=d*(-1)
timer=MilliSecs()
EndIf
If d>0 Then k=1 Else k=0
EntityTexture spr_ped, anim_ped, k
End Function
|
(Offline)
|
|
03.11.2011, 14:47
|
#8
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Анимированные спрайты.
If MilliSecs() > timer + 1000
d=d*(-1)
timer=MilliSecs()
Это как понять:
если мсек больше чем таймер+1000 то
д=-д--ЗАЧЕМ??
таймер=мсек...
Фсё
так??
..
по твоему коду видно что "д" будет менятся всегда(каждый такт)..так?
и зачем нужна вообще Д если можно было менять К(k=not k)
Function ubdate_pedobear()
k=k+1
EntityTexture spr_ped, anim_ped,k mod 50;количество фреймов -1
End Function
так не проще????
|
(Offline)
|
|
03.11.2011, 16:54
|
#9
|
AnyKey`щик
Регистрация: 22.10.2011
Сообщений: 15
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Анимированные спрайты.
Да d я ввёл просто потому что так в голову взбрело. Чтобы посмотреть как работает. И функция у меня работала, но когда я применил её к спрайту то получилась херня( которую я уже описывал). А то что вы мне написали, во-первых, не работает. Во-вторых я даже не понял как оно должно работать При чём тут Mod? Это же остаток от деления. Что это вообще? объясните пожалуйста!
|
(Offline)
|
|
03.11.2011, 17:02
|
#10
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Анимированные спрайты.
а...сори..работать не будет так как каждый раз функция очищает свои значения(для моего примера k должна быть глобальной)...
зачем mod??
пример:k=будет больше чем количество фреймов(оно может быть любым если не обнулять(что наверное проще))..то mod 50 будет постоянно интегрироватся от 0 до 49
global frame%=0
Function ubdate_pedobear()
frame=frame+1
if frame>30 frame=0 ; тут интеграция будет мах до 30
EntityTexture spr_ped, anim_ped,frame
End Function
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
03.11.2011, 17:24
|
#11
|
AnyKey`щик
Регистрация: 22.10.2011
Сообщений: 15
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Анимированные спрайты.
Это я понял и уже исправил. Но вопрос вот в чём: Мне нужно чтобы смена кадра была 1 раз в секунду. Но даже с таймером у меня получается скорость over9000 кадров/сек.
|
(Offline)
|
|
03.11.2011, 19:01
|
#12
|
ПроЭктировщик
Регистрация: 16.04.2008
Сообщений: 161
Написано 36 полезных сообщений (для 63 пользователей)
|
Ответ: Анимированные спрайты.
ну потому что прибавлять надо по таймеру
global frame%=0,timer%
Function ubdate_pedobear()
if millisecs()>timer then
timer=millisecs()
frame=frame+1
endif
if frame>30 frame=0 ; тут интеграция будет мах до 30
EntityTexture spr_ped, anim_ped,frame
End Function
__________________
форум эт вещь... и почему я раньше им не пользовался?
AMD Phenom(tm) II X6 3.20GHz 8GB GTX 550(1Gb)
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Spy4433 за это полезное сообщение:
|
|
03.11.2011, 20:21
|
#13
|
AnyKey`щик
Регистрация: 22.10.2011
Сообщений: 15
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Анимированные спрайты.
Уррааа! заработало
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:47.
|