Соединяем страницы вместе

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

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

Материалы к уроку можно скачать тут:

Цель этого урока: добавить новые HTML-страницы и настроить переходы между ними — построить структуру квеста.

Что ты изучишь: создание нескольких HTML-страниц, работу с гиперссылками, перенос CSS в отдельный файл, повторное использование стилей.

На выходе: простая, но рабочая игровая навигация с возможностью переходов между сценами.

Линкуем страницы друг с другом

Представь: игрок стоит перед выбором. Войти в сеть? Или срочно выдернуть шнур и исчезнуть?

Создай в папке проекта две новые страницы:

  • login.html
  • disconnect.html

Теперь добавим на главную (index.html) ссылки на эти сцены. Вот как это может выглядеть:

<a href='login.html'>Войти в систему и прочитать сообщение</a>
<a href='disconnect.html'>Срочно выключить питание и исчезнуть</a>

На этом этапе страницы ещё пусты. Заполним их содержимым.

Для страницы login.html:

<html lang="ru">
<head>
<meta charset="UTF-8">
</head>
<body>
<div class="cyberpunk">
<h1>Вход в сеть</h1>
<div>
<p>
Ты зашел в сеть.
</p>
</div>
</div>
</body>
</html>

Для файла disconnect.html будет такое содержимое:

<html lang="ru">
<head>
<meta charset="UTF-8">
</head>
<body>
<div class="cyberpunk">
<h1>Отключение от Сети</h1>
<div>
<p>
Соединение с сервером потеряно.
</p>
</div>
</div>
</body>
</html>

Теперь, если ты сохранишь файлы и откроешь index.html в браузере, ссылки будут работать — игрок сможет выбирать путь.

Но… пока что стили применяются только на главной странице. Давай это исправим и сделаем внешний вид единым для всех сцен.

Общие стили для проекта

До этого момента мы писали CSS прямо внутри тега <style> в index.html. Это удобно для начала, но...

Представь, что у тебя в игре десятки поворотов сюжета, и каждый — на своей странице. А теперь представь, что тебе нужно поменять цвет фона… на всех этих страницах. Ручками.

Нет-нет, так не пойдёт.

Лучше решение — вынести стили в отдельный CSS-файл и подключить его ко всем страницам.

Шаг 1. Создаём файл style.css

В корне проекта создай файл с названием: style.css

Скопируй туда всё содержимое тега <style> из index.html. А сам <style>удаляй, он уже не нужен.

Шаг 2. Подключаем стили ко всем HTML-страницам

Теперь нужно сказать каждой странице:

"Эй, вот тут лежат стили — пользуйся ими!"

В теге <head> добавь строку подключения:

`<link rel="stylesheet" href="`;style.css">

Итоговый head будет выглядеть, например, так:

<head>
<!-- Тут могут быть другие теги для head -->
<link rel="stylesheet" href="style.css">
<!-- Тут могут быть другие теги для head -->
</head>

Изменяем фон для разных сцен

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

Шаг 1. Добавляем id тегу <body>

Открой каждый из HTML-файлов и добавь в тег <body> уникальный id:

  • Для index.html:

<body id="index">

  • Для login.html:

<body id="login">

  • Для disconnect.html:

<body id="disconnect">

Шаг 2. Обновляем стили

Теперь перенесём фоновые изображения в CSS, используя селекторы по этим id. Все остальные стили для body останутся без изменений.

Пример итогового CSS:

#index { background-image: url('img/cyberpunk-room.png'); /\* путь к изображению \*/ } #login { background-image: url('img/login.png'); /\* путь к изображению \*/ } #disconnect { background-image: url('img/disconnect.png'); /\* путь к изображению \*/ } body { background-size: cover; /\* растягивает фон по ширине и высоте \*/ background-position: center; /\* центрирует изображение \*/ background-repeat: no-repeat; /\* без повторений \*/ height: 100vh; /\* высота body — весь экран \*/ }

Теперь каждая сцена будет иметь свой уникальный фон, а стили останутся чистыми и удобными для управления. Отличная работа — игра становится всё атмосфернее.

Домашнее задание: назови свои сцены

Сейчас названия вкладок в браузере выглядят как index.html, login.html и т.п. Давай это исправим. В каждый HTML-файл в раздел <head>...</head> добавь тег <title>, чтобы вкладка браузера называлась красиво — по названию сцены.

Например, для index.html тайтл будет выглядеть вот так:

<title>Глитч в Сети</title>

Аналогично добавь заголовки в другие страницы, чтобы они отражали суть сцены. Сделай это самостоятельно — у тебя точно получится!

Заключение

Отлично! Теперь твоя игра состоит уже из трех веток. Это можно строить и расширять дальше. В следующем уроке мы добавим крутых визуальных эффектов нашей сцене и анимации.

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

Книга по JavaScript для начинающих

«JavaScript с нуля: учимся программировать, создавая игры»

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

Читать книгу на ЛитРес →