Comments 13
А вот по исходному примеру:
Использование «хвоста» и «головы» по отдельности.
Возможно, это как раз и использовалось для того, чтобы не перерисовывать всю змею целиком, а только самый конец и голову?
Названия для направлений («up», «down», ...) вместо векторов ( (0, 1), (1, 0)… ).
Для меня лично понятнее направление вверх, вправо, влево, вниз, нежели непонятные координаты. (-1,0) — это влево или вниз, или вверх?
И я, если честно, не увидел каких-либо преимуществ от использования python вместо Android Studio/Java. Местами даже компактнее получилось бы и не пришлось бы GUI с нуля рисовать (или его тут и нету?).
Собственно, о том и речь, что я ничего не перерисовывал руками. Тут в принципе нет метода on_draw.
"Перерисовывать всю змею" это лишь двигать блоки. И то, я каждый шаг делаю количество операций, равное длине змеи. Шаг — 0.2 секунды, то есть при длине 10, я изменю пару чисел 50 раз в секунду, согласитесь, это несерьезная нагрузка. Автор прошлой статьи быть может перемещал только одну клетку, но для этого ему надо было найти ту самую клетку, и знать, куда ее переместить.
По поводу векторов — окей, именно понятней будут конечно слова. А номера клеток можно именовать "первая", "вторая" и так далее. Но мы нумеруем их чтобы работало для общего случая. То же самое с векторами, к примеру, мы можем изменить вектор на (0.5, 0.5), а вот название направления на "right-but-a-little-down" просто так поменять не получится.
Ну а насчет преимуществ — это просто более простой язык программирования для простой игры. Я бы не стал писать что-то сложное на kivy, я согласен.
И то, я каждый шаг делаю количество операций, равное длине змеи. Шаг — 0.2 секунды, то есть при длине 10, я изменю пару чисел 50 раз в секунду, согласитесь, это несерьезная нагрузка.
А саму змею при этом, конечно же, вообще никак рисовать не надо
Перемещал только одну клетку, но для этого ему надо было найти ту самую клетку
Я бы записывал ячейки головы и конца змеи в соответствующие переменные и ничего не пришлось бы искать.
А номера клеток можно именовать «первая», «вторая» и так далее.
Про такое я не говорил. То что ячейки действительно лучше нумеровать в виде координатной сетки — это понятно и так. Я про то, что наименовать движение вверх как «up» — вполне логичное действие, по моему мнению.
Я бы не стал писать что-то сложное на kivy, я согласен.
То есть фреймворк подходит только для написания простых вещей? Тогда не ясна мотивация его использования.
Я в самом начале написал, что я буду писать только простые вещи. Мотивация — писать простые вещи. То есть я не буду писать на нем сложные вещи. Вроде просто же объяснил. Просто не понимаю, зачем мне нанимать архитектора и закупать бетон и кирпичи для постройки однодневного шалаша. В этом мотивация.
Змея вне зависимости от меня рисуется [your_device_fps] раз в секунду и не мной.
Про координатную сетку не понял. Вы имеете ввиду хранить все поле в сетке и каждую перерисовку вручную рисовать черный или белый квадрат по каждой из 50х50 ячеек поля? Ну опять же, если я вас немного не так понял — ок, ваше решение — ваше решение. Думаю, часть людей согласится со мной, часть — с вами.
Я бы не стал писать что-то сложное на kivy, я согласен
Просто нужно, чтобы руки росли из того места:
https://www.youtube.com/watch?v=uDmUNSK52LI&t=
https://www.youtube.com/watch?v=7gTXreji0QY&t=
https://vimeo.com/297768834
https://vimeo.com/297757037
https://vimeo.com/238618045
https://vimeo.com/206290310
https://vimeo.com/170447721
А за такие статьи я бы расстреливал без суда и следствия!
Претензия не ясна.
Да куда уж тебе понять с такими-то бестолковыми выводами о Kivy!
Серьезно? Ты об этом? Отчего ж тогда ни в одном твоем видео нету ни сложных мультиплеерных 3d-игр, ни видеоредакторов? Программа-карточки понятное дело делается легко на любом фреймворке. Понятное дело, что можно добавить красивую текстуру — и вуаля! Ваш кликер превратился в "тяжелое приложение"! Я не говорил, что функционал Kivy ограничен змеей. Но однако ни поддержки новых фич вовремя, ни быстрой работы на реально сложных штуках я не получу. А если вдруг Kivy закроют, я останусь с… с ничем, потому что переписать python на java это не две минуты.
Отчего ж тогда ни в одном твоем видео нету ни сложных мультиплеерных 3d-игр, ни видеоредакторов?
У меня не было необходимости писать подобные приложения.
Ваш кликер превратился в "тяжелое приложение"!
О чем ты?
Но однако ни поддержки новых фич вовремя, ни быстрой работы на реально сложных штуках я не получу
Руки из задницы, порою, полезно доставать.
А если вдруг Kivy закроют, я останусь с… с ничем
А если вдруг завтра война?
Понятное дело, что можно добавить красивую текстуру — и вуаля!
Видимо, ссылки, которые я дал — просто красивая текстура… Что ты употребляешь?
Руки из задницы, порою, полезно доставать.
Ну я посмотрю, как ты будешь лапками писать DK для какой-нибудь новой фичи для Kivy на один месяц, потому что тебе нужно срочно выпустить релиз для твоих приложений, а Kivy не успело доставить поддержку.
Остальные пункты обсуждать смысла нет. Сколько проектов позакрывалось, и так как питон в принципе совершенно не связан с Java, Kivy=костыль. Можешь конечно не согласиться… Но это абсолютно твое мнение.
Можно сделать даже во все стороны, т. е. куда мы кликнули на экран — туда она и ползет. Причем это несложно делается, надо лишь поправить векторы передвижения, что-то типа (sin(a), cos(a)) (вместо четырех заданных) и рассчитать угол. Надеюсь, желающему сделать это будет просто, а если что, могу помочь.
Написание змейки для Android на Kivy, Python