Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Рисовалка на canvas (https://javascript.ru/forum/project/49085-risovalka-na-canvas.html)

alko 28.07.2014 18:42

Рисовалка на canvas
 
Изучал события клавиатуры, заодно попробовал canvas http://learn.javascript.ru/play/hXM9z .
Квадратик перемещается стрелками, если нажать пробел, становится круглым и рисует.

nice_try 28.07.2014 19:46

а по диагонали как?

alko 29.07.2014 10:13

а зачем?)

nice_try 29.07.2014 10:41

Цитата:

Сообщение от alko (Сообщение 323201)
а зачем?)

для удобства :)

alko 29.07.2014 11:00

спросил "а зачем?", а сам решил попробовать.. и с ходу ничего не получается. намекни, если знаешь, интересно аж)

alko 29.07.2014 11:34

можно просто стопы убрать) http://learn.javascript.ru/play/FyVRqc но все равно интересно, как обработать нажатие двух клавишь?

Aetae 29.07.2014 12:00

alko, по keydown добавлять в стек(массив или объект), по keyup убирать, по blur - очищать.

nice_try 29.07.2014 12:08

что-то из этой сферы
http://learn.javascript.ru/play/tuto...multikeys.html

alko 29.07.2014 12:14

Aetae, спасибо, нашел уже этот метод. а зачем по blur - очищать? почему не по keyup сразу?

alko 29.07.2014 12:19

nice_try, во как интересно.. надо мне учебник читать, вообще не знал, что так можно.

Aetae 29.07.2014 12:40

alko, чтоб когда например сворачивают вкладку при нажато клавише(мало ли) всё не уезжало в далёкие дали.)

alko 29.07.2014 12:51

Aetae, точно. Столкнулся с подобным в скрипте имитирующем увилечительное стекло. пришлось дописывать обработчики для потери фокуса и прокрутки страницы, иначе на странице оставалось не пришей не нужное стекло)

alko 30.07.2014 10:57

Разжевали, в рот положили, получилось тип того http://learn.javascript.ru/play/PLKeyb .

nice_try 30.07.2014 11:40

если нажать вверх, когда нажата клавиша вправо (допустим через пол секунды), то не реагирует

alko 30.07.2014 12:18

nice_try, провокатор)) потому что таймаут 50мс. это ж по новому нажатию надо обрывать интервал и запускать новый.. или.. сделать два разных интервала для вправо/влево и вверх/вниз. плин, попробую)

alko 30.07.2014 15:46

как то очень сложно получилось: stopX, stopXX.. перемудрил http://learn.javascript.ru/play/X0Urhc

nice_try 30.07.2014 16:38

неплохо получилось, но иногда не срабатывает, когда сразу (без задержки) жмешь на другие клавиши. так можно играть сбацать по типа бомбермена или pacman ;)

alko 30.07.2014 18:55

http://learn.javascript.ru/play/e0Ihzb теперь ничего не застревает, написал условия для каждой кнопки отдельно и для каждой свой интервал запускается. для пакмэна и бомбера не нужны движения по диагонали)

nice_try 31.07.2014 10:48

Цитата:

Сообщение от alko (Сообщение 323473)
[ для пакмэна и бомбера не нужны движения по диагонали)

а ты сделай модификацию и станешь миллионером


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