Чтобы они не были магическими числами разбросанными по коду Чтобы было проще менять эти значения, которые могут быть разбросаны по всей кодовой базе Чтобы в дальнейшем, при желании, сделать сохранение игры и в рантайме подставлять нужные значения в переменную
Такой вопрос, if это если else ещё используется если выражение не действительно, а elif это типо от слова el(se) и if, его используют когда if и else не являются правдой?
@@симагеймс ты знаешь я не знаю как будет если просто смотреть. Я смотрю и сразу пишу код где надо отматываю назад что бы услышать объяснения. Так что даже если будет 3-4 часа я просто разобью на 2 раза но все равно досмотрю.
А как сделать что бы игру можно было открывать в один клик и без питона, допустим перекинуть на флешку и что бы в другом компьютере открыть ее в один клик без установки питона?
Прекрасное объяснение! Спасибо большое за объяснение, уже второй день с столкновениями мучался, а ты всё объяснил. Лайк, подписка. Удачи тебе!
Спасибо! Круто))
формат подачи топ) очень много полезного, спасибо!
Заходит такой формат.. продолжай дальше... спасибо
Спасибо)
Интересно, как сделать, чтобы после рисования простого рисунка, секунд через 5 графическое окно с рисунком закрылось или вовсе питон закрыл сам себя?
Очень сильно помогло в изучении, спасибо большое продолжайте в том же духе!
Вы думаете, его мотивируют лайки, подписки, просмотры? Нет, его мотивируют синнабоны
Спасибо в карман не положишь xD
Но тсс, а то придется их все время готовить
огонь❤
Я всегда задумывался зачем делать переменные с параментами окна
(я просто Python недавно начал учить)
Чтобы они не были магическими числами разбросанными по коду
Чтобы было проще менять эти значения, которые могут быть разбросаны по всей кодовой базе
Чтобы в дальнейшем, при желании, сделать сохранение игры и в рантайме подставлять нужные значения в переменную
Теперь понятно
Такой вопрос, if это если else ещё используется если выражение не действительно, а elif это типо от слова el(se) и if, его используют когда if и else не являются правдой?
elif используется после if, если нужно проверить еще одно условие. Потом, если необходимо, идет else - если ни одно из предыдущих условий не выполнено
@@симагеймс понял, благодарю
Все, я думаю можно заканчивать с этим... Уже целых 5 часов 39 минут...
5 часов чего?
@@python-buttons отсылка на конец ролика))
формат видео просто огонь продолжай в том же духе
Спасибо)) Долгие интересно смотреть?
@@симагеймс ты знаешь я не знаю как будет если просто смотреть. Я смотрю и сразу пишу код где надо отматываю назад что бы услышать объяснения. Так что даже если будет 3-4 часа я просто разобью на 2 раза но все равно досмотрю.
@@mrsmit6801 Понял, хорошо)
Не понял. Зачем отдельно инициализировать pygame.font.init() если pygame.init() и так уже инициализирует все вложенные модули библиотеки Pygame?
Была какая-то проблема с шрифтами, получилось только через повторную инициализацию исправить. Точно не помню
Мне очень понравились можешь змейку сделать пожалуста🤗😁
Я изначально выбирал между понгом и змейкой) Значит следующая будет змейкой!
Дарова, интересный контент, можешь записать ролик как сделать меню на базе PyGame и PyGame_menu
Привет! Хорошо, подумаю над этим
@@симагеймс спасибо
А как сделать что бы игру можно было открывать в один клик и без питона, допустим перекинуть на флешку и что бы в другом компьютере открыть ее в один клик без установки питона?
Сделаю туториал, уже думал на эту тему
Можно код?
А есть где-то полный код программы?
import pygame as pg
import random
pg.init()
pg.font.init()
TITLE = "Half Pong"
WIDTH = 800
HEIGHT = 480
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
FPS = 60
PLATFORM_WIDTH = 100
PLATFORM_HEIGHT = 15
PLATFORM_SPEED = 10
platform_rect = pg.rect.Rect(WIDTH / 2 - PLATFORM_WIDTH / 2,
HEIGHT - PLATFORM_HEIGHT * 2,
PLATFORM_WIDTH,
PLATFORM_HEIGHT)
CIRCLE_RADIUS = 15
CIRCLE_SPEED = 10
circle_first_collide = False
circle_x_speed = 0
circle_y_speed = CIRCLE_SPEED
circle_rect = pg.rect.Rect(WIDTH / 2 - CIRCLE_RADIUS,
HEIGHT / 2 - CIRCLE_RADIUS,
CIRCLE_RADIUS * 2,
CIRCLE_RADIUS * 2)
score = 0
ARIAL_FONT_PATH = pg.font.match_font('arial')
ARIAL_FONT_48 = pg.font.Font(ARIAL_FONT_PATH, 48)
ARIAL_FONT_36 = pg.font.Font(ARIAL_FONT_PATH, 36)
size = (WIDTH, HEIGHT)
screen = pg.display.set_mode(size)
pg.display.set_caption(TITLE)
clock = pg.time.Clock()
running = True
game_over = False
while running:
for event in pg.event.get():
if event.type == pg.QUIT:
running = False
continue
elif event.type == pg.KEYDOWN:
if event.key == pg.K_ESCAPE:
running = False
continue
elif event.key == pg.K_r:
game_over = False
circle_rect.center = [WIDTH / 2, HEIGHT / 2]
circle_x_speed = 0
circle_y_speed = CIRCLE_SPEED
circle_first_collide = False
platform_rect.centerx = WIDTH / 2
platform_rect.bottom = HEIGHT - PLATFORM_HEIGHT
score = 0
screen.fill(BLACK)
if not game_over:
keys = pg.key.get_pressed()
if keys[pg.K_a]:
platform_rect.x -= PLATFORM_SPEED
elif keys[pg.K_d]:
platform_rect.x += PLATFORM_SPEED
if platform_rect.colliderect(circle_rect):
if not circle_first_collide:
if random.randint(0, 1) == 0:
circle_x_speed = -CIRCLE_SPEED
else:
circle_x_speed = CIRCLE_SPEED
circle_first_collide = True
circle_y_speed = -CIRCLE_SPEED
score += 1
pg.draw.rect(screen, WHITE, platform_rect)
circle_rect.x += circle_x_speed
circle_rect.y += circle_y_speed
if circle_rect.bottom >= HEIGHT:
game_over = True
circle_y_speed = -CIRCLE_SPEED
elif circle_rect.top = WIDTH:
circle_x_speed = -CIRCLE_SPEED
elif circle_rect.left
Здравствуйте, как можно с Вами связаться?
Привет, под последними видео есть ссылка на Telegram
Или через Discord
как сделать чтоб платформа не уходила за пределы экрана?
Добавить проверки на ее координаты. Что-то вроде if x < 0: x = 0
спасибо@@симагеймс
Почему я все написал правильно но шар и платформа уходят за приделы
Значит где-то есть ошибка, перепроверь
@@симагеймс хорошо спасибо
ты конечно молодец но много лишнего кода и много лишних переменных и кода вовсе
Понятно, что многое можно захардкодить в таком небольшом проекте, но с переменными и разбиением понятнее новичкам