|
3D-программирование Вопросы, касающиеся программирования 3D мира |
01.08.2007, 01:40
|
#16
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Re: Анимация (и еще пару вопросов)
EntityX(entity,[global])
EntityY(entity,[global])
EntityZ(entity,[global])
Я тебе эти команды давал ещё во 2 потсте
|
(Offline)
|
|
01.08.2007, 01:50
|
#17
|
ПроЭктировщик
Регистрация: 25.07.2007
Сообщений: 151
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Анимация (и еще пару вопросов)
Raiter, аа. вот где я их видел. А я уже все учебники перелистал... Спасибо.
|
(Offline)
|
|
01.08.2007, 07:43
|
#18
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Re: Анимация (и еще пару вопросов)
Нажимай батон.
|
(Offline)
|
|
02.08.2007, 23:10
|
#19
|
ПроЭктировщик
Регистрация: 25.07.2007
Сообщений: 151
Написано 0 полезных сообщений (для 0 пользователей)
|
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 - длина)
но взрыв ходит все рядом, все около. То правее, то левее, то ниже....
|
(Offline)
|
|
03.08.2007, 01:36
|
#20
|
ПроЭктировщик
Регистрация: 25.07.2007
Сообщений: 151
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Анимация (и еще пару вопросов)
На счет второго пункта... можно реализовать взрыв LoadAnimTexture наложеным на плоскость... но всеравно это надо как-то вытащить из цыкла .(
|
(Offline)
|
|
03.08.2007, 11:40
|
#21
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Re: Анимация (и еще пару вопросов)
Блиц же как-то ограничивает ФПС (flip) до 75...
|
ето не Блиц, ето частота монитора !!
ставь флип 0 или флип фальше !!
т.е. надо как-то эти умирания, возраждения оторвать от основного цикла... но как?
|
- возможно функции ??
function DeadShip(...,...,...)
...
End Function
|
(Offline)
|
|
03.08.2007, 11:48
|
#22
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
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
|
(Offline)
|
|
03.08.2007, 12:41
|
#23
|
ПроЭктировщик
Регистрация: 25.07.2007
Сообщений: 151
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Анимация (и еще пару вопросов)
Ну а если уж даже 2д рисовать, и корабль у тебя всегда в центре экрана, то зачем тебе брать его координаты?
|
мм... точно.)
Зачем аним текстурами? Делай спрайтами
|
а как анимированый спрайт загрузить?
Ну наверное нужно делать так:...
|
Да нет. пауза то работает... если не делать ограничение ФПС... Ну да ладно, я ограничение убрал.. так что буду потом думать что с ним делать.
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, фунции дают такой же эффект.
|
(Offline)
|
|
03.08.2007, 12:50
|
#24
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
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
|
(Offline)
|
|
03.08.2007, 13:41
|
#25
|
ПроЭктировщик
Регистрация: 25.07.2007
Сообщений: 151
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Анимация (и еще пару вопросов)
Raiter, ничего не изменилось .(
Как анимированый спрайт загрузить? Какой командой? или надо кучу спрайтов загружать по верх предыдущего?
И еще, можно как-то получить координаты столкновения при коллизии?
|
(Offline)
|
|
03.08.2007, 13:53
|
#26
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Re: Анимация (и еще пару вопросов)
анимирований спрайт нельзя !!
loadAnimImage-ом с альфой текстуриш какой-то обьект, который будет появлятся во время взрыва !!
или надо кучу спрайтов загружать по верх предыдущего?
|
ну ето уже какой-то ParticleSystem получется !!
|
(Offline)
|
|
03.08.2007, 14:08
|
#27
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
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 получется !!
|
я об этом и говорил...
|
(Offline)
|
|
03.08.2007, 14:58
|
#28
|
ПроЭктировщик
Регистрация: 25.07.2007
Сообщений: 151
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Анимация (и еще пару вопросов)
Raiter, аа, ну с LoadAnimTexture все понятно.. я так електричество делал... просто ты сказал
Зачем аним текстурами? Делай спрайтами
|
Я и подумал, что можно анимированые спрайты грузить...
Щас поюзаю EntityDistance... может баг один уйдет..
|
(Offline)
|
|
03.08.2007, 15:10
|
#29
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Re: Анимация (и еще пару вопросов)
анимимэйджем нельзя затекстурить!
это вообще относится к 2д! текстурить можно текстурами...
LoadTexture
LoadAnimTexture
|
ну я и имел ввиду LoadAnimTexture !! перепутал !!
|
(Offline)
|
|
03.08.2007, 16:02
|
#30
|
ПроЭктировщик
Регистрация: 25.07.2007
Сообщений: 151
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Анимация (и еще пару вопросов)
Я так понимаю EntityDistance будет побыстрее проверки на коллизию?
А если предмет прямоугольно-вытюнотой формы, EntityDistance никак не приминить?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:09.
|