Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Игра очень простая: один экран, на котором отрисовываются шарики, которые нужно перемещать.

При нажатии кнопки "Start" появляется определенное (в настройках) кол-во одноцветных (красные) шариков (диаметр и кол-во настраивается в настройках), они располагаются в центре сцены по определенному алгоритму (простому: каждый шарик выбирает себе рандомно два других и занимает позицию на середине расстояния между ними 1/2 * l и так происходит с каждым, пока все шарики не встанут на свои позиции, это процесс рекурсивный, т.к. пока все "не устаканятся" они будут двигаться, т.к. изменение позиции любого шарика вызывает изменение позиции "следящего" связанного с ним шарика и ему приходится смещаться чтобы удовлетворить основному правилу расположения на середине расстояния между 2мя шариками, с которыми он связан (при распределении в начале рандомно, но навсегда).

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

Задача перемещая по одному шарику (тачем или удерживая левую кнопку мыши) выбрав один и перемещая его в другое положение (остальные пока не отпустить его не двигаются) и отпустив (снять палец с тача или кнопку мыши) все остальные опять начинают занимать правильные позиции по правилу находится на равном расстоянии от связанных с ним двух других, начиная с тех что были связаны с тем шариком, который мы только что переместили и по цепочке все остальные опять начинают перемещаться, что тоже может вызвать перемещение и смещенного нами шарика, но цель в конечном итоге такими изменениями привести синий шарик (который мы выбрали в начале) в синюю зону (окружность), причем его перемещать непосредственно (кликом, тачем) - НЕЛЬЗЯ, только через перемещение остальных шариков. Как только он (выбранный, синий) касается ее (целевой зоны) - игра останавливается, показываем Alert "You win" и можно заново нажать в настройках "Start"

При загрузке поле пустое, есть зона с  настройками (см. скриншоты).

В настройках есть следующие поля:

Count of balls: (3-1000)

Ball's diameter: (in pixels)

Target zone diameter: (in pixels)

Max distanse from "Partners": (in pixels)

и кнопка "Start"

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

Размер сцены все свободное место в окне за исключением вертикальной части с Настройками. Оно масштабируется если менять размер окна, т.е. сдвигается в свободную зону (где нет шариков) и расстояния между шариками (всеми пропорционально сокращается если они ВСЕ не помещаются на экран (есть минимальное расстояние между шариками - их 2*diameter + 1 diameter) если окно сжалось что уже нельзя масштабировать, то его края просто будут перекрывать и не будет видно шариков, которые вне этой границы.

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

Браузеры которые должны поддерживаться это Safari, Chrome, Firefox на десктопах и Android/iOS браузеры (последние мажорные версии). Плюс поддержка тачскрина как мышки.

Прикрепил скетчи (извиняюсь, там достаточно коряво нарисовано, но может помочь понять динамику)

Если будут вопросы - пишите.

6 лет назад
michael_r
44 годаУкраина
6 лет в сервисе
Был
6 лет назад
  • Похожие заказы
  • Предоставьте, пожалуйста список всех необходимых участников проекта по разработке кроссплатформенной 2D MMORPG для android / ios / web Оплата непосредственно за список и за краткие описания должностных инструкций. Заявки принимаю только от проект менеджеров или разработчиков участвовавших ...

    Закрыт
    6 лет назад
  • Ищу разработчиков для реализации моей идеи.  Представьте, что вам нужно сделать игру по типу Rimworld (https://store.steampowered.com/app/294100/RimWorld/) Максимально упрощенный ее вариант:  - несколько поселенцев появляются на ограниченном участке карты  - при этом участок карты является частью большого мира  - игрок может ...

    Закрыт
    6 лет назад
  • Задача 1. Скорректировать и создать сборку на основе ТЗ. 2. Установить сборку на хостинг RAMShard, сделать базовую настройку сервера и прав. От фрилансера требуются: опыт работы с CP RAMShard. Хороший уровень знаний Minecraft server, на уровне создания сборок. ТЗ: По ...

    Разработка игрнет заявок
    Закрыт
    6 лет назад
  • Приложение состоит из трех экранов (см. вложение). Первый экран: три кнопки, включить выключить звук, начать игру, результаты. Второй экран: Игра простая викторина, в которой нужно отгадать что изображено на картинке. Ввод слова происходит через выбор букв из представленных на ...

    Разработка игр1 исполнитель
    Завершен
    5 лет назад
  • Нужно создать или найти простую и увлекательную мини игру для сайта с призами за выиграш, лучше вообще дабы она была между участниками сайта. Игра не должна грузить сайт и работать как на мобильном так и ...

    Закрыт
    6 лет назад
  • Необходимы навыки UE4 разработчика. Доработка проекта под VR. Имеется автомобиль и меню для взаимодействия с ним. При помощи меню можно менять некоторые элементы экстерьера, включать свет фар. Задачи: 1) Подвязать меню под новую модель автомобиля.  2) Подвязать функционал существующего ...

    Закрыт
    6 лет назад