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

Накорми Попугая

Аркады, Маджонг, Казуальные

Играть

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

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

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

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

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

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

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

Javascript

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

Программирование IT HTML IT юмор Программист Frontend CSS Все
964 поста сначала свежее
Rewaqrt
Rewaqrt
4 года назад

Xsd2html⁠⁠

Здравствуйте, скажите как распарсить xsd чтобы получить из него модель dom состоящую из label/input на js?

[моё] Программирование HTML Dom Javascript Текст
16
11
webvkube
4 года назад
Web-технологии

Следующие 3 урока по three.js. Продолжаем разбирать основы⁠⁠

Предыдущие части можно найти на канале.
Группа проекта https://vk.com/kurspothreejs

Показать полностью 2
[моё] Threejs Урок Javascript Webgl 3D Видео
0
1010
aleha84
aleha84
4 года назад
Лига программистов

Кот смотрит на дождь, сидя на коде, которым это всё нарисовано⁠⁠

[моё] Pixel Art Javascript Анимация Дождь Кот Программирование Видео
69
9
etroynov
etroynov
4 года назад
Лига Разработчиков Видеоигр

Разработка игры на phaserjs - 11: счётчик очков⁠⁠

Разработка игры на phaserjs - 11: счётчик очков Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Добрый день, уважаемые читатели.

В прошлом уроке мы добавили в игру звезды и возможность их сбора, таким образом наша игра приобрела некий смысл т.к до этого наш мир был пуст и безжизнен. Однако на данный момент процесс сбора звезд не имеет никакой обратной связи, кроме того что звезда исчезает после того как мы "набегаем" на неё нашим персонажем. Для того что бы сделать этот процесс более интерактивным мы добавим в игру счётчик очков.

Подготовка к работе

для работы над проектом вам понадобится настроенный phaserjs и установленный nodejs. Все необходимые файлы доступны по ссылке.

Реализация счётчика

Для этого мы будем использовать функционал работы с текстом встроенный в phaserjs. Для этого мы объявим две переменные, одна будет содержать текущий счёт, а вторая объект который позволяет работать с текстом:

Разработка игры на phaserjs - 11: счётчик очков Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Для переменной scoreText мы устанавливаем значение в функции create:

Разработка игры на phaserjs - 11: счётчик очков Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Где:

- 16x16 - это координаты на которых будет располагаться счётчик ( отсчёт идет от левого верхнего угла );

- 'score: 0 ' - начальное значение счётчика;

{ fontSize: '32px', fill: '000' } - объект который устанавливает размер и цвет счётчика, если не устанавливать эти параметры по умолчанию phaserjs будет использовать шрифт Courier;

Далее нам нужно изменить функцию collectStar, мы добавим в неё код который будет повышать значение счётчика каждый раз когда мы поднимаем звезду:

Разработка игры на phaserjs - 11: счётчик очков Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Таким образом каждая поднятая звезда будет прибавлять к нашему счётчику 10 очков:

Разработка игры на phaserjs - 11: счётчик очков Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост
Показать полностью 5
[моё] Gamedev Typescript Javascript HTML Холст Phaser Длиннопост
3
9
maanka
4 года назад

Это реально или бредовая идея: совместно обучиться javascript?⁠⁠

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

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

Как себе это представляю: общение по видеочату один на один. Познакомимся, выберем основной источник, по которому будем учиться и начнем разбирать тему за темой. По времени и продолжительности соорентируемся на месте. Пиши, если интересно на почту maanka@yandex.ru. До встречи!

Javascript Бесплатное обучение Текст
10
DELETED
4 года назад

Аккордеон на грязном jQuery⁠⁠

Учебный пример! Не использовать нигде!

HTML

Добавим только триггер и содержимое:

<button class="js-accordion">
 Click me?
</button>
<div class="content">
 Lorem, ipsum dolor sit amet consectetur adipisicing elit. Hic iure eaque id repudiandae autem doloremque asperiores dolorum ullam molestias! Quidem sint quis quam quisquam at rem repellat! Magni, doloribus eaque!
</div>

CSS

Скрываем содержимое по умолчанию:

.content {
 display: none;
}

jQuery

// При клике на кнопку
$('.js-accordion').on('click', function() {
 // раскрываем следующий элемент
 $(this).next().slideToggle();
});

В итоге вся магия в методе .slideToggle(). Можете еще почитать о .next() и .on(), хотя пожалуй не стоит. Лучше посетите мой codepen :)

