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

Герои Мини-Королевства

Кликер, Стратегии, Мидкорные

Играть

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

  • Rahlkan Rahlkan 1 пост
  • Tannhauser9 Tannhauser9 4 поста
  • alex.carrier alex.carrier 5 постов
Посмотреть весь топ

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

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

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

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

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

Как мы делали мини-игру про ровер на Марсе внутри 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
144
user5270234
user5270234
2 месяца назад

Я сделал веб-игру про рисование песком с 200 000 физических песчинок⁠⁠

Игра в браузере: https://alexander-dudarev.itch.io/sand-art

Sand Art – это симулятор творческой физической песочницы, в которой я постарался сделать реалистичное моделирование до 200 000 частиц песка.

Я использовал технологии WebGL и пытался создать интуитивно понятное управление, чтобы создать увлекательный творческий процесс.

1/4

Ключевые функции:

- Реалистичная физика песка с 200 000 динамическими частицами, создающими впечатление подлинного песка.

- Многослойная система частиц обеспечивает естественное взаимодействие между песчинками.

- Оптимизированный рендеринг WebGL для обеспечения бесперебойной работы на всех устройствах.

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

Игра идеально подходит для снятия стресса, творческого самовыражения, арт-терапии.

Буду рад получить фидбэк. Что улучшить, чего добавить?

Показать полностью 4
[моё] Игры Компьютерные игры Видеоигра Веб-разработка Мобильные игры Приложение Рисование Процесс рисования 2D HTML Javascript Web Программирование Программист Программа Песок Творчество Креатив Видео Без звука Короткие видео
28
Zirogona
Zirogona
3 месяца назад
Серия Хроники лыжных игр

Создаю калькулятор смазки в DeepSeek⁠⁠

Но что-то идёт постоянно не так! Блин, то сетка начинает учитывать процент внутри типа снега, а у нас их два: грубый и мягкий, то путает влажность, то кривит названия смазок.

1/9

Вот так выглядят калькуляторы, созданные в DeepSeek. Работающих пока нет.

Записать ей игровое видео пока невозможно: Atom N2600 и 2гб оперативы. И телефоном не могу: нет упора в данный момент.

1/7

Некоторые из промптов.

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

Ообнаружилось ещё, что задать от -15 до 5, в ручном режиме, а смазка почему-то есть для от -20 до 10. Скорее всего для уравнивания. А там хз.

Однако мне не удалось — практически ничего не работает (попросила написать html5), например, в получившемся калькуляторе заявлено 88%, а по факту еле-еле 75-76%, или калькулятор заверяет о 99,5% качества смазки, но зашла в игру и проверила: ерунда. Не то. И так по кругу.

В текстовом файле какие-то два параметра, назначение которых мне неясны. Вообще.

Вот тут лежат сами нерабочие калькуляторы, скрины, промпты, таблица и текст оригинальный.

Как правильно общаться с DeepSeek? Я только недавно начала, как раз, именно для генерации небольших кусков кода.

Показать полностью 16
[моё] Компьютерные игры Симулятор Горные лыжи DeepSeek Искусственный интеллект Калькулятор HTML Промпт Длиннопост
21
7
Eye.Providence
Eye.Providence
3 месяца назад
Лига тестировщиков

Ответ на пост «Поиск удаленной работы. HTML, CSS, Fronted»⁠⁠1

Как я понял. Вам не нравится верстать. Вы это дело осваиваете чисто ради денег.

Программист, без интереса, на уровне непрограммист - вообще никому не нужен и учить его никто не будет. И пустое это занятие.

И html + css - это не программист. Не одно из этого вот не язык программирования.

html + css - сейчас полностью заменимо ИИ.

Есть тильда.

Верстальщик - мертвое направление.

А теперь совет как войти в IT. Войти ради денег.

Устройся на работу не важно кем и куда но в IT. Там уже научишься всему.

Поясняю, в it есть дофига работы которую надо делать около IT и супер пупер навыки там не нужны.

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

Работа которая по меркам it оплачивается не очень, но это все же ближе к it зп.

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

Доход Деньги HTML Удаленная работа Заработок Разработка CSS Текст Ответ на пост
8
pikabu.education
pikabu.education
3 месяца назад
Серия Программирование

Что дальше после HTML/CSS?⁠⁠

Куда двигаться в веб-разработке и не только
Вчера мы публиковали подборку лучших курсов по HTML и CSS — возможно, вы уже выбираете подходящий вариант для старта. Но что делать после освоения базовой верстки? Куда двигаться, чтобы продолжать развиваться в IT?

Если вы уже уверенно верстаете страницы, но не знаете, какой навык осваивать следующим — этот материал для вас. Мы разберем основные направления развития после HTML/CSS и поможем выбрать подходящий путь.

1. Углубляемся в фронтенд: JavaScript и фреймворки
HTML и CSS — это база, но без JavaScript (JS) сайты остаются статичными. JS добавляет интерактивность: анимации, формы, динамическую загрузку данных.

Что учить?

  • Основы JavaScript: синтаксис, DOM-манипуляции, асинхронность (Promise, async/await).

  • Фреймворки и библиотеки: React.js (самый популярный, востребован в вакансиях), Vue.js (проще для новичков), Angular (используют в корпорациях).

  • Дополнительные инструменты: TypeScript (типизированный JS), Next.js/Gatsby (для SSR и статических сайтов).

Результат: сможете создавать сложные SPA (Single Page Applications) и претендовать на позицию Junior Frontend-разработчика.

Что дальше после HTML/CSS? Обучение, Frontend, Backend, HTML, CSS

2. Осваиваем бэкенд: серверная часть
Если вам интересно, как работают базы данных, авторизация и API, можно уйти в бэкенд.

