|  23.07.2024 / 08:15 |  | 
| Slendermanx    Пользователь 
  Сейчас: Offline 
 Имя: AwowerРегистрация: 04.04.2017
 
 | __________________Basic сила, то что в нем нету тебе и не надо    и он сам знает, что тебе надо
   Basic - это сила, а я АвоверИзменено Slendermanx (23.07 / 08:15) (всего 1 раз)
 | 
|  23.07.2024 / 08:16 |  | 
| Tygrain    Пользователь 
  Сейчас: Offline 
 Имя: АлександрОткуда: Днепр
 Регистрация: 01.07.2012
 
 | Slendermanx, значит в консоль никак нельзя печатать?
 | 
|  23.07.2024 / 08:17 |  | 
| Slendermanx    Пользователь 
  Сейчас: Offline 
 Имя: AwowerРегистрация: 04.04.2017
 
 | __________________Tygrain, в консоли только ошибки, для всего остального есть дебагер  
   Basic - это сила, а я Авовер | 
|  23.07.2024 / 10:59 |  | 
| ЕжоргийЧерчилич    Пользователь 
  Сейчас: Offline 
 Имя: ЕжоргийОткуда: ПТЗ
 Регистрация: 19.05.2024
 
 | Slendermanx, бред, в консоль можно хоть картинки выводить
 | 
|  23.07.2024 / 11:02 |  | 
| Slendermanx    Пользователь 
  Сейчас: Offline 
 Имя: AwowerРегистрация: 04.04.2017
 
 | ЕжоргийЧерчилич, ты не уловил нити разговора. Речь о Basic, в частности Dark__________________
 
   Basic - это сила, а я Авовер | 
|  1.08.2024 / 15:10 |  | 
| Кальцид    Пользователь 
  Сейчас: Offline 
 Имя: ВладОткуда: Карадарас
 Регистрация: 05.12.2011
 
 | Почему через определённое время код начинает тормозить? Особенно когда начинаю двигать мышкой? Открыть спойлер Закрыть спойлер const canvas = document.getElementById("cnv");const ctx = canvas.getContext("2d");const SWidth = window.screen.width;const SHeight = window.screen.height;const updateFPS = createFPSCounter();document.getElementById("cnv").width = SWidth-15;document.getElementById("cnv").height = SHeight-15;let mouse = {x:0,y:0};ctx.translate(0.5, 0.5); function createFPSCounter() {    let lastFrameTime = performance.now();    let frameCount = 0;    let fps = 0;     return function updateFPS() {        const currentTime = performance.now();        frameCount++;         if (currentTime - lastFrameTime >= 1000) {            fps = frameCount;            frameCount = 0;            lastFrameTime = currentTime;        }         return fps;    };};  function adm() {    canvas.addEventListener('mousemove', function(event) {        mouse.x = event.clientX;        mouse.y = event.clientY;    });     ctx.font = "15px Comic Sans MS";    ctx.fillStyle = "white";    ctx.fillText("mouseX - "+mouse.x, 10, 150);    ctx.fillText("mouseY - "+mouse.y, 10, 170);    ctx.fillText("mouseX+- - "+(((SWidth/2) - mouse.x)+0), 10, 190);   }; function game() {    ctx.clearRect(0, 0, SWidth, SHeight);    ctx.fillStyle = "black";    ctx.fillRect(0,0,SWidth,SHeight);         adm();    requestAnimationFrame(game);}; game();
 | 
|  1.08.2024 / 16:45 |  | 
| RblSb    Пользователь 
  Сейчас: Offline 
 Регистрация: 25.07.2011
 | У тебя в game каждый кадр вызывается adm, где постоянно добавляется addEventListener на каждое движение мышки. Тебе надо эту функцию вызывать вне requestAnimationFrame цикла, ну и можно назвать init например.
 Изменено RblSb (1.08 / 16:45) (всего 1 раз)
 | 
|  1.08.2024 / 20:03 |  | 
| Кальцид    Пользователь 
  Сейчас: Offline 
 Имя: ВладОткуда: Карадарас
 Регистрация: 05.12.2011
 
 | RblSb,  как это в не requestAnimationFrame? Ведь это основной цикл игры, где всё происходит, каждый кадр нужно отслеживать положение мыши и записывать эти данные в переменные, для дальнейшей работы. Или я, что то не понимаю..
 | 
|  1.08.2024 / 21:01 |  | 
| ЕжоргийЧерчилич    Пользователь 
  Сейчас: Offline 
 Имя: ЕжоргийОткуда: ПТЗ
 Регистрация: 19.05.2024
 
 | Цитата Кальцид:RblSb,  как это в не requestAnimationFrame? Ведь это основной цикл игры, где всё происходит, каждый кадр нужно отслеживать положение мыши и записывать эти данные в переменные, для дальнейшей работы. Или
 document.addEventListener("mousemove",(event)=>{    window.mouseX=event.x;    window.mouseY=event.y;});
И просто значение переменной смотришь (ДОБ.: да, это у тебя правильно сделано) Евент листенер достаточно один раз создать и оставить, иначе ты их на каждом кадре плодишь, это плохо -- оно один раз ставится и реагирует. Ставится оно глобально, а не в контексте -- как глобальные переменные. Добавлено: ть эти данные в переменные, для дальнейшей работы. Запятая лишняяИли я, что то не понимаю.. Запятая лишняя, "что-то" через дефис Изменено ЕжоргийЧерчилич (1.08 / 21:06) (всего 4 раза)
 | 
|  1.08.2024 / 23:38 |  | 
| RblSb    Пользователь 
  Сейчас: Offline 
 Регистрация: 25.07.2011
 | Кальцид, ты не получаешь каждый кадр в своем цикле координаты мыши, а создаешь обработчик ее события. Как только мышь сдвинется, функция твоего обработчика будет вызвана, независимо от твоего игрового цикла.
 А сейчас ты каждый кадр создаешь все больше обработчиков и после каждого движения мыши у тебя браузер тысячи раз тебе отправляет координаты в тысячи твоих каллбеков, созданных через addEventListener каждый кадр.
 
 Это как каждую секунду на тебя датчик сердцебиения прилеплять очередной и потом они все начинают пищать когда слышат стук.
 
 Изменено RblSb (1.08 / 23:40) (всего 1 раз)
 |