Показать полностью
[моё] Frontend Javascript Jquery Web IT Программирование Web-программирование Верстка Текст
5
5
DELETED
4 года назад

Аккордеон на чистом JS⁠⁠

Давайте разберемся как сделать аккордеон на ванильном JavaScript.


HTML

<dl>
 <dt class="question js-accordion">
  <button class="question__trigger" type="button">First Question?
 </button>
 </dt>
 <dd class="answer">
  <div>
   Lorem ipsum dolor sit amet consectetur adipisicing elit. Id, itaque quisquam? Quia cum alias in, beatae soluta dicta fuga corrupti magni? Alias minus nostrum qui at corporis, magni optio ipsam!
  </div>
 </dd>
 <dt class="question js-accordion">
  <button class="question__trigger" type="button">Second Question?</button>
 </dt>
 <dd class="answer">
  <div class="answer__content">
   Lorem ipsum dolor sit amet consectetur adipisicing elit. Id, itaque quisquam? Quia cum alias in, beatae soluta dicta fuga corrupti magni? Alias minus nostrum qui at corporis, magni optio ipsam!
  </div>
 </dd>
</dl>
Что сразу бросается в глаза, так это теги dl, dt, dd. Почему нельзя просто везде использовать div?

В принципе, можно, но аккордеон — это хороший пример списка из терминов и определений, для чего эти теги и предназначены.


Разберем по частям:

<dt class="question js-accordion">
 <button class="question__trigger" type="button">First Question?
 </button>
</dt>

В dt помещаем вопрос, но для чего оборачивать его в кнопку? Опять семантика: когда пользователь кликает на элемент — что-то должно произойти, для этого необходимо использовать button.

Вторая причина — доступность через клавиатуру: на аккордеон можно попасть через tab и раскрыть через пробел.

<dd class="answer">
 <div>
  Lorem ipsum dolor sit amet consectetur adipisicing elit. Id, itaque quisquam? Quia cum alias in, beatae soluta dicta fuga corrupti magni? Alias minus nostrum qui at corporis, magni optio ipsam!
 </div>
</dd>

В dd кладем ответ, обернутый в дополнительный div?

Дело в том, что для того чтобы анимировать «раскрытие» аккордеона, необходимо знать высоту ответа.

.answer {
 overflow: hidden;
 height: 0;
 transition: height 0.5s;
}

В неактивном состоянии тег answer имеет нулевую высоту, поэтому мы помещаем в него дополнительный div, размер которого мы и будем измерять.

Как только аккордеон будет раскрыт — мы присвоим answer ранее измеренную высоту.

JavaScript

Найдем все аккордеоны на странице и инициализируем их:

const elements = [...document.querySelectorAll('.js-accordion')];
elements.forEach(accordion);

Воспользуемся замыканием:

function accordion(element) {
 // объект, в котором будем хранить всю необходимую информацию
 const instance = {};
 function init() {
  // найдем вопрос и ответ
  findElements(instance, element);
  // измерим высоту ответа
  measureHeight(instance);
  // добавим логику нажатия на кнопку
  subscribe(instance);
 }
 init();
}

findElements

function findElements(object, element) {
 const instance = object;
 // element - это "вопрос", по которому происходит нажатие
 instance.element = element;
 // target - это "ответ", который должен "раскрываться"
 instance.target = element.nextElementSibling;
}
Если вспомнить разметку — ответ всегда идет следом за вопросом, поэтому мы и используем свойство nextElementSibling.


measureHeight

function measureHeight(object) {
 const instance = object;
 // вычисляем высоту ответа
 instance.height = object.target.firstElementChild.clientHeight;
}
В то время, как target имеет нулевую высоту, у его потомка размер остался тем же. Этот самый размер мы и сохраняем.subscribe

Аккордеон на чистом JS Аккордеон, Javascript, Frontend, Web, IT, HTML, Программирование, Web-программирование, Гифка, Длиннопост

У answer высота — 0, а у answer__content — нет

subscribe

function subscribe(instance) {
 instance.element.addEventListener('click', (event) => {
  // отменяем "действие по умолчанию"
  event.preventDefault();
  // меняем состояние аккордеона
  changeElementStatus(instance);
 });
 // если размер окна поменяется - измерим высоту ответа заново
 window.addEventListener('resize', () => measureHeight(instance));
}

changeElementStatus

function changeElementStatus(instance) {
 if (instance.isActive) {
  hideElement(instance);
 } else {
  showElement(instance);
 }
}
Если аккордеон активен — сворачиваем его, иначе — раскрываем.


