Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Собирайте комбинации из блоков! Бесконечный режим, более 100 уровней, ежедневные задания и турниры.

Расслабьтесь и отдохните: игра без ограничений по времени.

Проверьте свою смекалку: головоломка для любителей

Блоки Судоку - расслабляющая головоломка

Головоломки, Гиперказуальные, Мобильная

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

CSS + Web-программирование

С этим тегом используют

HTML Программирование Верстка Javascript IT Web Frontend Программист Веб-разработка Все
86 постов сначала свежее
2
Romabooy
Romabooy
1 месяц назад

Плавный ступенчатый переход с задержкой на CSS⁠⁠

Совет!
Используй тригонометрические функции в CSS, чтобы создать плавный ступенчатый переход с задержкой

.character {
transition-delay:
calc(sin((var(--index) / 12) * 45deg) * 0.475s);
}

Показать полностью
CSS Web-программирование Видео Видео ВК Короткие видео
0
2
mars.frontier
mars.frontier
1 месяц назад

Как мы делали мини-игру про ровер на Марсе внутри Telegram WebApp⁠⁠

«Хочется сделать простую карту, чтобы листать её в Telegram». С этого всё и началось. А закончилось — изометрическим движком, авторизацией по WebApp, системой энергии, покупкой участков и боевым ровером с шестью колёсами.

1/3

🚀 С чего всё началось?

В начале всё было очень просто.
Мы сделали простенького бота, о котором я уже как-то тут писал, и бэк рендерил картинки с кусочком карты, где ты находишься.

В целом, даже эта идея была вполне рабочей и первые 300 пользователей с разных источников легко собрались. Мы даже провели на 9 мая конкурс "найди звезду победы" и выплатили победителю небольшой приз :)

Но само собой, что бот - не предел мечтаний, нужно было пилить полноценный мини-апп.

На боте лишь проверили гипотезу, отладили механики, типа уменьшения энергии, подзарядки аккумулятора в течении времени, пока не заходишь в игру.

Первый шаг в сторону мини-аппки - сделали вебстраничку, где можно было листать мышкой или пальцем — просто ради визуализации. Прямоугольная сетка, тайлы, немного стилей. Telegram WebApp проглатывал HTML5 на ура. Тогда не было никакой логики, просто подгрузка текстур и картинка под пальцем.

Вот как это выглядело:

  • Пользователь заходил и видел карту Марса.

  • Никакого взаимодействия — только “глянуть”.

🎮 А потом захотелось интерактивности

Следующим шагом стало добавление изометрии — чтобы выглядело как псевдо-3D. Самое интересное, что даже не потребовалось изменять текстуры. Серьезно :) Они по-прежнему те же самые, квадратные, 64 х 64. И не используется никакой 3д - движок.

вот краткое и понятное объяснение, как строится изометрическая карта из квадратных тайлов:


🧠 Основная идея:

Каждый квадратный тайл поворачивается на 45° и масштабируется по вертикали, чтобы получился ромб (изометрическая проекция). Вместо привычной сетки (x, y) мы рассчитываем экранные координаты (left, top) по формуле:


📐 Формулы для отображения:

При размере одного тайла T:

  • W = T * sqrt(2) — изометрическая ширина (диагональ квадрата).

  • H = W / 2 — изометрическая высота (высота ромба).

  • WX2 = W / 2, HX2 = H / 2 — половинки для смещения от центра.

Переход от логических координат (dx, dy) к пиксельным:

isoX = (dx - dy) * WX2 + centerX; isoY = (dx + dy) * HX2 + centerY;


🧩 Что это даёт:

  • (dx - dy) — смещает тайл по горизонтали.

  • (dx + dy) — смещает тайл по вертикали.

  • centerX, centerY — центр экрана, чтобы карта строилась относительно игрока.


🎯 В результате:

  • Из обычной квадратной сетки (x, y) формируется ромбовидная карта, где видны и горизонтальные, и вертикальные соседние тайлы.

  • Центральная клетка (текущий игрок) — всегда по центру, а остальные располагаются вокруг.

    Ну а дальше уже дело техники - придумали алгоритм перемещения в 8 направлениях: вверх, вниз, влево, вправо, плюс диагонали.

    Подключили ранее обкатанный в чатботе расход энергии за каждый шаг, и разный расход за диагональные движения, в сравнении с линейным. Плюс небольшой рандом :)

    Задали запреты на воду, скалы и занятую клетку, чтобы не было “читов”.

🔐 Само собой - авторизация

Чтобы пользователь не “прыгал” по чужим роверам и участкам, мы внедрили Telegram WebApp InitData (это такая строка с хешем, которую фронт передает нам в бэк, а мы - уже на сервере телеграм с токеном бота валидируем подпись. Если сошлась - то пользователь зашел к нам через телегу. Если нет - скорее всего он просто открыл веб-страницу как сайт, или что-то пытается поломать, подделать :)

Если кратко:

  • Telegram сам отдаёт токен с подписью.

  • Мы проверяем подпись на бэке по HMAC SHA256.

  • Получаем ID пользователя, сохраняем его в сессии.

