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)

Raiter 01.08.2007 01:40

Re: Анимация (и еще пару вопросов)
 
EntityX(entity,[global])
EntityY(entity,[global])
EntityZ(entity,[global])

Я тебе эти команды давал ещё во 2 потсте ;)

Maestro 01.08.2007 01:50

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

johnk 01.08.2007 07:43

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

Спасибо
Нажимай батон. :)

Maestro 02.08.2007 23:10

Re: Анимация (и еще пару вопросов)
 
Блин. Я в тупике малость. Вопервых почитал статью про ограничение ФПС в BlitzEtc... сделал... и после этого появилось куча глюков связаных с логикой. Например после нажатия паузы на экране все останавливается, а на самом деле все дальше просчитывается... т.е. при отжати паузы события резко меняются .)) (до этого пауза работала нармально).
Блиц же как-то ограничивает ФПС (flip) до 75... и нет никаких багов... неужели нет такого способа?

И второе. Мне надо, чтобы при столкновении корабля с препядствием происходил взрыв.. и он появлялся в начале уровня...
Но тут происходят 2 проблемы.
1. Надо чтобы при столкновении корабль изчезал, проигрывалась анимация взрыва, потом корабль появлялся в начале... вот я не могу сделать, чтобы корабль изчезал... да, и еще надо чтобы во время взрыва остальной мир продолжал просчитываться, т.е. надо как-то эти умирания, возраждения оторвать от основного цикла... но как?
2. не могу сделать, чтобы анимация взрыва появлялась на месте корабля... У меня корабль постоянно посередине экрана, поэтому я пытался сделать так:
DrawImage boom,EntityX(player,True)+wi*0,5,EntityZ(player,Tr ue)+hi*0,5,m (wi - ширина экрана, hi - длина)
но взрыв ходит все рядом, все около. То правее, то левее, то ниже....

Maestro 03.08.2007 01:36

Re: Анимация (и еще пару вопросов)
 
На счет второго пункта... можно реализовать взрыв LoadAnimTexture наложеным на плоскость... но всеравно это надо как-то вытащить из цыкла .(

IGR 03.08.2007 11:40

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

Блиц же как-то ограничивает ФПС (flip) до 75...
ето не Блиц, ето частота монитора !!
ставь флип 0 или флип фальше !!

Цитата:

т.е. надо как-то эти умирания, возраждения оторвать от основного цикла... но как?
- возможно функции ??
function DeadShip(...,...,...)
...
End Function

Raiter 03.08.2007 11:48

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

Блин. Я в тупике малость. Вопервых почитал статью про ограничение ФПС в BlitzEtc... сделал... и после этого появилось куча глюков связаных с логикой. Например после нажатия паузы на экране все останавливается, а на самом деле все дальше просчитывается... т.е. при отжати паузы события резко меняются .)) (до этого пауза работала нармально).
Блиц же как-то ограничивает ФПС (flip) до 75... и нет никаких багов... неужели нет такого способа?
Ну наверное нужно делать так:
Код:

...
Global Pause = -1
...
Repeat
If KeyDown(Key_Pause) Then Pause = -Pause

If Pause <> 1 Then
  ....
End If
Until KeyDown(1)

Цитата:

И второе. Мне надо, чтобы при столкновении корабля с препядствием происходил взрыв.. и он появлялся в начале уровня...
Но тут происходят 2 проблемы.
1. Надо чтобы при столкновении корабль изчезал, проигрывалась анимация взрыва, потом корабль появлялся в начале... вот я не могу сделать, чтобы корабль изчезал...
Код:

HideEntity Ship
PositionEntity StartPosX,StartPosY,StartPosZ
ShowEntity Ship

Цитата:

На счет второго пункта... можно реализовать взрыв LoadAnimTexture наложеным на плоскость... но всеравно это надо как-то вытащить из цыкла .(
Зачем аним текстурами? Делай спрайтами ;)

Цитата:

DrawImage boom,EntityX(player,True)+wi*0,5,EntityZ(player,Tr ue)+hi*0,5,m (wi - ширина экрана, hi - длина)
но взрыв ходит все рядом, все около. То правее, то левее, то ниже....
Ну дык... Ты береш 3д координаты и рисуеш 2д... Со спрайтами всё будет отлично :)

Ну а если уж даже 2д рисовать, и корабль у тебя всегда в центре экрана, то зачем тебе брать его координаты?

DrawImage boom,GraphicsWidth()*0.5, GraphicsHeight*0.5,m

Maestro 03.08.2007 12:41

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

Ну а если уж даже 2д рисовать, и корабль у тебя всегда в центре экрана, то зачем тебе брать его координаты?
мм... точно.)

Цитата:

Зачем аним текстурами? Делай спрайтами
:4to: а как анимированый спрайт загрузить?

