![]() |
Re: Анимация (и еще пару вопросов)
Цитата:
или ты хочеш чтоб звук проигрался один раз когда ты только первый раз подвидеш мышку к кнопке ?? тогда напиши : If RectsOverlap(x,y,ImageWidth(ImBtn),ImageHeight(ImB tn),mx,my,1,1) sou1=sou1+1 f=1 y2=0 ..... следовательно когда мы второй раз проверяем RectsOverlap то sou1=2 и звук играть не будет !! |
Re: Анимация (и еще пару вопросов)
Вложений: 2
IGR, мне надо, чтобы при наведении на одну кнопку проигрался один звук один раз, потом если отвести от кнопки курсор, а потом навести обратно на нее же или на другую кнопку, сново проигрался тот же звук один раз.
Поэтому если наращивать переменную sou1=sou1+1, ее надо как-то вернуть если увести курсор от кнопки.... Вот кстати код (там звуки и кнопка прилогаются) |
Re: Анимация (и еще пару вопросов)
Function RefreshButton(ImBtn,x,y,txt$,n)
mx=MouseX(): my=MouseY() MHit=MouseDown(1) If RectsOverlap(x,y,ImageWidth(ImBtn),ImageHeight(ImB tn),mx,my,1,1) sou1=1+1 f=1 y2=0 If MHit=True sou2=1 f=2 y2=2 Button(n)=1 EndIf Else sou1=0;если мышко не возле кнопки - обнуляем переменную f=0 y2=0 EndIf If sou1=1 Then PlaySound SelectBut sou1=0 EndIf If sou2=1 Then PlaySound ClickBut sou2=0 EndIf DrawImage ImBtn,x,y,f Color 0,0,0 Text x+0.5*(ImageWidth(ImBtn)+4-Len(txt$)*FontHeight()*0.5),y+0.5*(ImageHeight(ImB tn)-4-FontHeight())+y2,txt$ End Function код шас посмотреть не могу, так как я не дома !! вечером посмотрю !! |
Re: Анимация (и еще пару вопросов)
Ну. вот мы проктически и пришли к моему первому варианту. Проблема в том, что все после Else выполняется почемуто в любом случае... и все время sou1=0, следовательно звук вообще никогда не проиграется. А т.к. sou2=1 всегда, то при нажатии и держании кнопки мыши постоянно будет проигрываться звук нажатия .) Короче замкнутый круг.
|
Re: Анимация (и еще пару вопросов)
так чё, sou1 вообше не играет ??
|
Re: Анимация (и еще пару вопросов)
Цитата:
|
Re: Анимация (и еще пару вопросов)
IGR, нет. я уже пытался поставить там MouseHit, но тогда нажимается только первая кнопка...
|
Re: Анимация (и еще пару вопросов)
Цитата:
|
Re: Анимация (и еще пару вопросов)
Вложений: 2
Ну народ я с вас фшокэ!
Поправил я твой пример. Добавил всего 2 переменные! Sel - указывает на номер выделенной в данный момент кнопки Sel2 - отвечает за последнюю нажатую кнопку :imp: |
Re: Анимация (и еще пару вопросов)
Лазил тут по хелпу, нашел функцию ClearWorld. Она очищает все. А я до этого все удалял из памяти вручную FreeEntity, FreeImage, FreeTexture... или может у последних есть какие-то приемущества?
|
Re: Анимация (и еще пару вопросов)
Ну обычно быстрее удалить всё повыборочно, чтобы не грузить то что ещё будет использоваться, например в РПГ, интерфейс можно загрузить 1 раз, а вот модели для разных уровней разные. Это будет выйгришь большой во времени загрузки: Не предёться заного многое грузить, и например генерить заного кубемапу для бампа, ну и многое другое =)
|
Re: Анимация (и еще пару вопросов)
Выход: сделай функцию(-ии) где будешь удалять все что связано с одним уровнем. А лечше сделать функцию перехода с одного уроывня на другой(чтоб в ней было и удаление и вызов следующего уровня).
|
Re: Анимация (и еще пару вопросов)
H@NON, ну я так и сделал, просто при переходе с одного уровня на другой, и с другого на третий надо удалять не одинаковые объекты, поэтому одну функцию не применишь. Да и при выходе из игры надо все удалить... проще одной функцией это сделать, чем после добавления новых объектов править существующий ФриВесьМир .))
|
Re: Анимация (и еще пару вопросов)
Проще не значит лучше. Для каждого уровня делай свою функцию удаления, ну хотя если у тебя не больно сильно загружается память(скажем, меньше чем unreal turnament)), то можно и clearworld.
|
Re: Анимация (и еще пару вопросов)
Цитата:
Заносишь все ресурсы в классы, и функция просто перебирает ресурсы, и требуемый загрузить файл, если в классе есть такой файл, возвращать файл из класса, если нету загружать этот файл и вписывать в класс. Затем всё помечаешь что были востребованы в уровне. И все те что не имеют метки востребованности удалять. Всё просто. ;) |
Часовой пояс GMT +4, время: 10:10. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot