Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 27.07.2007, 16:48   #1
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
стрельба очеридями и одиночная

как зделать ??
ну чё то типа :
очеридями - mousedown(1)
одиночная - mousehit(1)
у меня не получается чё то !!
желатель кусочек кода !!
(Offline)
 
Ответить с цитированием
Старый 27.07.2007, 17:31   #2
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: стрельба очеридями и одиночная

Че не получается?
(Offline)
 
Ответить с цитированием
Старый 27.07.2007, 18:13   #3
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Re: стрельба очеридями и одиночная

Тут нужен таймер.
ml=millisecs()
if keydown(fire) and d#=ml+1000 then
FIRE
d#=millisecs()
endif

Что-то вроде этого.
ЗЫЖ Пишу по памяти, если че не так поправите, только не рычите.
(Offline)
 
Ответить с цитированием
Старый 30.07.2007, 12:13   #4
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: стрельба очеридями и одиночная

у меня зделано с таймером !!
но тут новая проблема !!
допустим задержка 333 т.е. 3 выстрелов в секунду очередями, но когда я кликаю (маусХит) быстрей чем 3 раза в секунду (допустим 5 раз) оно всё равно стреляет 3 раза, т.е. мне приходится ждать задержку что бы потом опять стрельнуть !!
(Offline)
 
Ответить с цитированием
Старый 30.07.2007, 13:12   #5
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: стрельба очеридями и одиночная

Используешь Delay чтоли?
Используй обыкновенный Millisecs().
(Offline)
 
Ответить с цитированием
Старый 30.07.2007, 14:17   #6
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: стрельба очеридями и одиночная

вроде без "делея" всё !!
(Offline)
 
Ответить с цитированием
Старый 30.07.2007, 14:35   #7
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
Re: стрельба очеридями и одиночная

Вот так я палю из слона!
 
curr_time=MilliSecs()
If MouseHit(1) 
     If curr_time - lastbullets > 1500
                 shooting ()
    chnFire = PlaySound(enfield_snd)
    lastbullets = MilliSecs()
EndIf
Вот так из колоша
curr_time=MilliSecs()
If MouseDown(1)
If curr_time - lastbulletm > 200
               shooting ()
     chnFire = PlaySound(ak47_snd)
     FlushMouse
     lastbulletm = MilliSecs()
EndIf
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
goatman (11.07.2008)
Старый 31.07.2007, 10:43   #8
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: стрельба очеридями и одиночная

Вы чего? Какие миллисекунды? Юзайте переменную
(Offline)
 
Ответить с цитированием
Старый 31.07.2007, 11:23   #9
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: стрельба очеридями и одиночная

мне нравиться версия Horror !!
(Offline)
 
Ответить с цитированием
Старый 03.08.2007, 10:27   #10
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: стрельба очеридями и одиночная

А я юзаю переменную просто
(Offline)
 
Ответить с цитированием
Старый 03.08.2007, 13:40   #11
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: стрельба очеридями и одиночная

Вот так я палю из слона!

Код:


curr_time=MilliSecs()
If MouseHit(1)
If curr_time - lastbullets > 1500
shooting ()
chnFire = PlaySound(enfield_snd)
lastbullets = MilliSecs()
EndIf
Вот так из колоша

Код:

curr_time=MilliSecs()
If MouseDown(1)
If curr_time - lastbulletm > 200
shooting ()
chnFire = PlaySound(ak47_snd)
FlushMouse
lastbulletm = MilliSecs()
EndIf
только ещо и колошу надо добавить МаусеХит !!
(Offline)
 
Ответить с цитированием
Старый 03.08.2007, 14:10   #12
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: стрельба очеридями и одиночная

Как из кОлоши можно стрелять??? А если серьезно, то у Horrora один и тот-же код для разных оружий, единственное отличие это задержка выстрела. Предлагаю добавить в тип оружия еще одно свойство delay_shoot.
type Weapon
    ...
    field delay_shoot ' для каждого оружия своё
    ...
end type
.........
      
If MouseDown(1) and (MilliSecs() - lastbulletm) > Weapon[cur_weapon].delay_shoot
              shooting ()
         FlushMouse
         lastbulletm = MilliSecs()
EndIf
(Offline)
 
Ответить с цитированием
Старый 03.08.2007, 15:25   #13
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
Re: стрельба очеридями и одиночная

...Blitz3D\Samples\Blitz 3D Samples\Misc\rsi\rsi.bb

Кури этот пример на мои взгляд там стрельба грамотно реализована!
(Offline)
 
Ответить с цитированием
Старый 07.08.2007, 17:24   #14
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: стрельба очеридями и одиночная

у Horrora один и тот-же код для разных оружий, единственное отличие это задержка выстрела. Предлагаю добавить в тип оружия еще одно свойство delay_shoot.
да но у колоша два типа стрельбы: очеридями и одиночная т.е. маусеДаун и маусуХит , а пистолето одна :одиночная т.е. маусуХит !!

автомату нужно стрельбу два раза прописивать что ли ??
(Offline)
 
Ответить с цитированием
Старый 02.10.2007, 05:37   #15
dimond
Оператор ЭВМ
 
Регистрация: 14.09.2007
Сообщений: 27
Написано 2 полезных сообщений
(для 5 пользователей)
Re: стрельба очеридями и одиночная

Global Bullet_time%

. . .

If MouseDown(1) And Bullet_time=0 Create_bullet():Bullet_time=10
If Bullet_time>0 Bullet_time=Bullet_time-1

имхо через переменную проще
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стрельба Mark Castle 3D-программирование 24 21.11.2011 22:03
Стрельба Crystal 3D-программирование 15 23.09.2007 19:35


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com