2 вопроса
| |
K1rusH | Дата: Вторник, 09.03.2010, 19:38 | Сообщение # 1 |
ламер
Группа: Пользователи
Сообщений: 37
Награды: 0
Репутация: 1
Статус: Offline
| Не проигрывается звук в следующем коде, хотя если ставить звук на нажатие кнопки, всё работает. Подскажите что не так ? Условие срабатывает, так как происходят hideentity и createExplosion... If EntityCollided ( b\sprite,TypePlayer1 ) HideEntity player CreateExplosion(player,10) channel1=PlaySound(vistrel) И 2 вопрос. Есть футнкция, при её вызове создаётся объект. Как сделать чтобы через 5 сек он исчезал ? У меня либо сразу исчезает, либо вообще не исчезает. Много примеров с таймеров перепробывал ...
Blitz3d start error: Blitz3d hates you! http://proekti.moy.su/
|
|
| |
Spidy | Дата: Вторник, 09.03.2010, 19:50 | Сообщение # 2 |
Полковник
Группа: Модераторы
Сообщений: 339
Награды: 6
Репутация: 13
Статус: Offline
| 1. Попробуй так Code If EntityCollided ( b\sprite,TypePlayer1 ) then HideEntity player CreateExplosion(player,10) channel1=PlaySound(vistrel) end if дополнительные условия: vistrel - это загруженный файл функцией LoadSound() 2. Попробуй сяк Code а=а+1 if a>100 then hideentity()
Компьютерная мышь ночью собирает крошки у тебя со стола и прячет их в клавиатуру, делает запасы на зиму
|
|
| |
deejex | Дата: Вторник, 09.03.2010, 20:20 | Сообщение # 3 |
заядлый прогер
Группа: Пользователи
Сообщений: 522
Награды: 2
Репутация: 14
Статус: Offline
| к вопросу 2 - вызов функции Code tmp_ot = Millisecs() обновление Code If Millisecs()-tmp_ot > 5*1000 Then HideEntity(нужный_объект)
|
|
| |
K1rusH | Дата: Вторник, 09.03.2010, 20:36 | Сообщение # 4 |
ламер
Группа: Пользователи
Сообщений: 37
Награды: 0
Репутация: 1
Статус: Offline
| vistrel=LoadSound("sound\vistrel.wav") загрузка звука происходит, ведь кнопкой я его воспроизвожу. If KeyHit(42) channel1=PlaySound(vistrel) EndIf Каналы тоже пробовал менять. Quote (Spidy) а=а+1 if a>100 then hideentity() Не работает, т.к. а=а+1 выполняется 1 раз, функция же выполняется 1 раз, думаю по этому ...
Blitz3d start error: Blitz3d hates you! http://proekti.moy.su/
|
|
| |
Spidy | Дата: Вторник, 09.03.2010, 23:12 | Сообщение # 5 |
Полковник
Группа: Модераторы
Сообщений: 339
Награды: 6
Репутация: 13
Статус: Offline
| Code а=а+1 if a>100 then hideentity() если это положить в цикл, то тогда объект исчезнет через некоторое время А вообще давай весь код в студию, исправим за спасибо
Компьютерная мышь ночью собирает крошки у тебя со стола и прячет их в клавиатуру, делает запасы на зиму
|
|
| |
K1rusH | Дата: Среда, 10.03.2010, 00:52 | Сообщение # 6 |
ламер
Группа: Пользователи
Сообщений: 37
Награды: 0
Репутация: 1
Статус: Offline
| Function CreateBomb () i=i+1 j=j+1 mbomb(j,i)=LoadMD2 ("model\bomb.md2") bomb1_tex=LoadTexture ("texture\bomb.JPG") ScaleEntity mbomb(j,i), 0.1, 0.1, 0.1 TurnEntity mbomb(j,i), 0, 0, 60 EntityTexture mbomb(j,i), bomb1_tex PositionEntity mbomb(j,i), k1#, 0, k2# EntityType mbomb(j,i), TypeBomb End Function Пробовал вашими способами, программа ругается: Entity does not exist. Как советовал deejex, то сразу при запуске так. А как Spidy то по истечению времени. Как я понял ошибка говорит о том что нету объекта, но я ставил его отдельно и один фиг. Функция вызывается нажатием кнопки. Пробовал и без массива их делать, всё та же проблема, но мне кажется без него будет сложнее потом с ними работать. Спасибо что помогаете мне, но я учусь, пусть даже не очень быстро
Blitz3d start error: Blitz3d hates you! http://proekti.moy.su/
|
|
| |
deejex | Дата: Среда, 10.03.2010, 09:18 | Сообщение # 7 |
заядлый прогер
Группа: Пользователи
Сообщений: 522
Награды: 2
Репутация: 14
Статус: Offline
| Через массив не получится. Тут нужно использовать типы. Смотри: Code Global bomb_texture = LoadTexture("texture\bomb.JPG")
Type TBomb Field entity%,ot% End Type
Function CreateBomb () Bomb.TBomb = New TBomb Bomb\entity=LoadMD2 ("model\bomb.md2") ScaleEntity Bomb\entity, 0.1, 0.1, 0.1 TurnEntity Bomb\entity, 0, 0, 60 EntityTexture Bomb\entity, bomb_texture PositionEntity Bomb\entity, k1#, 0, k2# EntityType Bomb\entity, TypeBomb Bomb\ot = Millisecs() End Function обновление будет выглядеть примерно так - Code For Bomb.TBomb = Each TBomb If Millisecs()-Bomb\ot > 5000 Then HideEntity Bomb\entity Next
|
|
| |
K1rusH | Дата: Суббота, 13.03.2010, 12:35 | Сообщение # 8 |
ламер
Группа: Пользователи
Сообщений: 37
Награды: 0
Репутация: 1
Статус: Offline
| Огромное спасибо всем в помощи, получилось Я так понял что лучше с типами работать, вроде в коде разобрался, даже дополнил что нужно и работает. Ещё раз огромное спасибо Добавлено (13.03.2010, 12:35) --------------------------------------------- Скрыть, скрыли, но если на том месте взрыв делать, то будут все взрываться, даже которые уже невидимы+ каждые 5 сек. For Bomb.TBomb = Each TBomb If MilliSecs()-Bomb\ot > 5000 Then HideEntity Bomb\entity ;createexplosion() Next Решил удалять их, не удаляет, опять же не пойму, в справке смотрел, примеры смотрел, вроде так же ... For Bomb.TBomb = Each TBomb If MilliSecs()-Bomb\ot > 5000 Then Delete Bomb ;createexplosion() Next
Blitz3d start error: Blitz3d hates you! http://proekti.moy.su/
|
|
| |
deejex | Дата: Суббота, 13.03.2010, 15:10 | Сообщение # 9 |
заядлый прогер
Группа: Пользователи
Сообщений: 522
Награды: 2
Репутация: 14
Статус: Offline
| For Bomb.TBomb = Each TBomb If MilliSecs()-Bomb\ot > 5000 Then FreeEntity Bomb\entity : Delete Bomb Next
|
|
| |
K1rusH | Дата: Суббота, 13.03.2010, 21:12 | Сообщение # 10 |
ламер
Группа: Пользователи
Сообщений: 37
Награды: 0
Репутация: 1
Статус: Offline
| Всё работает. Как они работают тоже понял
Blitz3d start error: Blitz3d hates you! http://proekti.moy.su/
|
|
| |
|