|
3D-программирование Вопросы, касающиеся программирования 3D мира |
03.08.2009, 12:27
|
#1
|
ПроЭктировщик
Регистрация: 26.08.2008
Сообщений: 149
Написано 10 полезных сообщений (для 18 пользователей)
|
Пулеметчик
Идет разработка простой игры ПУЛЕМЕТЧИК.
Столкнулся с такими проблемами
1-Загрузил 3д звук поставил слушателя и прикрепил звук к самалету стрельба происходит с пулемета в укрытии на земле, так вот когда жызнь самалета ровна 0, он естествено падает и разбивается но звук продолжает играт (звук двигателя) и когда собешь штук 10 то гул такой что просто жуть.
2-Как сделать показатель жизны самолета типа Rect бегающий по экрану и установлен над самалетом.
3-Как сделать чтобы появлялось 2 или 3 самалета. У мене получается что если ибиваешь одного то падают все .
Все сделано типами, есть дым, огонь, взрывы, прикольная карта, управление мышкой.
Буду очень благодарен за помощь .
|
(Offline)
|
|
03.08.2009, 14:14
|
#2
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Пулеметчик
1. Ну дак удаляй звук же
2. Проецировать координаты самолёта на экран, в них рисовать показатель жизни
3. Искать косяк в коде
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
03.08.2009, 14:22
|
#3
|
ПроЭктировщик
Регистрация: 22.07.2009
Адрес: Московский Метрополитен)))
Сообщений: 100
Написано 25 полезных сообщений (для 31 пользователей)
|
Ответ: Пулеметчик
согласен с вышенаписанным постом
удачи в разработке.
|
(Offline)
|
|
03.08.2009, 14:28
|
#4
|
Разработчик
Регистрация: 09.12.2007
Сообщений: 376
Написано 83 полезных сообщений (для 122 пользователей)
|
Ответ: Пулеметчик
2. У меня создается пивот Х прикрепленный а камере, а к пивоту Х(на подходящем расстоянии перед камерой) крепится спрайт с рамкой(или жизнАмЫ). В цикле при уменьшении жизней перерисовываешь шкалу(или подставляешь готовую) и делаешь пивоту Х pointentity(target). При приближении противника можно пропорционально приближать спрайт к камере, упрощая восприятие расстояния до цели.
3. Если у тебя самолеты типами, то в каждом типе должна быть ячейка с жизнями, Когда просчитываешь самолет, проверяй жизни и если надо пускай дым, а если мертв то ставь ему флаг что пора падать и удаляться через какое-то время.
|
(Offline)
|
|
03.08.2009, 14:54
|
#5
|
Разработчик
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений (для 92 пользователей)
|
Ответ: Пулеметчик
создаем переменную Samol_power#=твоя цыфра например 1000
потом между renderworld и flip пишим Rect там высота например 20 а длинна и будит твой Samol_power# вот если в тя попадут пиши условие что мол здоровье=здоровье минус столько то хелов... и полоска будит становиться меньше)
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb
Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)
Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
|
(Offline)
|
|
03.08.2009, 16:02
|
#6
|
ПроЭктировщик
Регистрация: 26.08.2008
Сообщений: 149
Написано 10 полезных сообщений (для 18 пользователей)
|
Ответ: Пулеметчик
Звук не удаляется я пишу FreeSound но он гад всеравно рычит
|
(Offline)
|
|
03.08.2009, 16:04
|
#7
|
Модератор
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений (для 1,694 пользователей)
|
Ответ: Пулеметчик
Terminator, ты гений просто прямо!
там, если я не ошибаюсь, надо проецировать Х и У прямоугольника туда ,где самолет, так? вроде бы ProjectedX и Y
Graphics3D 640,480
SetBuffer BackBuffer()
camera=CreateCamera()
PositionEntity camera,0,2,-10
light=CreateLight()
RotateEntity light,90,0,0
plane=CreatePlane()
cube=CreateCube()
PositionEntity cube,0,1,0
While Not KeyDown( 1 )
If KeyDown( 205 )=True Then TurnEntity camera,0,-1,0
If KeyDown( 203 )=True Then TurnEntity camera,0,1,0
If KeyDown( 208 )=True Then MoveEntity camera,0,0,-0.05
If KeyDown( 200 )=True Then MoveEntity camera,0,0,0.05
; Use camera project to get 2D coordinates from 3D coordinates of cube
CameraProject(camera,EntityX(cube),EntityY(cube),E ntityZ(cube))
RenderWorld
; If cube is in view then draw text, if not then draw nothing otherwise text will be drawn at 0,0
If EntityInView(cube,camera)=True
; Use ProjectedX() and ProjectedY() to get 2D coordinates from when CameraProject was used.
; Use these coordinates to draw text at a 2D position, on top of a 3D scene.
Text ProjectedX#(),ProjectedY#(),"Cube"
EndIf
Text 0,0,"Use cursor keys to move about"
Text 0,20,"ProjectedX: "+ProjectedX#()
Text 0,40,"ProjectedY: "+ProjectedY#()
Text 0,60,"ProjectedZ: "+ProjectedZ#()
Text 0,80,"EntityInView: "+EntityInView(cube,camera)
Flip
Wend
End
|
Просто устанавливаем Rectу Х = ProjectedX#(), У = ProjectedУ(), и длину сколько тебе надо и высоту.
-Как сделать чтобы появлялось 2 или 3 самалета. У мене получается что если ибиваешь одного то падают все .
|
КАкой-то у тебя косяк в типах. Если у тебя каждым самолет - тип, и отдельный объекет, такого не должно быть, посмотри чере зDebugLog сколько жизней к каждого самолета и сколько отнимается после попадания в одного из них.
|
(Offline)
|
|
03.08.2009, 18:05
|
#8
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Ответ: Пулеметчик
на заметку:
1. самалет пишется через о
2. FreeSound освобождает звук из памяти, но не выключает его
3. если ты что-то накосячил в коде - тебе не помогут если его не увидят
4.
3-Как сделать чтобы появлялось 2 или 3 самалета. У мене получается что если ибиваешь одного то падают все .
|
это 2 вопроса или 1 ? видимо в коде написано что когда сбиваешь 1 самолет то падают все К.О.
|
(Offline)
|
|
03.08.2009, 19:21
|
#9
|
ПроЭктировщик
Регистрация: 26.08.2008
Сообщений: 149
Написано 10 полезных сообщений (для 18 пользователей)
|
Ответ: Пулеметчик
Ну то как остановить 3д звук кто знает
|
(Offline)
|
|
03.08.2009, 20:05
|
#10
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Пулеметчик
остановить канал в котором звучит звук, вроде бы всё в хелпе есть.
__________________
|
(Offline)
|
|
03.08.2009, 22:19
|
#11
|
ПроЭктировщик
Регистрация: 03.05.2009
Адрес: г.Волгоград
Сообщений: 136
Написано 32 полезных сообщений (для 53 пользователей)
|
Ответ: Пулеметчик
Сообщение от SBJoker
остановить канал в котором звучит звук, вроде бы всё в хелпе есть.
|
Ну да в хелпе есть все))) Вот только парой людям лень искать
Type samol
Field model,hp ;(тут тип твоих самолетаф может еше какие хар-ки есть)
End Type
samol_new.samol=New samol
samol_new\model=loadmesh("ЯСТРЕБЬ.B3D")
samol_new\hp=100.0
BOOX_SAMOL_snd=LoadSound("TRAX-TARA-RAX.mp3")
For samol_new.samol= Each samol
If samol_new\hp <= 0.0 and Not ChannelPlaying(BOOX_SAMOL_channel)Then
BOOX_SAMOL_channel=PlaySound (BOOX_SAMOL_snd)
EndIf
Принцип думаю ясен будет
|
(Offline)
|
|
04.08.2009, 11:19
|
#12
|
ПроЭктировщик
Регистрация: 26.08.2008
Сообщений: 149
Написано 10 полезных сообщений (для 18 пользователей)
|
Ответ: Пулеметчик
Ребята я знаю как пользоватся звуком, (сам без 5 минут музыкант), мне интересно как остановить 3д звук, звук двигателя, когда самолет далеко его плохо слышно но когда он ближе то звук громче и он стерео (зависит от того куда смотрит камера) думаю вы меня поняли.
|
(Offline)
|
|
04.08.2009, 13:59
|
#13
|
Бывалый
Регистрация: 20.11.2007
Сообщений: 663
Написано 145 полезных сообщений (для 176 пользователей)
|
Ответ: Пулеметчик
listener=CreateListener(твой объект к которому привзян микрофон,.1,1,.2 )
sound=Load3DSound("твой звук от самолёта")
LoopSound(sound)
em_sound=EmitSound(sound,какойнить самолёт от которого идёт звук)
Ну и теперь делай какой нибудь условаие по которому будет выключаться звук
dist#=EntityDistance(ты,самолёт)
If dist3>250 PauseChannel(em_sound)
If dist3<250 ResumeChannel(em_sound)
Это у меня было так в старом-старом коде, сейчас с блитцем уже давно не работал. Поищи в хелпе описания всех этих функций.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:00.
|