Войти на сайт

Авторизация, ждите ...
×

ТЕМА: Комбинация клавиш

Комбинация клавиш 8 года 8 мес. назад #83937

  • 「Kibō」
  • 「Kibō」 аватар
  • Вне сайта
  • Познающий
  • Сообщений: 10
  • Спасибо получено: 4
Собсна использую текучку от фалко, но она мне многим, чем не нравится и пытаюсь ее переписать, это не так важно :)
хочу дописать комбинацию клавиш, например
if Input.trigger?(:A) + Input.trigger?(:B) + Input.trigger?(:С)
   do_something
end
что в итоге должно было бы выйти, при последовательном прожатии клавиш A, B, C что-нибудь бы происходило, но оно и не должно занимать много по времени. предположим максимальная задержка между нажатием кнопок равна в 10 кадров.
что-то подобное используется в скрипте Янфлая Input Combo Skills при параметре <combo special string: x>
Администратор запретил публиковать записи гостям.

Комбинация клавиш 8 года 8 мес. назад #83940

  • Iren_Rin
  • Iren_Rin аватар
  • Вне сайта
  • Мастер
  • Сообщений: 247
  • Спасибо получено: 537
  • УчительПроект года 1 местоКоммерсантПрограммист RubyПроект месяца 1 место
Так в чем вопрос то?
Администратор запретил публиковать записи гостям.

Комбинация клавиш 8 года 8 мес. назад #83942

  • 「Kibō」
  • 「Kibō」 аватар
  • Вне сайта
  • Познающий
  • Сообщений: 10
  • Спасибо получено: 4
дэк, а как это реализовать?
if Keys.trigger?(Keys::DOWN) + Keys.trigger?(Keys::LEFT) + Keys.trigger?(Key::Weapon[0])
      actor.change_equip_by_id(0, 4)
      use_weapon(actor.equips[0].id)
    end
из этого когда должна выйти смена экипировки и использование предмета, собсна при другом условии работает на ура
это же действие выдает, естественно же, ошибку при таком условии
Администратор запретил публиковать записи гостям.

Комбинация клавиш 8 года 8 мес. назад #83943

  • Iren_Rin
  • Iren_Rin аватар
  • Вне сайта
  • Мастер
  • Сообщений: 247
  • Спасибо получено: 537
  • УчительПроект года 1 местоКоммерсантПрограммист RubyПроект месяца 1 место
Замени в услвоии + на && или and для начала. Но условие тогда будет проверять однавременное нажатие трех этих клавиш.
Администратор запретил публиковать записи гостям.

Комбинация клавиш 8 года 8 мес. назад #83944

  • 「Kibō」
  • 「Kibō」 аватар
  • Вне сайта
  • Познающий
  • Сообщений: 10
  • Спасибо получено: 4
это я знаю, мне не нужно одновременное нажатие клавиш, тк давно уже сделано при использование стрелок и кнопки действия
Администратор запретил публиковать записи гостям.

Комбинация клавиш 8 года 8 мес. назад #83954

  • DeadElf79
  • DeadElf79 аватар
  • Вне сайта
  • Звездный Страж
  • Сообщений: 3147
  • Спасибо получено: 2650
  • УчительВетеран3 местоПроект месяца 2 местоОрганизатор конкурсовПисатель 3 местоПроект месяца 1 местоПрограммист Ruby1 место в Готв
задержка производится совсем по-другому и указанный выше скрипт не пойдет. по идее, если немного пооткрывать мейкер (пару раз), то это вполне реализуемо на ивентах с помощью команд "ждать клавишу" и "ждать N кадров".
Администратор запретил публиковать записи гостям.

Комбинация клавиш 8 года 8 мес. назад #83955

  • Kian Ni
  • Kian Ni аватар
  • Вне сайта
  • Заблокирован
  • Я души кушаю людей.
  • Сообщений: 1247
  • Спасибо получено: 412
А что если?
if Input.trigger?(:A)
   if Input.trigger?(:B)
      if Input.trigger?(:С)
         do_something
      end
   end
end
Администратор запретил публиковать записи гостям.

Комбинация клавиш 8 года 8 мес. назад #83960

  • 「Kibō」
  • 「Kibō」 аватар
  • Вне сайта
  • Познающий
  • Сообщений: 10
  • Спасибо получено: 4
DeadElf79 пишет:
задержка производится совсем по-другому и указанный выше скрипт не пойдет. по идее, если немного пооткрывать мейкер (пару раз), то это вполне реализуемо на ивентах с помощью команд "ждать клавишу" и "ждать N кадров".
идея на ивентах сразу отпадает, мукер такое кол-во ивентов не выдержит, но идею понял, пробнем на скриптах такое запилить
Kian Ni, хмм, если логически подумать, то так и должно быть, надо попробовать как оно себя вести будет при разных условиях

upd:
if Keys.trigger?(Keys::DOWN)
      if Keys.trigger?(Keys::LEFT) || Keys.trigger?(Keys::RIGHT)
        if Keys.trigger?(Key::Weapon[0])
          $game_player.animation_id = 1
        end
      end
    end
все же нет, не работает
попробовал тригер изменить на релиз (это скрипт использования всех кнопок с клавиатуры, релиз почти тоже саое что и тригер, только только в "обратную сторону"), тоже 0 реакции

upd2:
однако, головой все раскинув хорошо, подумал, а на кой мне это надо? :)
в текучке же еще есть 2 итема и 4 скила, которые принципе можно комбинировать так же
class Game_Player < Game_Character
  def update_tool_usage
 
#===============================================================================
# WEAPON
#===============================================================================
    
    if Keys.trigger?(Key::Weapon[0])
      actor.change_equip_by_id(0, 1)
      use_weapon(actor.equips[0].id)
    end
    if Keys.trigger?(Key::Weapon[0]) && (Keys.press?(Keys::LEFT) || Keys.press?(Keys::RIGHT))
      actor.change_equip_by_id(0, 2)
      use_weapon(actor.equips[0].id)
    end
    if Keys.trigger?(Key::Weapon[0]) && Keys.press?(Keys::UP)
      actor.change_equip_by_id(0, 4)
      use_weapon(actor.equips[0].id)
    end
    if Keys.trigger?(Key::Weapon[0]) && Keys.press?(Keys::DOWN)
      actor.change_equip_by_id(0, 4)
      use_weapon(actor.equips[0].id)
    end
 
#===============================================================================
# ARMOR
#===============================================================================

    if Keys.trigger?(Key::Armor[0])
      actor.change_equip_by_id(1, 1)
      use_armor(actor.equips[1].id)
    end
    if Keys.trigger?(Key::Armor[0]) && (Keys.press?(Keys::LEFT) || Keys.press?(Keys::RIGHT))
      actor.change_equip_by_id(1, 2)
      use_armor(actor.equips[1].id)
    end
    if Keys.trigger?(Key::Armor[0]) && Keys.press?(Keys::UP)
      actor.change_equip_by_id(1, 4)
      use_armor(actor.equips[1].id)
    end
    if Keys.trigger?(Key::Armor[0]) && Keys.press?(Keys::DOWN)
      actor.change_equip_by_id(1, 4)
      use_armor(actor.equips[1].id)
    end
 
#=============================================================================== 
    
  end
end
Последнее редактирование: 8 года 8 мес. назад от 「Kibō」.
Администратор запретил публиковать записи гостям.
Модераторы: NeKotZima
Время создания страницы: 0.402 секунд