forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Анимация (и еще пару вопросов) (http://forum.boolean.name/showthread.php?t=4012)

jimon 05.08.2007 17:21

Re: Анимация (и еще пару вопросов)
 
Maestro
millisecs() ето просто таймер, он работает все время :) никогда не обнуляется

к примеру :
в начале проги пишем
ms = millisecs()
...
в цикле
work = Millisecs() - ms
print "programm work time : "+work
...

Leito 05.08.2007 17:23

Re: Анимация (и еще пару вопросов)
 
jimon, не он обнуляется иногда.)

Maestro 05.08.2007 18:02

Re: Анимация (и еще пару вопросов)
 
Гм. странные она значения принимает.
Скопируйте это в блиц:
While Not KeyHit(1)
Print MilliSecs()
Wend
Там какие-то гиганские цыферки получаются... почему он не с нуля считает?

jimon 05.08.2007 18:09

Re: Анимация (и еще пару вопросов)
 
Maestro
оно начинает с нуля ... когда винда стартует (поидее)
хотя фиг его знает что собсно оно щитает

ps. из справки модуля blitzmax'а :
"Get millisecond counter
Returns: Milliseconds since computer turned on."
так что оно возвращает количество милисек со времени врубления компа

Maestro 05.08.2007 18:46

Re: Анимация (и еще пару вопросов)
 
Гыыы. у меня за миллиард перевалило .)))

может ты знаешь как решить одну проблемку?
Короче проблема у меня со взрывом. Надо чтобы при столкновении корабль изчезал, проигрывался взрыв, потом корабль оживал... впринципе я все это сделал, НО единственнй способ, которым я смог сделать взрыв - это постоянно проигрывать анимтекстуры на модели, а саму модель при столкновении показывать, и при окончании кадров в ленте (некстуре) опять прятать... поэтому при столкновении анимация проигрывается не с начала, а как захочет...
Может можно как-то подругому сделать... или этот способ модфицировать...

Leito 05.08.2007 19:30

Re: Анимация (и еще пару вопросов)
 
1000000000/1000 = 1000000 секунд
1000000/3600 = 277 часов
277/24 = 11,5 суток

тоесть у тя полторы недели комп включен.

вывод: ты гонишь. или команда показывает не "количество милисек со времени врубления компа"

Android 05.08.2007 19:44

Re: Анимация (и еще пару вопросов)
 
Цитата:

Сообщение от Leito
1000000000/1000 = 1000000 секунд
1000000/3600 = 277 часов
277/24 = 11,5 суток

тоесть у тя полторы недели комп включен.

вывод: ты гонишь. или команда показывает не "количество милисек со времени врубления компа"

Ну почему гонишь - у меня комп уже около трех недель включенный стоит;)

Maestro 05.08.2007 20:39

Leito, упс. обсчитался. не миллиард, а 100 миллионов .))

Фух. Со взрывом разобрался. Так что если кто-то хотел помочь, обломитесь .) сам сделал.) Как только будут звуки вылажу демку (правда она отличается от прошлой практически только внешним видом:))

Leito 06.08.2007 00:49

Re: Анимация (и еще пару вопросов)
 
LaZZZeR, рекорд! Millisecs()=2 милиарда!
довайте соревнование устроим! по времени включения компа))
причем не перезагружая его!

Maestro 06.08.2007 01:05

Re: Анимация (и еще пару вопросов)
 
Leito, ага. только подтверждать скриншотом...

Maestro 06.08.2007 23:30

Re: Анимация (и еще пару вопросов)
 
Вот наконец добрался до звуков... что-то у меня не получается с первым же звуком. Проблема вот в чем: надо, чтобы при навидении на кнопку проигрывался один звук, при нажатии другой... ну короче все как положено. Но не могу реализовать. У меня есть функция для кнопки:
Код:

Function RefreshButton(ImBtn,x,y,txt$,n)
mx=MouseX(): my=MouseY()
MHit=MouseDown(1)
If RectsOverlap(x,y,ImageWidth(ImBtn),ImageHeight(ImBtn),mx,my,1,1) Then
  f=1
  y2=0
  If MHit=True Then
    f=2
    y2=2
    Button(n)=1
  EndIf
Else
  f=0
  y2=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(ImBtn)-4-FontHeight())+y2,txt$
End Function

Не могу сделать все как положено. Либо (если просто плейсаунд) при навидении на кнопку постоянно проигрывается звук. Либо (добавив пару монипуляций) проигравается только один раз... Я пытался сделать вот так:
Код:

Function RefreshButton(ImBtn,x,y,txt$,n)
mx=MouseX(): my=MouseY()
MHit=MouseDown(1)
If RectsOverlap(x,y,ImageWidth(ImBtn),ImageHeight(ImBtn),mx,my,1,1) Then
If sou=1 Then
  PlaySound SelectBut
  sou=0
 EndIf

  f=1
  y2=0
  If MHit=True Then
  If sou=0 Then
    PlaySound ClickBut
    sou=1
  EndIf

    f=2
    y2=2
    Button(n)=1
  EndIf
Else
sou=1
  f=0
  y2=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(ImBtn)-4-FontHeight())+y2,txt$
End Function

поидее строчка sou=1 должна выполняться только когда мышь не наведена на кнопку, но выполняется все время, и звук воспроизводится постоянно .(


ЗЫ: и почему не грузятся шрифты в названии которых присутствует "_"?

IGR 07.08.2007 12:40

Re: Анимация (и еще пару вопросов)
 
Цитата:

поидее строчка sou=1 должна выполняться только когда мышь не наведена на кнопку, но выполняется все время, и звук воспроизводится постоянно .(
ты попробуй sou=0 т.е. звук не будет играть !!

Maestro 07.08.2007 13:20

Re: Анимация (и еще пару вопросов)
 
IGR, ыы. если ставить sou=0, при наведении курсора на кнопку вообще не будит никаких звуков, а при нажатии на кнопку (если не отпускать ЛКМ) звук проигрывается вечно.

А нет команды типа MouseDown(1), только чтобы проверялось не нажатие, а отжатие после нажатия?

IGR 07.08.2007 13:28

Re: Анимация (и еще пару вопросов)
 
тогда зделай две переменных для звуков sou1 , sou2 !!
и попробуй так :

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
f=1
y2=0
If MHit=True
sou2=1
f=2
y2=2
Button(n)=1
EndIf
Else
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

Maestro 07.08.2007 13:38

Re: Анимация (и еще пару вопросов)
 
Да нет. я так тоже пытался. Смотри. Мы пишем
If sou1=1 Then
PlaySound SelectBut
sou1=0
EndIf
Но тут же проверяем, наведен ли курсор на кнопку, получаем положительный ответ, и...
If RectsOverlap(x,y,ImageWidth(ImBtn),ImageHeight(ImB tn),mx,my,1,1)
sou1=1
f=1
...
Следовательно звук каждый раз и проигрывается.


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

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