hideElement и showElement

function hideElement(object) {
 const instance = object;
 const { target } = instance;
 // обнуляем высоту ответа
 target.style.height = null;
 // делаем статус неактивным
 instance.isActive = false;
}
function showElement(object) {
 const instance = object;
 const { target, height } = instance;
 // задаем ответу сохраненную в measureHeight высоту
 target.style.height = `${height}px`;
 // делаем статус активным
 instance.isActive = true;
}

Аккордеон на чистом JS Аккордеон, Javascript, Frontend, Web, IT, HTML, Программирование, Web-программирование, Гифка, Длиннопост

Как всегда — демо на codepen.

Показать полностью 2
[моё] Аккордеон Javascript Frontend Web IT HTML Программирование Web-программирование Гифка Длиннопост
9
Партнёрский материал Реклама
specials
specials

Считаете себя киноманом 80 LVL?⁠⁠

Залетайте проверить память и сообразительность → Будет интересно

Киногерои Тест Текст
9
etroynov
etroynov
4 года назад
Лига Разработчиков Видеоигр

Разработка игры на phaserjs - 10: добавление звезд⁠⁠

Разработка игры на phaserjs - 10: добавление звезд Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Добрый день, уважаемые читатели.


Предыдущие уроки:

Надо что то с этим сделать но пикабу не позволяет копировать ссылки а каждый раз вставлять их в ручноую это жжжжж.

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

Давайте добавим несколько звезд на сцену и позволим игроку собирать их. Для этого мы создадим новую группу под названием «звезды» и заполним ее.

Подготовка к работе

для работы над проектом вам понадобится настроенный phaserjs и установленный nodejs. Все не обходимые файлы доступны по ссылке.

В нашей функции create мы добавляем следующий код:

Разработка игры на phaserjs - 10: добавление звезд Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

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

Группы можно настраивать используя объекты конфигурации. В этом случае объект группы состоит из 3 частей:

1. Мы создаем группу объектов и помещаем ее в переменную stars;


2. Устанавливаем ключ текстуры в качестве изображения звезды. Это означает, что все дочерние элементы, добавленные в эту группу будут по умолчанию получать текстуру звезды;


3. Устанавливаем итератор равным 11. Поскольку он автоматически создает 1 дочерний элемент, повторение 11 раз означает, что в общей сложности мы получим 12 дочерних элементов, и это как раз то, что нам нужно для нашей игры.

Последняя часть - setXY - используется для определения позиции 12 дочерних элементов, которые создает группа. Каждый дочерний элемент будет размещен начиная с x: 12, y: 0 и с шагом x70. Это означает, что первый дочерний элемент будет расположен в 12 x 0, второй - в 70 пикселях от 82 x 0, третий - 152 x 0 и т. д. Значения 'step' - это действительно удобный способ разметки дочерних групп во время создания. Значение 70 выбрано, потому что это означает, что все 12 звезд будут идеально расположены на экране.

Следующий фрагмент кода выполняет обход всех элементов в группе и дает им случайное значение отказов Y в диапазоне от 0,4 до 0,8. Диапазон отскока находится между 0, отскока вообще нет, и 1, полный отскок. Поскольку все звезды появляются в точке y, гравитация будет тянуть их вниз, пока они не столкнутся с платформами или землей. Значение отскока означает, что они будут случайным образом возвращаться обратно до тех пор, пока, наконец, не успокоятся.

Если бы мы запустили код так, как сейчас, звезды упали бы сквозь землю игры и скрылись из виду. Чтобы остановить это, нам нужно проверить их столкновение с платформами. Мы можем использовать другой объект Collider для этого:

Разработка игры на phaserjs - 10: добавление звезд Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Помимо этого, мы также проверим, соприкасается ли игрок со звездой или нет:

Разработка игры на phaserjs - 10: добавление звезд Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Это говорит Phaserjs, что нужно проверить совпадение между игроком и любой звездой в группе звезд. Если они найдены, они передаются в функцию collectStar:

Разработка игры на phaserjs - 10: добавление звезд Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост

Проще говоря, у звезды отключено физическое тело, а ее родительский игровой объект сделан неактивным и невидимым, что убирает его с экрана.

Итог

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

Разработка игры на phaserjs - 10: добавление звезд Gamedev, Typescript, Javascript, HTML, Холст, Phaser, Длиннопост
Показать полностью 6
[моё] Gamedev Typescript Javascript HTML Холст Phaser Длиннопост
11
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии