18.06.2024 / 16:39 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Кальцид, зачем ты код из цитаты всунул? Убери &apos Перепиши на код 27, раз проблемы со строками
__________________
let live Изменено aNNiMON (18.06 / 16:39) (всего 1 раз) |
18.06.2024 / 16:57 | |
Кальцид Пользователь Сейчас: Offline
Имя: Влад Откуда: Карадарас Регистрация: 05.12.2011
| Ахах, заработало. Просто у меня сначала заходит в полноэкранный режим. Потом нажимаю еск. Он выходит из режима. И потом еще раз нажимаю еск и только тогда кнопка ESC отслеживается и условие срабатывает. У меня идея была отследить выход из полноэкранного режима посредством отслеживания нажатия кнопки ESC. Но это не работает получается. |
24.06.2024 / 05:00 | |
ЕжоргийЧерчилич Пользователь Сейчас: Offline
Имя: Ежоргий Откуда: ПТЗ Регистрация: 19.05.2024
| Цитата Кальцид: Ахах, заработало. Просто у меня сначала заходит в полноэкранный режим. Потом нажимаю еск. Он выходит из режима. И потом еще раз нажимаю еск и только тогда кнопка ESC отслеживается и условие срабатывает.Плохая идея -- для этого в жс своё событие есть добавлено спустя 8 минут: https://developer.mozilla.org/...llscreenchange_eventdocument.onfullscreenchange=console.log или document.addEventListener("fullscreenchange", console.log) добавлено спустя 2 минуты: document.addEventListener("fullscreenchange", (e)=>{
if (document.fullscreenElement) {
console.log('entered fullscreen mode')
}else{
console.log("Leaving fullscreen mode");
}
});
Изменено aNNiMON (24.06 / 09:28) (всего 3 раза) |
22.07.2024 / 21:26 | |
Кальцид Пользователь Сейчас: Offline
Имя: Влад Откуда: Карадарас Регистрация: 05.12.2011
| Как реализовать счетчик fps?
|
22.07.2024 / 21:34 | |
ЕжоргийЧерчилич Пользователь Сейчас: Offline
Имя: Ежоргий Откуда: ПТЗ Регистрация: 19.05.2024
| Кальцид, а как у тебя запрос отрисовки след кадра реализован? В общем, меряешь время в начале отрисовки и вычитаешь пред. значение, делишь 1 на полученное и получаешь ФПС
Изменено ЕжоргийЧерчилич (22.07 / 21:34) (всего 1 раз) |
22.07.2024 / 21:59 | |
Кальцид Пользователь Сейчас: Offline
Имя: Влад Откуда: Карадарас Регистрация: 05.12.2011
| ЕжоргийЧерчилич, как его измерить? Я пробывал так Получаем число 0.25 Потом нагрузил код анимацией из падающих штрихов в количестве 50000. По анимации видно то что fps в районе 4-8 кадров, но число как было так и есть 0.25. Хотя по идее оно должно было стать меньше, так как код стал работать медленнее.. Всё это в канвасе. Изменено Кальцид (22.07 / 22:10) (всего 1 раз)
Прикрепленные файлы: 50kshtrih.jpg (76.32 кб.) Скачано 18 раз |
22.07.2024 / 22:12 | |
Tygrain Пользователь Сейчас: Offline
Имя: Александр Откуда: Днепр Регистрация: 01.07.2012
| Цитата Кальцид: Как реализовать счетчик fps?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;
};
}
|
22.07.2024 / 22:20 | |
Кальцид Пользователь Сейчас: Offline
Имя: Влад Откуда: Карадарас Регистрация: 05.12.2011
| Tygrain, вставил этот код к себе. Вызываю функцию createFPSCounter(); далее вывожу fps. Значение 0. Не работает что то
|
22.07.2024 / 22:28 | |
Tygrain Пользователь Сейчас: Offline
Имя: Александр Откуда: Днепр Регистрация: 01.07.2012
| Кальцид, показывай
|
22.07.2024 / 22:47 | |
Кальцид Пользователь Сейчас: Offline
Имя: Влад Откуда: Карадарас Регистрация: 05.12.2011
| Tygrain, вот Открыть спойлер Закрыть спойлер const canvas = document.getElementById('scren');
const ctx = canvas.getContext('2d');
const SWidth = window.innerWidth;
const SHeight = window.innerHeight;
document.getElementById('scren').width = SWidth;
document.getElementById('scren').height = SHeight;
let cub = [];
let cubmore = 1;
let numberdrop = 50000;
let fps = 0;
function Random(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min) + min);
};
cub.push({
x: 0, y: 0, sx: 0, sy: 5
});
function test() {
ctx.clearRect(0, 0, SWidth, SHeight);
ctx.fillStyle = "blue";
for (i in cub) {
cub[i].y = cub[i].y+cub[i].sy;
cub[i].x = cub[i].x+cub[i].sx;
if (cub[i].y >= SHeight) {
cub[i].y=+cub[i].sy;
cub[i].sy = Random(5, 20);
cub[i].x = Random(0, SWidth);
if (cubmore <= numberdrop) {
cub.push({
x: Random(0, SWidth), y: 0, sx: 0, sy: Random(5, 10)});
};
if (cubmore <= numberdrop) {
cubmore++;
};
};
ctx.strokeStyle = "blue";
ctx.beginPath();
ctx.moveTo(cub[i].x, cub[i].y);
ctx.lineTo(cub[i].x+2, cub[i].y+10);
ctx.stroke();
};
ctx.fillStyle = "white";
ctx.fillRect(0, 0, 200, 80);
ctx.fillStyle = "black";
ctx.font = "20px Comic Sans MS";
ctx.fillText(SWidth, 10, 20);
ctx.fillText(SHeight, 60, 20);
ctx.fillText(cubmore-1, 10, 50);
ctx.fillText(fps, 160, 20);
createFPSCounter();
requestAnimationFrame(test);
};
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;
};
};
test();
|