Урок 24 ДЗ (1-4)

В этой теме 2 ответа, 2 участника, последнее обновление  Sinsinmin 8 года/лет, 2 мес. назад.

Просмотр 3 сообщений - с 1 по 3 (из 3 всего)
  • Автор
    Сообщения
  • #3044
    +2

    Sinsinmin
    Участник
    Сообщений:24

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

    Репутация:16

    1)

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

    2)

    Пересечение игрока и врага происходит когда пересечение уже произошло, то есть не когда линии p.y = enemy.y, а чуть позже. Когда p.y > enemy.y на p.dy. Ведь за один такт p проходит по Y растояние равно его dy.

    Если бы такого не было то можно было написать

    Но…есть ещё один момент. Что отрисовка игрока ещё не произошла. То есть нижний Y игрока уже пересёк верхний Y врага, а на экране хоть это и не видно игрок ещё чуть выше и пересечение как такого ещё нет. Поэтому в логике алгоритма, пересечение происходит чуть раньше на ~dy. А ежели копнуть глубже, то расстояние пройденное игроком по Y при пересечении <=dy. То есть какую то часть игрок пройдёт до пересечения, и какую то часть после пересечения. Соответственно разница будет равна тому расстоянию которое пройдено после пересечения верхнего Y врага. А именно p.dy-(enemy.y-p.y) за один такт до пересечения.

    Но так как это всё вычислять долго))) и глупо))

    То можно просто из верхнего Y игрока вычесть p.dy. Он у нас максимум равен 0.6. И уменьшается с каждым тактом. Поэтому можно смело ставить 0.61. Но я делал условие до всех этих размышлений, поэтому поставил 1. Так как посчитал что 1 пиксель не будет виден в столкновении на экране. )))

     

    3)

    Если позиция игрока правый край карты, то враг появляется в левом краю карты и наоборот.

     

    4)

    Не совсем я понял как работает функция rand(), но насколько хватило моего английского))

    rand() % 100 – случайное число от 0 до 100-1, то есть от 0 до 99.

    Почему то вначале числа всегда одинаковые, но каждый последующий проход даёт новое случайное число.

    Наверное нужно где то рандомайз прописать)) но это не знаю уж

     

    #3061
    Павел Букреев
    Павел Букреев
    Хранитель
    Сообщений:582

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

    Репутация:106

    привет, молодец, что выполнил:) держи 5 :)

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

    #3062
    +1

    Sinsinmin
    Участник
    Сообщений:24

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

    Репутация:16

    ДЗ после уроков позволяют попрактиковаться самому, получить ошибки и опыт. Поразмыслить самому.

    Поэтому ДЗ после уроков очень хороши. Мне пришлось искать дополнительную инфу по SFML.

     

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

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