forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   стрельба очеридями и одиночная (http://forum.boolean.name/showthread.php?t=4018)

IGR 27.07.2007 16:48

стрельба очеридями и одиночная
 
как зделать ??
ну чё то типа :
очеридями - mousedown(1)
одиночная - mousehit(1)
у меня не получается чё то !!
желатель кусочек кода !!

alcoSHoLiK 27.07.2007 17:31

Re: стрельба очеридями и одиночная
 
Че не получается?

H@NON 27.07.2007 18:13

Re: стрельба очеридями и одиночная
 
Тут нужен таймер.
ml=millisecs()
if keydown(fire) and d#=ml+1000 then
FIRE
d#=millisecs()
endif

Что-то вроде этого.
ЗЫЖ Пишу по памяти, если че не так поправите, только не рычите:).

IGR 30.07.2007 12:13

Re: стрельба очеридями и одиночная
 
у меня зделано с таймером !!
но тут новая проблема !!
допустим задержка 333 т.е. 3 выстрелов в секунду очередями, но когда я кликаю (маусХит) быстрей чем 3 раза в секунду (допустим 5 раз) оно всё равно стреляет 3 раза, т.е. мне приходится ждать задержку что бы потом опять стрельнуть !!

moka 30.07.2007 13:12

Re: стрельба очеридями и одиночная
 
Используешь Delay чтоли?
Используй обыкновенный Millisecs().

IGR 30.07.2007 14:17

Re: стрельба очеридями и одиночная
 
вроде без "делея" всё !!

Horror 30.07.2007 14:35

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


johnk 31.07.2007 10:43

Re: стрельба очеридями и одиночная
 
Вы чего? Какие миллисекунды? Юзайте переменную ;)

IGR 31.07.2007 11:23

Re: стрельба очеридями и одиночная
 
мне нравиться версия Horror !!

Raiter 03.08.2007 10:27

Re: стрельба очеридями и одиночная
 
А я юзаю переменную просто :)

IGR 03.08.2007 13:40

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
только ещо и колошу надо добавить МаусеХит !!

dimanche13 03.08.2007 14:10

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


Horror 03.08.2007 15:25

Re: стрельба очеридями и одиночная
 
...Blitz3D\Samples\Blitz 3D Samples\Misc\rsi\rsi.bb

Кури этот пример на мои взгляд там стрельба грамотно реализована!

IGR 07.08.2007 17:24

Re: стрельба очеридями и одиночная
 
Цитата:

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

автомату нужно стрельбу два раза прописивать что ли ??

dimond 02.10.2007 05:37

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

имхо через переменную проще


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

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