HertZex

Созданные ответы форума

Просмотр 6 сообщений - с 1 по 6 (из 6 всего)
  • Автор
    Сообщения
  • в ответ на: Текст над врагами #3816
    HertZex
    HertZex
    Участник
    Сообщений:6

    Зарегистрирован:
    22.12.2015

    Репутация:6

    Можно в класс Enemy добавить поле с текстом и отрисовывать этот текст в цикле отрисовки врагов

    в ответ на: Как сделать сохранение в игре #3634
    HertZex
    HertZex
    Участник
    Сообщений:6

    Зарегистрирован:
    22.12.2015

    Репутация:6

    Организовать запись в файл всех параметров при выходе, и считывание их при запуске

    HertZex
    HertZex
    Участник
    Сообщений:6

    Зарегистрирован:
    22.12.2015

    Репутация:6

    Постараюсь помочь теоретически.
    Итак. Попробуем нарисовать двумерную радугу. За основу возьмем окружность (для простоты).
    Общее уравнение окружности выглядит так: (x-x0)^2*(y-y0)^2=r*r, где (x0,y0) – центр окружности, r – радиус. Но нам нужна не только окружность, но и внутренняя часть круга Чтобы нарисовать круг, пройдем в циклах по квадрату размером 2r на 2r и немного изменим формулу:
    (x-x0)^2*(y-y0)^2<r*r

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

    В принципе радуга готова. Вам осталось подстроить под свою реализацию.
    Конечно не совсем то, что Вы просили, но все же.

    Вложения:
    You must be logged in to view attached files.
    HertZex
    HertZex
    Участник
    Сообщений:6

    Зарегистрирован:
    22.12.2015

    Репутация:6

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

    HertZex
    HertZex
    Участник
    Сообщений:6

    Зарегистрирован:
    22.12.2015

    Репутация:6

    Как пример
    if (enemy.rect.intersects(player.rect)){
    enemy.life=false;
    }

    if(enemy.life) window.draw(enemy.sprite);

    HertZex
    HertZex
    Участник
    Сообщений:6

    Зарегистрирован:
    22.12.2015

    Репутация:6

    Наверное уже не актуально, но быть может кому-то пригодится.

    Первое что пришло в голову – скорость разделить на массу.
    player.x += (0.1/M)*time*(pos.x – player.x) / distance;
    В таком случае скорость не станет отрицательной.
    При желании большей реалистичности, можно заглянуть в учебник по физике)

Просмотр 6 сообщений - с 1 по 6 (из 6 всего)