forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Combo - Миф или реальность? (http://forum.boolean.name/showthread.php?t=3209)

johnk 23.04.2007 04:19

Combo - Миф или реальность?
 
Давно хотел узнать, можно ли сделать combo удары? Хотя бы как Lord of the Rings: Return of the King? А то там так красиво мечем махать, наварачивая красивые комбо. По моему проблема заключается в MouseHit(). Или кто знает как сделать комбо удары (желательно чтоб на мышку (например ПКМ+ЛКМ+ЛКМ+ПКМ+ПКМ))? Помогите плиз...

jimon 23.04.2007 08:47

Re: Combo - Миф или реальность?
 
ну а чего сложного то
береш делаеш масив клавиш (или скорее eventов) того что надо зделать для комбо удара
после того как удачно выполняеш первое действие комбо удара, переходиш к проверке на второе действие ... только между ними должна быть разница во времени примерно от 5 мс до 300 мс :) ето чтобы не махлевали

вот когда масив действий закончится - комбо выполнено

DRAG 23.04.2007 08:57

Re: Combo - Миф или реальность?
 
Я тоже не знал как реализовать такое , но со временем понял .
Но этот метод мне нужен был не для комбо ударов !

johnk 23.04.2007 17:04

Re: Combo - Миф или реальность?
 
Ничего не понял.

jimon 23.04.2007 21:38

Re: Combo - Миф или реальность?
 
ну блин, мне влом писать щас код (голова не варит)
кури такую идею

Код:

combo_pos = 1

dim combo_doing(666)
combo_doing(1) = 1
combo_doing(2) = 2

........
в цикле
........

combo_doing_current = combo_doing(combo_pos)

if combo_doing_current = 1 and MouseHit(1) then
combo_pos = combo_pos + 1

if combo_doing_current = 2 and MouseHit(2) then
combo_pos = combo_pos + 1

.....

я понимаю что ето говнокод :) ваще надо через switch - case делать
но я забыл синтаксис блица и ваще голова болит

moka 24.04.2007 07:28

Re: Combo - Миф или реальность?
 
Я бы сделал так:
Создал бы переменную (строка), например LHAct (Last Hit Action).
Длаее при действии меняю переменную НазваниеДействия_+НомерДействия, например в ЛОТР, удар орка (где л1,л1,л2), сперва при нажатии на мышь, проверяю переменную, если ничего не равна, то LHAct="Л1_1". Если ещё нажата мышь в течении какогото времени, то проверяю что сейчас за LHAct, вычесляю цыфру справа, она значит, сколько уже нажато кнопок подряд, и далее делаю цикл столько раз, сколько это число, и каждый раз, беру 2 значка, в позиции +2 тоесть если LHAct="Л1Л1Л2_3", то цикл на 3 раза, первый раз выберется Л1, второй Л1, и третий Л2, далее перебераю масиив комбиков, и если есть в массиве такое комбо, то выполняю функцию с параметром Л1Л1Л2, тоесть LHAct, без 2 последних символов. Далее в функции у меня идёт поиск такой комбо, если она есть, то делаю действие. Ещё учитывай что LHAct после выполнения комбо не абнуляется, а может комбо идти и дальше, тоесть Л1Л1 - в ЛОТРе это уже было мини комбо, тоесть на второе Л1 делалось другое действие, просто меньшей мощьности.
Ух, замудрил, но динамичность данного вида реализации комбо, и лёгкость добавлеия новых комбиков, очень проста. :super:

Надеюсь понятно ;)


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

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