• Делаем Space Invaders на Love2d и Lua
    0

    Вцелом вроде норм. Есть, конечно, что доделывать, но начало положено.


    Из "отзывов, комментариев, подсказок" есть следующее:


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


    2) Думаю, лучше делать какую-нибудь проверку на версию интерпретатора.
    Вначале попытался запустить на love 0.9 (дебиановские репы небыстро обновляются).
    Не работала стрельба.
    Чинится дополнительной проверкой в love.keyreleased: if key == 'space' or key == ' ' then .....
    Также в love 0.9 пока пытался понять, как стрелять, нажал на 's'. Все упало с ошибкой:


    Error: stats.lua:12: attempt to call field 'getStats' (a nil value)
    stack traceback:
        stats.lua:12: in function 'draw_debug'
        stats.lua:58: in function 'draw'
        main.lua:82: in function 'draw'
        [string "boot.lua"]:437: in function <[string "boot.lua"]:399>
        [C]: in function 'xpcall'

    В love-0.10.2 и стрельба и статистика вроде работают нормально.


    3) В обучалке про арканойд, на которую есть ссылка, столкновения сделаны далеко не идеально.
    Проверка столкновений выполняется довольно часто, поэтому все лишние действия в ней — арифметические, создание промежуточных таблиц — лучше свести к минимуму. См. обсуждение.