Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 25.02.2015, 06:10
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

danik.js,
да было бы крутяк трансформ ротейт менять - было бы вообще плавно, хотя думаю 8 точек достаточно для поворота.
Я matrix() нагуглил - но чувак как то там косинусами синусами все вычислял - мне пока это не дано. Он как бы показывал как работает на UI функция поворота блока мышкой.
Ответить с цитированием
  #22 (permalink)  
Старый 25.02.2015, 06:16
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Bond
становлении будущего гуру по JS
Выкинь jQuery пока. Эта либа разлагает мозги, плохому учит типа )

У меня не объект, а конструктор, создающий сколь угодно жуков.

Но ты можешь создать одного жука, без конструктора:

var bug = {
    step: 5,
    element: document.querySelector('.juk'),
    moveTo: function(direction) {
        this.element.style.top += this.step;
    }
};
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #23 (permalink)  
Старый 25.02.2015, 06:29
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

danik.js,
Да, по поводу jQuery заметил что разлагает. Подумал что крутая фишка - для верстки почти все задачи решает. Вот и забил на JS. С PHP помню while for if и прочее - вот и подумал что этого достаточно. Но последнее время пришел к мысли что х. р..й я занимаюсь а не веб разработкой с этими хлипкими скриптиками и чужими решениями типа галереи или таймера. Вот и решил основательно подойти к этому вопросу.
Ответить с цитированием
  #24 (permalink)  
Старый 25.02.2015, 06:32
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Bond, можешь при повороте по часовой стрелке минусовать 90deg, против часовой - плюсовать. Правда, если крутиться на месте число будет возрастать.
this.rotation = 0;

moveTo(dir) {
    dir = {top: 0, left: 90, right: 270, bottom: 180}[dir];
    var diff = dir - (this.rotation % 360);
    if (diff > 180) {
        diff -= 360;
    this.rotation += diff;
}


rotation - угол поворота. Может быть больше 360.

rotation % 360 - отбросили лишние обороты, получили 0 <= x <= 360

diff - разница в градусах на сколько нужно повернуться из текущего положения. Если больше 180, значит поворачиваться надо в противоположную сторону - минусуем оборот.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #25 (permalink)  
Старый 25.02.2015, 06:35
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

Еще интересно - а что бы лабиринт еще создать, как решить такую задачу? В массивах хранить стопы куда нельзя заходить?
Ответить с цитированием
  #26 (permalink)  
Старый 25.02.2015, 06:38
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

danik.js,
О, спасибо попробую. Есть фронт работ для экспериментов.
Ответить с цитированием
  #27 (permalink)  
Старый 25.02.2015, 08:03
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Блин, быдляцкий код получился для вычисления угла поворота.
http://jsfiddle.net/danya_postfactum/3xysqas1/
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #28 (permalink)  
Старый 25.02.2015, 08:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Сообщение от danik.js
рони, прекрасный код! С меня причитается
жаль что вам он вам не понравился - по крайне мере он решает поставленную задачу из первого поста в отличие от твоих примеров.
Ответить с цитированием
  #29 (permalink)  
Старый 25.02.2015, 08:43
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

рони, я не спорю насчет работы кода. У меня предъявы к его читаемости (названия переменных, если забыл).
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #30 (permalink)  
Старый 06.03.2015, 14:49
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

danik.js,
Уже полностью разобрался в коде, также разобрался с конструкторами и прототипами, но вот смущает 3 строка в этом коде:
Bug.prototype.moveTo = function(direction) {
    this.direction = direction;
    var angle = {top: 0, left: 270, right: 90, bottom: 180}[direction];
    var diff = angle - (this.rotation % 360);
    //console.log(this.rotation, diff, (diff - 360));
    if (diff > 180 )
        diff = diff - 360;
    else if (diff < -180 )
        diff = diff + 360;
    
    this.rotation += diff;

    if (diff == 0) {
        // продвигаемся
        this.advance();
    }
    this.update();
};

Не могу понять что здесь происходит - вернее что происходит ясно если к примеру direction == 'left' то angle будет 270 и т.д, но вот не пойму что это за запись, вроде про объекты читал, и про массивы тоже, но это мне напоминает смесь бульдога с носорогом. Проясните пожалуйста куда копать, не обязательно в подробностях. Видимо я что то пропустил.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сценарий, который сможет словами написать заданное число Елена1991 Общие вопросы Javascript 10 02.12.2015 10:57
Можно ли получить сам контент, который подгрузился в src andromed Events/DOM/Window 3 06.07.2014 19:30
Как вставить в событие, указатель на объект, который получает это событие? Pacan228 Общие вопросы Javascript 2 04.07.2012 19:53
Как узнать html-код который выводит js? leny Элементы интерфейса 13 18.12.2011 22:06
Выбрать элемент, на который нажали vanderv jQuery 1 11.01.2011 16:16