Итак, я пытаюсь получить «кнопки» для своего главного меню. Это не весь код, но его часть, на мой взгляд, может быть актуальной. Я тестировал, печатая утверждения/значения, что, когда я нажимаю кнопку вниз, он регистрирует мышь, и я знаю прямую текст (в этом случае play_game_rect), поэтому, следуя другому потоку, я решил назначить мышь .get_pos() к переменной mouse_position. Затем я попробовал collidepoint() и передал переменную mouse_position. Я чувствую, что collidepoint() может быть правильным методом для этого. Я также подтвердил, что mouse_position действительно содержит желаемое значение x, y. Я думаю, что это, вероятно, только строка или две, чтобы исправить, но я застрял.Нажав на рендеринг текста в pygame
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == MOUSEBUTTONDOWN:
mouse_position = pygame.mouse.get_pos()
if game_state == "Menu":
#Create Button Text
menu_main = headlines.render("Main Menu", True, WHITE)
play_game = standard.render("Play Game", True, WHITE)
instructions = standard.render("Instructions", True, WHITE)
# Get Button Dimensions
menu_main_rect = menu_main.get_rect()
play_game_rect = play_game.get_rect()
instructions_rect = instructions.get_rect()
#Blit Buttons
myWindow.blit(menu_main, (MENUX, MENUY))
myWindow.blit(play_game, (MENUX, MENUY + 120))
myWindow.blit(instructions, (MENUX, MENUY + 150))
print play_game_rect
if play_game_rect.collidepoint(mouse_position):
game_state == "Game"
Я заметил отсчет 0 на x и y при печати моего прямоугольника. Для каждого, следующего за примером, мне нужно было выполнить play_game_rect.y = MENUY + 120 (так как это было фактическое play_game attritbute). Используя ваш пример, он вызовет мой текст в главном меню. В любом случае, это решило его, и, предоставив местоположение в документах, я потрачу немного больше времени на чтение этого раздела, чтобы убедиться, что я действительно понимаю. Я читал get_rect внутри шрифта и думал, что это тот звонок, который я делал , Огромное спасибо! Я как бы начал догадываться, что это может быть проблемой, но я не был уверен. Спасибо –
Конечно, МЕНЮ + 120, я пропустил это, извините :) Но общий подход теперь ясен, правда? В противном случае не стесняйтесь спрашивать, рад, что я мог бы помочь! –