Мне 13 лет я только 1 год учу питон, в тригонометри них не понимаю, но твои видео не просто розжыгают костёр они запускают атомной реактор моего интереса в изучении кодинга,
Огромное спасибо за спрайты) Остаётся коллизия, пик апы оружий, аптечки. Но всё это относится к теме коллизии спрайта. Правильно отметил чел mihlandota, что каждый спрайт будет иметь различные свойства. По сути пик ап - это спрайт, у которого проверяется коллизия с игроком, и если игрок Костромы спрайта, спрайт даёт команду прибавить жизни, оружия и т.п. игроку, а сам пик ап уничтожится.
Есть баг: игра тормозит на секунду, если вплотную подойти к спрайту. У меня спрайт в виде лампы на потолке из Wolfenstein, и если через неё пройти иногда виснет. Хорошо бы в следующих уроках сделать свойства к каждому спрайту, будет ли он проходимым. Например, бочка не проходимая, а лампа проходимая. Добавлено: Тут стопудово нужны дополнительные свойства, такие как проходимое/не проходимое, тип спрайта: пик ап, декорация, враг. Но думаю для начала надо сделать со стенами коллизию.
чтобы не было тормозов, в файле sprite_objects для вычисления proj_height используйте это: proj_height = min(int(PROJ_COEFF / distance_to_sprite * self.scale), 2 * HEIGHT)
я наблюдал все четыри стадии твоего канала 1).змейка,2).как ты хвастаешься 3д игрой,3).как ты делаешь 3д фигуры и 4) как сделать 3д игру на питоне с нуля
Единственный спрайт, с которым мне комфортно работать, это с газированным напитком, а вычислять арктангенсы, чтобы разместить картинки НПС в игре, это задача не для слабонервных 🍻
Спасибо оргромное за новый ролик!!! Сказать, что это круто - ничего не сказать! Во время просмотра часто чуствовал себя идиотом... Но нет ничего непостижимого, а ваши ролики дико мотивируют! Заметил такой эффект: если подойти к стене совсем-совсем вплотную, то текстура расплывается вширину и в итоге проходишь сквозь стену. На текущем этапе разработки так должно быть или такое только у меня наблюдается? А если такой финт провернуть с наружней стеной, то за пределы карты не уходишь, но программа крашится с такой ошибкой: Traceback (most recent call last): File "main.py", line 26, in walls = ray_casting(player, drawing.textures) File "d:\Python\projects\3D-Python-game-Raycast-master\part4
ay_casting.py", line 42, in ray_casting depth, offset, texture = (depth_v, yv, texture_v) if depth_v < depth_h else (depth_h, xh, texture_h) UnboundLocalError: local variable 'texture_h' referenced before assignment Кстати, проходить сквозь спрайт devil также, как сквозь стены не получается.
у меня такая проблема 'barrel': pygame.image.load('image\Sarrel.png').convert_alpha() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pygame.error: No video mode has been set как ее решить?
настолько круто, что можно усраться от восхищения!!! это просто полный армогидец восторга от контента!!! создайте канал в телеге, если не для себя так для нас ))
Что делать, если вылезает ошибка при нестатичном спрайте sprite = pg.transform.scale(self.object, (self.object, (proj_height, proj_height))) TypeError:argument 1 must be pygame.Surface, not list
Я нашел 2 бага, из-за первого падает игра. "если войти в нпс то игра начинает сильно проседать и игра падает". Из-за второго пол крашнет игру "если создать и войти в просторную комнату то на полу появляется чёрное пятно(на старой версии) , а новой игра крашится" (перезалив)
Глядя на то, как шарит автор - в голову лезет мысль, каким образом он это всё выучил или понял или вообще, как нужно обучаться чтобы так шарить? Потому что банальное повторение и долбёжка из книги не приближает меня к реальным знаниям и умениям=( помогите кто может
Если углы которые применяются в высислениях целые - можно зарание посчитать таблицы значений синусов косинусов и так далее и потом подставляль готовое значение из таблицы значений по идее это сильно ускорит вычисления
Вот и я, например, так жёстко срал. Показал туалетной двери свой оскал. Я Пробил своё дно. И полезло оно. Славное, сильное говно. Заплакал дракон. От разжигающей вони. В слезах утопил он дерьма последние стоны. И каждый, кто срал Так хотя бы разок. Любого говна уважает кусок. Испустил мой жопень последние томные вздохи. Разверзлись, как облака, мои булки и ноги. Дерьму потоки открыты теперь. И всё время, что срал, смотрел я на дверь. Тернистые густы лились, словно кровь. Дерьмища потоки и кала струи покрыли толчок, словно капли росы. На заре, когда солнце восходит на небо. Я сру и дристаю. В пределах туалета. :D
Спасибо за новый урок, бро! Надо бы карту побольше сделать, я пробовал добавить больше символов в массив с картой, и больше строк, но когда я доходил до определённого места, игра крашалась. Не знаешь, как увеличить карту и что бы она не крашалась?
Кароче вроде бы у меня есть очень интересный совет , добавь величину поворота камеры вдоль продольной оси на каждом шаге(en.m.wikipedia.org/wiki/Aircraft_principal_axes#Longitudinal_axis_(roll) Здесь много лишних букв , но ща я сам объясню зачем это нужно)Если в кратце , то это нужно для того чтобы игрок мог смотреть на потолок чего не было например в том же думе.
Здравсвуйте, делал игру по вашим туториалам, когда дошел до добавления текстур, столкнулся с ошибкой ValueError: subsurface rectangle outside surface area, думал что-то не правильно написал, но позже все перепроверил и все работало, не понимаю из-за чего возникает ошибка, можете как-то с этим помочь? Строки с ошибки: wall_column = textures[texture].subsurface(offset * TEXTURE_SCALE, 0, TEXTURE_SCALE, TEXTURE_HEIGHT) ray_casting(self.sc, player_pos, player_angle, self.textures) drawing.world(player.pos, player.angle) Заранее спасибо
Есть идея, как сделать игру полноценной игрой, т.е. чтобы там можно было выиграть и проиграть: чтобы выиграть, нужно дойти, до определённого места, чтобы проиграть, нужно, чтобы ты увидел какого-то определённого спрайта и этот спрайт бы дошел до тебя раньше, чем ты выиграешь.
не могу понять почему мой спрайт вращается вместе со мной, при обходе спрайта он поворачивается лицевой стороной ко мне из-за этого достаточно сложно осмотреть его полностью
учился самостоятельно дома, чтобы нормально освоить язык наверное ушло полгода, в день по 1-2 часа хотя бы надо заниматься эти полгода, много практиковался в решении задач - проект Эйлера, codewars, codeforces и т.п.
у меня выдаёт три ошибки!!! in module drawing.world[walls+[obj.objectlocate(player,walls) for obj in sprites.list_of_object ошибка: [obj.objectlocate(player,walls)
@@StandaloneCoder да, я находил довольно большие паки. но вот именно таких, как у тебя, не нашёл. пользуясь случаем, скажу тебе огромное спасибо за эти видео. благодаря тебе, я смог написать похожий движок на Си.
Мне 13 лет я только 1 год учу питон, в тригонометри них не понимаю, но твои видео не просто розжыгают костёр они запускают атомной реактор моего интереса в изучении кодинга,
БРАТАН КРАСАВА! Я ТАК ЗАРПЛАТЫ НЕ ЖДУ, КАК ТВОИХ РОЛИКОВ!!
Огромное спасибо за спрайты)
Остаётся коллизия, пик апы оружий, аптечки. Но всё это относится к теме коллизии спрайта. Правильно отметил чел mihlandota, что каждый спрайт будет иметь различные свойства. По сути пик ап - это спрайт, у которого проверяется коллизия с игроком, и если игрок Костромы спрайта, спрайт даёт команду прибавить жизни, оружия и т.п. игроку, а сам пик ап уничтожится.
Игрок костромы спрайта😆
Есть баг: игра тормозит на секунду, если вплотную подойти к спрайту. У меня спрайт в виде лампы на потолке из Wolfenstein, и если через неё пройти иногда виснет. Хорошо бы в следующих уроках сделать свойства к каждому спрайту, будет ли он проходимым. Например, бочка не проходимая, а лампа проходимая.
Добавлено:
Тут стопудово нужны дополнительные свойства, такие как проходимое/не проходимое, тип спрайта: пик ап, декорация, враг. Но думаю для начала надо сделать со стенами коллизию.
чтобы не было тормозов, в файле sprite_objects для вычисления proj_height используйте это:
proj_height = min(int(PROJ_COEFF / distance_to_sprite * self.scale), 2 * HEIGHT)
Standalone Coder Спасибо огромное!
@@StandaloneCoder выдает ошибку
Где можно достать такой же крутой мозг как у автора, только чтобы не слишком дорого?
я наблюдал все четыри стадии твоего канала
1).змейка,2).как ты хвастаешься 3д игрой,3).как ты делаешь 3д фигуры и 4) как сделать 3д игру на питоне с нуля
Очень круто! Продолжай в том же духе)) Ждём от тебя дум)
Единственный спрайт, с которым мне комфортно работать, это с газированным напитком, а вычислять арктангенсы, чтобы разместить картинки НПС в игре, это задача не для слабонервных 🍻
Очень круто! Надеюсь выйдет ещё одна часть
Нечего не понял, но было интересно!!!
Скоро тысяча подписчиков будет)
Что делать если в файле drawings в линии 26 пишет "ValueError: too many values to unpack"?
там было устранение бага из прошлой части спс только я хз в чем тут было дело
Спасибо оргромное за новый ролик!!! Сказать, что это круто - ничего не сказать! Во время просмотра часто чуствовал себя идиотом... Но нет ничего непостижимого, а ваши ролики дико мотивируют! Заметил такой эффект: если подойти к стене совсем-совсем вплотную, то текстура расплывается вширину и в итоге проходишь сквозь стену. На текущем этапе разработки так должно быть или такое только у меня наблюдается? А если такой финт провернуть с наружней стеной, то за пределы карты не уходишь, но программа крашится с такой ошибкой:
Traceback (most recent call last):
File "main.py", line 26, in
walls = ray_casting(player, drawing.textures)
File "d:\Python\projects\3D-Python-game-Raycast-master\part4
ay_casting.py", line 42, in ray_casting
depth, offset, texture = (depth_v, yv, texture_v) if depth_v < depth_h else
(depth_h, xh, texture_h)
UnboundLocalError: local variable 'texture_h' referenced before assignment
Кстати, проходить сквозь спрайт devil также, как сквозь стены не получается.
Благодарю за отзыв. В следующем ролике избавимся от этих недостатков
Так мы ещё коллизию не создали. Поэтому и расплывается и сквозь стену проходит
про коллизию ролик обязательно будет, сегодня только что тестировал её
@@StandaloneCoder подскажите, а возможно ли как-то применить multiprocessing к ray_casting() или бесполезно?
эффект есть, но довольно слабый, прибавка 5-10 кадров максимум
у меня такая проблема 'barrel': pygame.image.load('image\Sarrel.png').convert_alpha()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pygame.error: No video mode has been set
как ее решить?
Очень круто, спасибо большое!
настолько круто, что можно усраться от восхищения!!! это просто полный армогидец восторга от контента!!! создайте канал в телеге, если не для себя так для нас ))
картинка спрайта отдельный вид искуства
TypeError: argument 1 must be pygame.Surface, not list выходит и весь даже скопировал уже весь код, печалька
У меня тоже, на какой платформе кодите?
@@АлександрФевралев-в9п visual studio code
@@shirokagaricu1919 у меня тоже там выскакивает, а в пайшарме все хорошо
@@АлександрФевралев-в9п надо как то на него переходит, но лень) привык к vsc
пасиб за формулы по спрайтам
Что делать, если вылезает ошибка при нестатичном спрайте
sprite = pg.transform.scale(self.object, (self.object, (proj_height, proj_height)))
TypeError:argument 1 must be pygame.Surface, not list
Это в координатах дело . SpriteObject(self.sprite_types['devil], False, (7.1, 2.1), -0.2, 0.7) поставь такие как у меня и оно заработает
@@snou.888 спасибо тебе добрый человек, два дня думал что не так:)
У меня проблема, куда-то исчезла миникарта, что делать?
Спасибо огромное.Я всегда любил программировать.Я обожаю тебя не только как программиста,но и как человека который любит мемасики.
Что делать, у меня текстуры и спрайты с вырезанным фоном, а в игре они вырезанные места черные, хотя должны быть прозрачными
Опа, спрайты. Надо бы реализовать двери, и переход на следующую карту))))
Урааааааааааааааааааааааааааааа!
Очень круто!
Я тоже пытаюсь сделать игру но сейчас у меня максимум в cmd получается... Что симулятор жизни. :)
Есть ли какая-то достойная и интересная литература по тригонометри господа:)
Кто там алгебру и геометрию прогуливал? )
кто поможет со спрайтом у которого минимум 8 сторон??
А этот движок может в динамическое освещение?
Можешь добавить поддержку .obj
Добавь зеркальные отражения!
Лайк и подписка!
Oo шутер)
Ыыы
А чего ты говоришь не своим голосом? А видео классное, лайк!!!
Никогда не думал, что профильная математика пригодится...
Я нашел 2 бага, из-за первого падает игра. "если войти в нпс то игра начинает сильно проседать и игра падает". Из-за второго пол крашнет игру "если создать и войти в просторную комнату то на полу появляется чёрное пятно(на старой версии) , а новой игра крашится" (перезалив)
напиши на почту поподробнее
@@StandaloneCoder а какая у тебя почта?
на главной странице канала, в разделе - о канале
@@StandaloneCoder короч вот: drive.google.com/file/d/1-O8ixQ6JDBfracRE4kjO8Wh-fB3MxPs8/view?usp=sharing и вот: drive.google.com/file/d/1ZWMfDakiXZm7m7j0fORBR7IbZwRPyZez/view?usp=sharing
хочу продолжение сериала! =)
🥲
большое спасибо! всё начало получаться, но потом почему то пропала миникарта после проделанных изменений
Бро спасибо, мне 11 лет как пк подключу сразу попытаюсь создать игру)
Это серьезный прорыв. Пора наделить «красавца» способностью двигаться, а себе заспаунить пистолет!
Глядя на то, как шарит автор - в голову лезет мысль, каким образом он это всё выучил или понял или вообще, как нужно обучаться чтобы так шарить? Потому что банальное повторение и долбёжка из книги не приближает меня к реальным знаниям и умениям=( помогите кто может
Если углы которые применяются в высислениях целые - можно зарание посчитать таблицы значений синусов косинусов и так далее и потом подставляль готовое значение из таблицы значений по идее это сильно ускорит вычисления
Оооооо спасибо за новую серию!!
Что если не париться так сильно со спрайтами и просто рисовать готовое изображение рассчитывая его размер?
2 пи = тау
Большое спасибо! К этому голосу минуса кровостока фоном зайдут на ура))
Интересно почему у меня в этой игре 5 фпс?
я когда запускаю, то нет не спрайтов не стен
Вот и я, например, так жёстко срал.
Показал туалетной двери свой оскал.
Я Пробил своё дно. И полезло оно.
Славное, сильное говно.
Заплакал дракон. От разжигающей вони.
В слезах утопил он дерьма последние стоны.
И каждый, кто срал Так хотя бы разок.
Любого говна уважает кусок.
Испустил мой жопень последние томные вздохи.
Разверзлись, как облака, мои булки и ноги.
Дерьму потоки открыты теперь.
И всё время, что срал, смотрел я на дверь.
Тернистые густы лились, словно кровь.
Дерьмища потоки и кала струи покрыли толчок, словно капли росы.
На заре, когда солнце восходит на небо.
Я сру и дристаю. В пределах туалета.
:D
не знаю нужно здесь это но в pygame есть класс sprite и group
Можешь пожалуйста продолжать
Есть идеи как добавить спрайты на карту?
И реально ли сделать локации выше/ниже как в думе 2
elisey bogdanov Реально
Где такой голос взять?
Максим бот
А где ты брал спрайты ?
я уже не помню, но погугли "спрайты doom"
чел , а как добавить хп, аптечку там патроны?
По идей под этом голосом стоит директор компании Тенсент
наконецто начал про спрайты говорить
Спасибо за новый урок, бро! Надо бы карту побольше сделать, я пробовал добавить больше символов в массив с картой, и больше строк, но когда я доходил до определённого места, игра крашалась. Не знаешь, как увеличить карту и что бы она не крашалась?
чтобы игра не падала, периметр карты должен быть замкнут, то есть стены расставляйте по всем границам
Standalone Coder У меня всё замкнуто, но всё равно в один момент происходит краш.
@@blockedchannel7032 вышли файлы игры мне на почту
попробуй в самом начале ray_casting функции объявить:
def ray_casting(player, textures):
texture_v, texture_h = '1', '1'
@@StandaloneCoder у меня этот баг был. Если переменная с разрешением текстур больше самих текстур, то произойдёт ошибка.
А где ты взял спрайты?
В описании есть ссылка на код и все изображения
Что делать если мини карта пропала ?
очень крутой урок спасибо тебе большое
Я конечно могу ошибаться но вы же вроде не используете мощности gpu или нет?
верно, только cpu
pezdato!!! Давай дальше!!!
Кароче вроде бы у меня есть очень интересный совет , добавь величину поворота камеры вдоль продольной оси на каждом шаге(en.m.wikipedia.org/wiki/Aircraft_principal_axes#Longitudinal_axis_(roll) Здесь много лишних букв , но ща я сам объясню зачем это нужно)Если в кратце , то это нужно для того чтобы игрок мог смотреть на потолок чего не было например в том же думе.
благодарю, поизучаю на досуге
Бром спс как насчёт того чтобы добавить спрайтам ИИ
Добавь в игру музыку
Чекни почту, я тебе два бага прислал.
ответил по почте
🗽
Здравсвуйте, делал игру по вашим туториалам, когда дошел до добавления текстур, столкнулся с ошибкой ValueError: subsurface rectangle outside surface area, думал что-то не правильно написал, но позже все перепроверил и все работало, не понимаю из-за чего возникает ошибка, можете как-то с этим помочь? Строки с ошибки:
wall_column = textures[texture].subsurface(offset * TEXTURE_SCALE, 0, TEXTURE_SCALE, TEXTURE_HEIGHT)
ray_casting(self.sc, player_pos, player_angle, self.textures)
drawing.world(player.pos, player.angle)
Заранее спасибо
Мда, ошибка была из-за того, что текстура в формате jpg
ошибка говорит о том, что размер подповерхности больше чем разрешение текстуры. Если все как в уроке, то надо брать текстуру разрешением 1200 х 1200
2:36 ну хз, bmp Ван лав
Всьо круто, НОООООООО говори своим голосом, бо етот режет уши
Есть идея, как сделать игру полноценной игрой, т.е. чтобы там можно было выиграть и проиграть: чтобы выиграть, нужно дойти, до определённого места, чтобы проиграть, нужно, чтобы ты увидел какого-то определённого спрайта и этот спрайт бы дошел до тебя раньше, чем ты выиграешь.
Я думаю лучше сделать обычных врагов, которых надо будет уничтожить
@@StandaloneCoder Но тогда надо по больше запариться)
не могу понять почему мой спрайт вращается вместе со мной, при обходе спрайта он поворачивается лицевой стороной ко мне из-за этого достаточно сложно осмотреть его полностью
Сколько учился программированию и где
учился самостоятельно дома, чтобы нормально освоить язык наверное ушло полгода, в день по 1-2 часа хотя бы надо заниматься эти полгода, много практиковался в решении задач - проект Эйлера, codewars, codeforces и т.п.
*звуки E1M1*
Урааа! Новое видео 🎉
Лайк не глядя
у меня выдаёт три ошибки!!!
in module drawing.world[walls+[obj.objectlocate(player,walls) for obj in sprites.list_of_object ошибка: [obj.objectlocate(player,walls)
in listcomp drawing.world[walls+[obj.objectlocate(player,walls) for obj in sprites.list_of_object ошибка: [obj.objectlocate(player,walls)
in objectlocate dx,dy=self.x - player.x,self.y-player.y AttributeError: 'SpriteObject' object has no attribute 'x'
Привет, не подскажешь, как увеличить скорость поворота игрока?
Посмотри лутше в коде там все розписано і поворот и движениє игрока
в файле player, где self.angle меняй значение 0.02 на большее
Спасибо за урок
Круто!
Оооооо да, погнали.
Крууутяк!!!
Молодец😀
ЛоГиЧнО
Топ!!!
Я узнал больше чем в школе
что делать если а питоне пишет типо папки со значением спрайт ''devil' не существует
Из папки вытащи, а папку удали, возможно Пайтон не видит папки, Пайтон видит файлы.
а откуда ты брал спрайты?
погугли "sprite pack doom"
@@StandaloneCoder да, я находил довольно большие паки. но вот именно таких, как у тебя, не нашёл. пользуясь случаем, скажу тебе огромное спасибо за эти видео. благодаря тебе, я смог написать похожий движок на Си.
Есть возможность игру перевести в exe или apk?
pyinstaller
@@_fox7512 ты прав pyinstaller
А apk это buildozer
Не сильно тормозит игра?
У меня ФПС в среднем держится в пределах 50 - 80 кадров в секунду
6:36 «масшто́б» - новое слово в русском языке и в математике.
Чокнутый