Форум сайта python.su
Добрый день, уважаемые!
Дайте пожалуйста критику моему произведению.
Хочу, так сказать, провести работу над ошибками.
Прикреплённый файлы: Panic in the pizzeria.zip (111,4 KБ)
Офлайн
Andrey_Golovin
class Pizza(Sprite): """Инициализирует пиццу""" def __init__(self, screen_game, ai_setting): super(Pizza, self).__init__() self.screen_game = screen_game self.ai_setting = ai_setting self.numbers = [0, 59, 118, 177, 236, 295, 354, 413, 472, 531, 590] self.rand_pizza = random.shuffle(self.numbers) white = (255, 255, 255) # Загрузка изображения пиццы. self.image = pygame.image.load('image/pizza.bmp') self.image.set_colorkey(white) self.rect = self.image.get_rect() self.screen_rect = screen_game.get_rect() self.rand_pizza self.x = random.choice(self.numbers) # Координаты появления пиццы. self.rect.x = (self.x) self.rect.y = (70) # Флаг ускорения пиццы. self.moving_speed = False def update_pizza(self): if self.moving_speed: self.rect.y += self.ai_setting.pizza_drop_speed * 3 else: self.rect.y += self.ai_setting.pizza_drop_speed def blitme(self): self.screen_game.blit(self.image, self.rect)
Офлайн
Класс Button - шестикратное дублирование кода.
Офлайн
FishHook1 numbers эти числа взялись из ширины картинки плюс ширина картинки. Для использования координаты X.
Andrey_Golovin
def pizza_delete(ai_setting, pizza, pizzas, chef, stats, sb, numberspizza): """Проверяет достигла ли пицца края экрана и удаляет её""" if pizza.rect.bottom >= pizza.screen_rect.bottom: pizza.remove(pizzas)
Офлайн
FishHookУх как)) Даже покраснел))) Спасибо!
Класс Button - шестикратное дублирование кода.
Офлайн
Класс Button - шестикратное дублирование кода.
Вот насчет повторения кода это я понял только пока ничего лучше не придумал.
Офлайн
Ну что сами напросились. НАс ведь, хлебом не корми, дай когонить покритиковать.
1. Дистрибутив
Игра требует pyGame. Ни тебе requirements.txt, ни хоть просто надписи: “для запуска нужно…”
2. Геймплей:
- когда пицца попадает в “тарелку” она исчезает, но если сразу отодвинуть “тарелку”, видно как пицца падает дальше.
- Что вообще происходит? Где надпись “игра окончена вы….”, я даже не понимаю выиграл я или проиграл. Я уже не говорю о правилах.
- после проигрыша(выиграша??) кнопка “Play” не начинает игру заново.
3. Графика:
- нет, я все понимаю, делалось на коленке, и графика тут для галочки, но можно же было более аккуратно вырезать картинку, чтобы не было этих ужасных белых окантовок вокруг спрайтов.
- забор обрезан “криво” в ФШ провели линию по ней в тупую и обрезали, такое обрезание очень уж глаза режет. Что стоило обрезать по линии шва между кирпичами и чуть чуть повернуть или деформировать в фотошопе?
- “веселый повар” отображаеться поверх кирпичной стены, хотя должен быть за ней. Слои?
- “веселый повар”просто телепортируеться, пускай уж он или перемещаеться хоть както, или прячеться за стеной а потом выскакивает в новом месте.
- поведение кнокпок… ну ладно фиг с ним, пока пропустим.
4. Код.
- ИМХО. слишком много файлов, для такого обьема, было бы достаточно двух-трех. Один описывающий поведение спрайтов, один ГУИ(вякие кнопочки-цифирьки) и один собирающий это все вместе(основной код игры)
- button.py это вообще . куча неинформативных переменных, с кучей же копипастных методов с такимиже названиями: self.rect_1, self.rect_2…self.rect6, prep_msg_1, prep_msg_2,….prep_msg_6, draw_button_1,….draw_button_6. там же код идентичный, отличеться только цифирька в конце.
Можно же было это через словарь или список сделать, в конце концов, класс ведь тоже хранит свои атрибуты в словаре.
- что вообще делает class Button()? Это класс который рисует вообще все кнопки? ПРи этом положенние кнопок задано заранее? ИМХО это неправильно в корне, должен быть класс который рисует одну кнопку, а все кнопки, это просто разные инстансы этого класса.
[code python][/code]
Отредактировано PEHDOM (Фев. 25, 2019 16:09:42)
Офлайн
PEHDOMно можно же было более аккуратно вырезать картинку, чтобы не было этих ужасных белых окантовок вокруг спрайтов
но можно же было более аккуратно вырезать картинку, чтобы не было этих ужасных белых окантовок вокруг спрайтов
self.image.set_colorkey(white)
Офлайн
Andrey_Golovin
PEHDOMСпасибо! Буду исправлять.)))
Ну что сами напросились. НАс ведь, хлебом не корми, дай когонить покритиковать.1. Дистрибутив Игра требует pyGame. Ни тебе requirements.txt, ни хоть просто надписи: “для запуска нужно…”2. Геймплей:- когда пицца попадает в “тарелку” она исчезает, но если сразу отодвинуть “тарелку”, видно как пицца падает дальше.- Что вообще происходит? Где надпись “игра окончена вы….”, я даже не понимаю выиграл я или проиграл. Я уже не говорю о правилах.- после проигрыша(выиграша??) кнопка “Play” не начинает игру заново.3. Графика:- нет, я все понимаю, делалось на коленке, и графика тут для галочки, но можно же было более аккуратно вырезать картинку, чтобы не было этих ужасных белых окантовок вокруг спрайтов.- забор обрезан “криво” в ФШ провели линию по ней в тупую и обрезали, такое обрезание очень уж глаза режет. Что стоило обрезать по линии шва между кирпичами и чуть чуть повернуть или деформировать в фотошопе? - “веселый повар” отображаеться поверх кирпичной стены, хотя должен быть за ней. Слои?- “веселый повар”просто телепортируеться, пускай уж он или перемещаеться хоть както, или прячеться за стеной а потом выскакивает в новом месте.- поведение кнокпок… ну ладно фиг с ним, пока пропустим.4. Код.- ИМХО. слишком много файлов, для такого обьема, было бы достаточно двух-трех. Один описывающий поведение спрайтов, один ГУИ(вякие кнопочки-цифирьки) и один собирающий это все вместе(основной код игры)- button.py это вообще . куча неинформативных переменных, с кучей же копипастных методов с такимиже названиями: self.rect_1, self.rect_2…self.rect6, prep_msg_1, prep_msg_2,….prep_msg_6, draw_button_1,….draw_button_6. там же код идентичный, отличеться только цифирька в конце.Можно же было это через словарь или список сделать, в конце концов, класс ведь тоже хранит свои атрибуты в словаре.- что вообще делает class Button()? Это класс который рисует вообще все кнопки? ПРи этом положенние кнопок задано заранее? ИМХО это неправильно в корне, должен быть класс который рисует одну кнопку, а все кнопки, это просто разные инстансы этого класса.
Офлайн
Офлайн