Цитата:

Ну наверное нужно делать так:...
Да нет. пауза то работает... если не делать ограничение ФПС... Ну да ладно, я ограничение убрал.. так что буду потом думать что с ним делать.

Цитата:

HideEntity Ship
PositionEntity StartPosX,StartPosY,StartPosZ
ShowEntity Ship
Я примерно именно так и делал...
вернее вот так: (код находится в главной функции цыкла.. короче постоянно прокручивается, в этом и проблема.)

Код:

If EntityCollided (player,typewalls) Or EntityCollided (player,typeMolnia)
  HideEntity player
  live=live-1
    boom=LoadAnimImage("boom.jpg",64,64,0,8)
    f=1
    While Not f=8
    DrawImage boom,wi/2-20,hi/2-20,f
        Flip
    f=f+1
    Wend
  PositionEntity player,0,0,0
  ShowEntity player
  speed#=.1
 EndIf

и проблема состоит в том, что это все в главном цыкле состоит. и после HideEntity Player он его не прячет, а начинает играть анимацию. И еще, пока проигрывается анимация взрыва весь мир стоит... поэтому и надо как-то вытащить все эти манипуляции из цыкла.

IGR, фунции дают такой же эффект.

Raiter 03.08.2007 12:50

Re: Анимация (и еще пару вопросов)
 
Так у тебя этот код будет работать только в момент колизии...

Попробуй так:
Код:

If EntityCollided (player,typewalls) Or EntityCollided (player,typeMolnia) Then ShipDeath = 1

If ShipDeath = 1 Then
 HideEntity player
  live=live-1
    boom=LoadAnimImage("boom.jpg",64,64,0,8)
    f=1
    While Not f=8
    DrawImage boom,wi/2-20,hi/2-20,f
        Flip
    f=f+1
    Wend
  ShipDeath = 0
  PositionEntity player,0,0,0
  ShowEntity player
  speed#=.1
 EndIf
End If


Maestro 03.08.2007 13:41

Re: Анимация (и еще пару вопросов)
 
Raiter, ничего не изменилось .(

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

IGR 03.08.2007 13:53

Re: Анимация (и еще пару вопросов)
 
анимирований спрайт нельзя !!
loadAnimImage-ом с альфой текстуриш какой-то обьект, который будет появлятся во время взрыва !!

Цитата:

или надо кучу спрайтов загружать по верх предыдущего?
ну ето уже какой-то ParticleSystem получется !!

Raiter 03.08.2007 14:08

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

loadAnimImage-ом с альфой текстуриш какой-то обьект, который будет появлятся во время взрыва !!
анимимэйджем нельзя затекстурить!

это вообще относится к 2д! текстурить можно текстурами...
LoadTexture
LoadAnimTexture

Раз уж делать таким способом, то:
Код:

...
; создаем куб (вообще правильнее было бы квадом, но так проще :) )
; делаем его нужного рзмера и прячем
Cube = CreateCube()
HideEntity Cube

; загружаем нашу анимированную текстуру
TexBoom = LoadAnimTexture("boom.jpg",2,64,64,0,8)
...
If EntityCollided (player,typewalls) Or EntityCollided (player,typeMolnia)

      HideEntity player

      live=live-1

      PositionEntity Cube,EnityX(player),EnityY(player),EnityZ(player),
      ShowEntity Cube

      f=1
   
      While Not f=8
            EntityTexture Cube,TexBoom,f
            f=f+1
      Wend
 
      PositionEntity player,0,0,0
      ShowEntity player
      HideEntity Cube
 
      speed#=.1

 EndIf

Ну а вообще имхо колизии тебе нафик не нужны... Почему бы не заюзать EntityDistance ? ;)

Цитата:

ну ето уже какой-то ParticleSystem получется !!
я об этом и говорил...

Maestro 03.08.2007 14:58

Re: Анимация (и еще пару вопросов)
 
Raiter, аа, ну с LoadAnimTexture все понятно.. я так електричество делал... просто ты сказал
Цитата:

Зачем аним текстурами? Делай спрайтами ;)
Я и подумал, что можно анимированые спрайты грузить...

Щас поюзаю EntityDistance... может баг один уйдет.. ;)

IGR 03.08.2007 15:10

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

анимимэйджем нельзя затекстурить!

это вообще относится к 2д! текстурить можно текстурами...
LoadTexture
LoadAnimTexture
ну я и имел ввиду LoadAnimTexture !! перепутал !! :@

Maestro 03.08.2007 16:02

Re: Анимация (и еще пару вопросов)
 
Я так понимаю EntityDistance будет побыстрее проверки на коллизию?
А если предмет прямоугольно-вытюнотой формы, EntityDistance никак не приминить?


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

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