• Почему попытка обратиться к только что созданной таблице вызывает ошибку "no such table"?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    base.execute(f'CREATE TABLE IF NOT EXISTS waring_{id}(user_id INT, count INT)')
    cur.execute(f'INSERT INTO warning_{id} VALUES (?, ?)', (message.author.id, 1))
    Ответ написан
    Комментировать
  • Как добиться плавности движения змейки?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Придётся довольно глубоко менять вашу "Змейку", чтобы она плавно двигалась.
    Для этого ваш тик перемещения нужно разбить на число подтиков, соответствующих числу пикселей вашей игровой ячейки. В вашем случае это 20.
    То есть ваша змея должна отрисовываться в 20 раз чаще. При этом тело змеи будет по-прежнему дискретным, просто добавится ещё один вложенный счетчик.
    Внешний счетчик как и сейчас будет считать шаги змеи, а внутренний будет считать шаги анимации перемещения внутри одного шага змеи. На протяжении анимации перемещения каждый сегмент змеи попиксельно перемещается от своих координат на предыдущем шаге к своим координатам на следующем. Ничего сложного.

    Но ваш код уже плохо читается. Такой код называют спагетти-кодом.
    Можно вынести структуру данных состояния змеи в отдельный класс и отрисовку реализовать отдельным методом, куда снаружи передавать шаг анимации.
    Тогда у вас будет разделено логическое перемещение змеи по сегментом, и чисто декоративное по пикселям.
    Ответ написан
    Комментировать