Варианты технологий:

  • Node.js + Express (если хотите остаться в JS-экосистеме);

  • Python (Django/Flask) — проще синтаксис, много возможностей;

  • PHP (Laravel) — популярен в вебе;

  • C# (ASP.NET) / Java (Spring) — корпоративный сектор.

Результат: сможете писать серверную логику и стать Fullstack-разработчиком.

3. Идем в дизайн и UX/UI
Если вам нравится не только верстать, но и продумывать интерфейсы, можно развиваться в дизайн:

  • Figma/Adobe XD — создание макетов;

  • Основы UX — юзабилити, исследования;

  • Анимация интерфейсов (CSS/JS, GSAP, Framer Motion).

Результат: сможете работать UI/UX-дизайнером или фронтендером с уклоном в дизайн.

4. Другие направления: мобильная разработка, тестирование, DevOps

  • Мобильная разработка: React Native, Flutter, Swift/Kotlin.

  • Тестирование (QA): ручное и автоматическое (Selenium, Cypress).

  • DevOps: Docker, CI/CD, облачные технологии (AWS, Azure).

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

  • Если вам нравится создавать визуальные элементы, работать с анимацией и интерфейсами, то выбирайте фронтенд.

  • Если вас больше увлекает: логика и работа с данными, создание сложных систем, решение неочевидных задач, то вам может подойти бэкенд-разработка.

  • Если мечтаете: разрабатывать мобильные приложения, работать с современными кроссплатформенными технологиями, то вас может заинтересовать мобильная разработка.

Главное — не останавливаться! После HTML/CSS открывается огромный мир IT, и вы можете найти именно то, что вам по душе.

А что бы выбрали вы? Делитесь в комментариях!

Показать полностью 1
Обучение Frontend Backend HTML CSS
108
Mahurchevator
Mahurchevator
3 месяца назад

Скринсейвер⁠⁠

Скринсейвер Мат, Рекурсия, Скринсейвер, HTML, Длиннопост

код вставляем в блокнот и потом расширение ".txt" меняем на ".html":

<!DOCTYPE html>

<html>

<head>

<style>

:root {

--start-scale: 0.1;

--scale-step: 4.8;

--animation-duration: 15s;

--spawn-delay: 1.1s;

}

body {

margin: 0;

overflow: hidden;

background: black;

display: flex;

justify-content: center;

align-items: center;

min-height: 100vh;

}

.yu, .pahu {

position: absolute;

color: white;

font-family: Arial;

animation: yu-animation var(--animation-duration) linear forwards;

transform-origin: 63% 50%;

opacity: 0;

}

.yu {

font-size: 50vmin;

}

.pahu {

font-size: 15vmin;

color: #ff5555;

--start-scale: 0.8; /* Отдельный масштаб для надписи */

}

@keyframes yu-animation {

0% {

transform: scale(var(--start-scale)) rotate(var(--rotate-start));

opacity: 1;

}

100% {

transform: scale(30) rotate(var(--rotate-end));

opacity: 0;

}

}

</style>

</head>

<body>

<script>

let counter = 0;

let nextPahuAt = 10 + Math.floor(Math.random() * 6) + 5; // 10 + (5-10)

function createPahu() {

const pahu = document.createElement('div');

pahu.className = 'pahu';

pahu.textContent = 'ПАХУЮ';

const startAngle = Math.random() * 360;

const endAngle = startAngle + 360 * 3;

pahu.style.setProperty('--rotate-start', `${startAngle}deg`);

pahu.style.setProperty('--rotate-end', `${endAngle}deg`);

pahu.addEventListener('animationend', () => pahu.remove());

document.body.appendChild(pahu);

}

function createYu() {

counter++;

// Создаем ПАХУЮ каждые 10-15 букв Ю

if(counter >= nextPahuAt) {

createPahu();

counter = 0;

nextPahuAt = 10 + Math.floor(Math.random() * 6) + 5; // Новый интервал

}

const yu = document.createElement('div');

yu.className = 'yu';

yu.textContent = 'Ю';

const startAngle = Math.random() * 360;

const endAngle = startAngle + 360 * (Math.random() * 2 + 1);

yu.style.setProperty('--rotate-start', `${startAngle}deg`);

yu.style.setProperty('--rotate-end', `${endAngle}deg`);

yu.addEventListener('animationend', () => yu.remove());

document.body.appendChild(yu);

setTimeout(createYu, parseFloat(getComputedStyle(document.documentElement)

.getPropertyValue('--spawn-delay')) * 1000);

}

// Запуск анимации

// made by Махурчеватор just for fun ^^

createYu();

</script>

</body>

</html>

обновил, убрал спойлер, хз через задницу вставляется, в каментах еще раз продублировал, в посте форматирование кода хз как настроить

Показать полностью
[моё] Мат Рекурсия Скринсейвер HTML Длиннопост
4
7
GrblFF
3 месяца назад

Страница 4.04⁠⁠

С днём веб мастера!
Меньше багов, код красив, прод жив.

[моё] HTML Веб-разработка Короткопост Текст
7
Партнёрский материал Реклама
specials
specials

Вам сегодня везет? Предлагаем проверить!⁠⁠

Сразитесь в трех играх и зарядитесь удачей на весь день. Бонус победителям: промокод и награда в профиль.

Играть

Удача Награда Пицца Текст
13
pimarov352
3 месяца назад

Волосинка⁠⁠

Листаю ленту. Смотрю какая-то царапина на мониторе, которой не было. Но ногтем не чувствуется.

Лезу в код проверить, и да, волосинка добавлена на 1 апреля.

Выглядит как настоящая царапина. Прикол удался.

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