Теперь всё честно: ровер – только твой, кристаллы – только твои.

🪐 Стало красивее: добавили кристаллы и рамки

Потом появились:

  • Кристаллы на клетках — можно собирать.

  • Подсветка клеток: белая рамка — твоя, красная — чужая.

  • Имена владельцев, чтобы было видно, кто что захватил.

    В планах: Покупка участков за кристаллы. Это было в текстовом боте. И ползая по карте, даже видны купленные тобой (белым) и оппонентами (красным) участки.

⚡️ Оптимизация и загрузка ассетов

Мы поняли, что каждая картинка может тормозить игру на слабом устройстве, и:

  • Добавили прелоадер, который подгружает PNG-шки перед игрой.

  • Сделали показ спиннера на любом действии (движение, загрузка).

  • Кэшируем тайлы и обновляем только при движении.

🤖 Как выглядит сейчас

Игрок:

  • Заходит в Telegram Mini App.

  • Авторизуется за доли секунды.

  • Видит изометрическую карту с ровером, кристаллами, участками, рекламными баннерами.

  • Может двигаться по клеткам, собирать кристаллы (в будущем - бурить и находить ресурсы, торговать ими, покупать землю).

А мы — всё это рисуем прямо в DOM.
Никаких Canvas, WebGL, или тяжелых движков. Только HTML, CSS и немного магии на JS.


💬 Если интересно — покажу, как это выглядит вживую.
Тестить можно тут. А если зайдёт — добавим NFT, фермы и квесты на выживание 😄

Показать полностью 3
[моё] Gamedev Разработка Программирование Telegram Javascript Python Unity Frontend Backend Web Web-программирование Ton HTML CSS Верстка Длиннопост
9
2
highstandard
highstandard
4 месяца назад
Лига фрилансеров

Учусь делать веб сайты, моя тестовая страничка⁠⁠

http://222.ct.ws/

Вообще интересует вопрос в какую сторону развиваться, читал что хвалят django и также django cms или Wagtail - но они требуют хостинга с Python и для потенциальных клиентов не так популярны как wordpress - который в свою очередь тоже вызывает вопросы

Учусь делать веб сайты, моя тестовая страничка Web-программирование, Web, Создание сайта, CSS
Показать полностью 1
[моё] Web-программирование Web Создание сайта CSS
13
Вопрос из ленты «Эксперты»
tablepedia
5 месяцев назад
Web-технологии

Генерация HTML файлов с помощью Excel и бесплатного OpenOffice Calc⁠⁠

Я в феврале 2025 года работаю над проектом "Генерация HTML файлов с помощью табличного редактора". Напишите, пожалуйста, в комментариях ссылки на похожие проекты. Точнее, на файл табличного редактора для генерации HTML.

[моё] Вопрос Спроси Пикабу Программа Программирование Microsoft Excel HTML Основы HTML Windows Файл Генерация Таблица Сайт IT Web Web-программирование Приложение CSS Дизайн Веб-дизайн Графический дизайн Короткопост Текст
14
maximz
maximz
5 месяцев назад

Обычный рабочий день frontend разработчика⁠⁠

Всем привет, окунитесь в обычный рабочий день frontend разработчика. Жена пикабушника делает листинг каталога для онлайн бронирования vr игр

Приятного просмотра, с удовольствием отвечу на все вопросы по теме

Показать полностью
[моё] Стримеры React IT Приложение Web-программирование Программирование Javascript Айтишники Сайт Frontend Разработчики Видео YouTube CSS
3
6
Djunney
Djunney
7 месяцев назад

Создание игры⁠⁠

Всем добрый.
Как то одним вечером мне пришла в голову мысль создавать игру. Но создавать я её решил в необычном месте, в браузере. Она не использует какие либо сложные технологии. Фактически всё держится на html,css,js + сервер на nodejs, который обрабатывают всю информацию что где нажато и где хранится вся информация и передаётся игроку дабы не нагружать страницу.

Сам жанр подразумевается как рогалик , сложный , нужно будет думать куда как передвигаться. с каким монстром как взаимодействовать. Пошаговый + карточный , ваш предмет в инвентаре даёт вам опр. характеристики а самое карты, которые вы используете в будущем. Некоторые идеи начинают превращаться в рабочий функционал, но многое ещё впереди.

Благо ИИ помогают с текстами и картинками, но я бы наверное хотел какой то свой стиль, только ещё не пришёл к нему.

Могу выкладывать врем от времени процесс разработки и какие новые вещи появились в игре. Да и в целом могу рассказать что уже имеется. "Игра" пока что на локальном компьютере и её нет в интернете, т.к ещё слишком сырая, но прилагаю скриншоты.

1. Главное меню. Да, пока идея останавливается на одной сессии. Создал, Умер, заново. Каждый новый забег - новый опыт. А если устал, то можно всегда выйти и в будущем продолжить там где остановился. Игра уже запоминает где ты был что делал и так далее.

Создание игры Компьютерные игры, Игры, Браузерные игры, Браузер, Web-программирование, HTML, CSS, Javascript, Длиннопост

