Author Topic: Таймер 15 секунд. Выполнить действие, если за это время была нажата клавиша  (Read 2308 times)

0 Members and 3 Guests are viewing this topic.

SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
После проигрывания SOUND(RNDFROM("1", "2", "3")) если я нажимаю пробел в течении 15 секунд, то значение переменной $balls = +1 от предыдущего значения (например, $balls была = 5, а после нажатия клавиши =6) и звук. Также сразу после нажатия кликер продолжает работу не дожидаясь окончания 15 секунд.
Code: (clickermann) [Select]
BEEP(1800,150) //Звуковой файл после нажатия пробела
Если клавиша не была нажата в течении 15 секунд или была нажата позже, то 0 от предыдущего значения и продолжить

Code: (clickermann) [Select]
$kv = 30
$balls = 0
FOR($a=0,$a<$kv)
   WAIT(RND(3, 10)) //Рандомное время для эффекта неожидданности
   SOUND(RNDFROM("1", "2", "3"))
   //Нажать пробел в течении 15 секунд. Если клавиша нажата, то $balls = +1, звук BEEP(1800,150) и повтрить цикл, если это 30-й цикл, то продолжить дальше
END_CYC

WAIT(5)
SOUND("тз")
WAIT(10)
$procent =
WAIT(10)
HINTPOPUP(STRCONCAT("Результат: ", $procent, "%"), "Результат теста:")
HALT

Я попытался и что-то в ту степь куда-то ушел, но не смог сделать.
Code: (clickermann) [Select]
$time = $_time_t + 15 // таймер на 15 секунд
   WHILE($time > $_time_t)
      WHILE(iskeydown(#SPACE)=0)
         WAITMS(20)
         $time = 0
         WAITMS(20)
      END_CYC
      WHILE(iskeydown(#SPACE)=1)
         WAITMS(20)
         $time = 0
         WAITMS(20)
      END_CYC
      INC($balls, 1)
      WAITMS(10)
      BEEP(1800,150)
      WAITMS(100)
   ELSE
      WAITMS(100)
   END_CYC
   
IF($time ! 0)
      INC($balls, 0)
      WAITMS(100)
END_IF

После 15 секунд скрипт должен сам продолжаться не присваивая переменной 1

Также во всплывающем окне необходимо рассчитать % = $procent.

$procent = 100 делим на значение $kv и получаем число X. Затем $balls умножаем на X. После округляем до целого числа в большую пользу. Было 78,56 а стало 79.

Заранее спасибо:)
« Last Edit: April 22, 2020, 05:10:10 AM by SimplY »

JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
могу ошиьбатся но тут  нигде не нажимается какая либо клавиша....
если  есть  возможность  объясни  по  скайпу  что  да  как

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Code: (clickermann) [Select]
$time = $_ms + 15000 // таймер на 15 секунд
WHILE($time > $_ms)
    WHILE(iskeydown(#SPACE) = 1)
        $time = 0
        INC($balls, 1)
        BEEP(1800, 150)
        WAITMS(100)
    END_CYC
    WAITMS(10)
END_CYC

Процент с округлением в большую сторону
Code: (clickermann) [Select]
$procent = INT((100 / $kv) * $balls + 0.9999999999)
« Last Edit: April 22, 2020, 10:19:15 AM by Vint »


SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
Code: (clickermann) [Select]
$time = $_ms + 15000 // таймер на 15 секунд
WHILE($time > $_ms)
    WHILE(iskeydown(#SPACE) = 1)
        $time = 0
        INC($balls, 1)
        BEEP(1800, 150)
        WAITMS(100)
    END_CYC
    WAITMS(10)
END_CYC

Процент с округлением в большую сторону
Code: (clickermann) [Select]
$procent = INT((100 / $kv) * $balls + 0.9999999999)

Спасибо большое!!!