2. Создание персонажа (Я пока не до конца решил будут ли классы или расы или что то ещё, но какие то уникальные карты и особенности точно добавлю.

Создание игры Компьютерные игры, Игры, Браузерные игры, Браузер, Web-программирование, HTML, CSS, Javascript, Длиннопост

3. Карта, по которой можно будет перемещаться. Генерируется рандомно, пока это цветные клетки, в будущем это будут места интересностей (мельница, пещера, заброшенный дом, болото и т.д). Есть 10 ходов до наступления ночи и что то произойдёт))

Создание игры Компьютерные игры, Игры, Браузерные игры, Браузер, Web-программирование, HTML, CSS, Javascript, Длиннопост

4. Боёвка

Создание игры Компьютерные игры, Игры, Браузерные игры, Браузер, Web-программирование, HTML, CSS, Javascript, Длиннопост

Ваша экипировка дарует вам карты, эти карты можно использовать в боёвке. У персонажа есть Сила Ловкость Выносливость Дух Интеллект и Харизма. Каждая карта требует своё количество очков какого либо атрибута. Монстры так же имеют свои карты и логику поведения. Карты они играют сразу, но вот какие зависит от того что вы играли ранее, или сколько у вас хитов и так далее. В будущем будут карты силы (А ля воин) , для магов (Интеллект) , для Шаманов (Дух) и прочее прочее))

На этом всё! Спасибо если дочитали до конца.
Всем продуктивных будней ;)
С вами был , Djunney

Показать полностью 4
[моё] Компьютерные игры Игры Браузерные игры Браузер Web-программирование HTML CSS Javascript Длиннопост
4
1
japonsu
7 месяцев назад

Создание чего-либо на HTML & CSS⁠⁠

Давно был интерес к программированию, первое время изучал Python, по итогу сколько пытался, столько и забрасывал. Теперь решил изучить HTML & CSS, пока-что нравится и есть интерес. Изучать язык начал буквально сегодня, но не знаю с чего именно начать. Можете накидать легкие проекты (пока-что делал квадрат, круг и таблицу, но код просто переписывал с нейронки и пытался его запомнить/разобраться что за что отвечает) или сказать с чего вообще лучше всего начать изучать HTML & CSS

Web-программирование CSS HTML Текст
9
nerd220
9 месяцев назад

Убираем свежую рекламу из Яндекс.Почты⁠⁠

Для этого нам нужно любое расширение браузера, поддерживающее свои фильтры по CSS (например, AdBlock).

Указываем в настройках следующие фильтры:

mail.yandex.ru##.ns-view-react-promo-container + div
mail.yandex.ru##.ns-view-infoline-box + DIV
mail.yandex.ru##.ns-view-collectors-setup + DIV
mail.yandex.ru##.ns-view-mail-pro-left-column-button + DIV
mail.yandex.ru##.mail-BuyProButton
mail.yandex.ru##.ns-view-mail-pro-left-column-widget + DIV
mail.yandex.ru##.mail-Advanced-Search + DIV

(смысл тут в том, что Яндекс случайным образом называет классы внутри рекламы, но блок перед рекламой назван статичным образом и мы говорим фильтру обращаться к следующему блоку после указанного).

Настройка может выглядеть так:

Убираем свежую рекламу из Яндекс.Почты Adblock, Яндекс, Реклама, Web-программирование, CSS

Как убрать рекламу через Temper Monkey

Иногда AdBlock не помогает, либо страница блокирует его исполнение (как это делает Я.Браузер). Temper Monkey позволяет запускать пользовательские скрипты на странице.

Вот пример скрипта для Temper Monkey, который блокирует рекламу на домашней странице яндекса (ya.ru): https://drive.google.com/file/d/1bx_H2LWBg6uwRHwwv1CJirm6oht...

Скрипты добавляются в меню настройки расширения Temper Monkey

Обратите внимание на следующие моменты (если будете подстраивать скрипт под себя):

  1. @match https://ya.ru/* - фактически связывает скрипт с сайтом. Почему нужно указывать именно со звёздочкой расскажу ниже

  2. Функция Work будет вызываться до тех пор, пока элемент на странице не появится (иногда, страницы выдаются пользователю не сразу) в ней метод relem будет пытаться удалить элемент по имени классу (можно поменять это на querySelector).

Для того, чтобы Temper Monkey корректно запустился на той же ya.ru (особенно под Я.Браузером) вам нужно открывать не ya.ru, а ya.ru/?t=1 - в этом случае Temper Monkey запустится корректно и реклама будет скрыта.

Как установить AdBlock (и не только) под Я.Браузер

Прежде всего нам нужно найти и загрузить файл установки расширения для Chrome (можно скачать его из временных папок хрома, например из %userprofile%\AppData\Local\Google\Chrome\User Data\Default\Extensions\ - только найти там будет проблема).

Далее открываем файл Manifest.json и в нём убираем строку minimum_chrome_version (либо занижаем параметр, например, на 20).

Затем идём в browser://extensions/ и там нажимаем "Загрузить распакованное расширение" и выбираем папку с нужным расширением.

Показать полностью 1
[моё] Adblock Яндекс Реклама Web-программирование CSS
3
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии