изменить изображение на основе щелчка в pygame

Я выполнил поиск в google и просмотрел через две мои книги для начинающих python, чтобы найти, как это сделать. Я предполагаю, что это должна быть простая задача. В принципе, я работаю с pygame с python.

Я хочу, чтобы, если я нажму кнопку button_image, он изменится на button1select_image, правильно? И если вы нажмете на button2_image, он переключит button1select_image обратно на button1_image, а button2_image изменится на button2select_image.

  • Как получить информацию о сетке от нажатой кнопки в tkinter?
  • Как изменить текст метки Tkinter при нажатии кнопки
  • Динамически создавать кнопки Tkinter
  • mechanize python нажмите кнопку
  • Как сделать кнопки в python / pygame?
  • Переопределение кнопки кнопки Tkinter «X» (кнопка, закрывающая окно)
  • Так что мне интересно, если это простое заявление if else или оно намного сложнее. Очевидно, кнопки будут делать что-то еще позже, но я не могу найти учебник о том, как сделать что-то подобное на основе щелчка мыши пользователя.

    # Button Mouse Click Image Change # Demonstrates changing from one button image to another based on click of mouse. from livewires import games, color games.init(screen_width = 281, screen_height = 500, fps = 50) button1_image = games.load_image("button1.png", transparent = False) button1 = games.Sprite(image = button1_image, x = 28,y = 18) games.screen.add(button1) button1select_image = games.load_image("button1select.png", transparent = False) button1select = games.Sprite(image = button1select_image, x = 28,y = 18) games.screen.add(button1select) button2_image = games.load_image("button2.png", transparent = False) button2 = games.Sprite(image = button2_image, x = 56,y = 18) games.screen.add(button2) button2select_image = games.load_image("button2select.png", transparent = False) button2select = games.Sprite(image = button2select_image, x = 56,y = 18) games.screen.add(button2select) games.screen.mainloop() 

  • Проблемы с вызовом «on click event» на странице html с использованием красивого супа в Python
  • Как создать кнопку на холсте tkinter?
  • Python & PyGTK: остановка при нажатии кнопки
  • mechanize python нажмите кнопку
  • Изменение параметров OptionMenu при нажатии кнопки
  • Динамически создавать кнопки Tkinter
  • 3 Solutions collect form web for “изменить изображение на основе щелчка в pygame”

    Здесь я взбивал это, чтобы показать, как работает мышь. Строка if event.button == 1: проверяет, была ли нажата левая кнопка мыши, измените значение 1 на 2, если вы хотите правую кнопку мыши.

     import pygame, sys from pygame.locals import * TIMER = 30 SCREEN_X = 200 SCREEN_Y = 200 screen = pygame.display.set_mode((SCREEN_X, SCREEN_Y)) clock = pygame.time.Clock() #tick-tock ending = button1 = button2 = False corner1 = (28,18) #Top Left corner of button 1 corner2 = (56,18) #Top Left corner of button 2 image_length = 100 #length of the buttons image_height = 100 #height of the buttons counter = 0 #Main Loop: while ending==False: counter+=1 clock.tick(TIMER) for event in pygame.event.get(): if event.type == KEYDOWN: if event.key == K_ESCAPE: ending=True # Time to leave print("Game Stopped Early by user") elif event.type == MOUSEBUTTONDOWN: if event.button == 1: mouse_x, mouse_y = event.pos if (mouse_x >= corner1[0]) and (mouse_x <= corner1[0]+image_length) and (mouse_y >= corner1[1]) and (mouse_y <= corner1[1]+image_height): print ("Button one is selected") button1=True button2=False elif (mouse_x >= corner2[0]) and (mouse_x <= corner2[0]+image_length) and (mouse_y >= corner2[1]) and (mouse_y <= corner2[1]+image_height): print ("Button two is selected") button1=False button2=True else: print ("That's not a button") button1=False button2=False if counter == TIMER: #prints the statements once a second counter=0 if button1==True: print ("Button one is currently selected") elif button2==True: print ("Button two is currently selected") else: print ("No buttons currently selected") 

    На выводах печати внизу. Просто используйте выбранное изображение для кнопок 1 или 2, если переменная button1 или button2, соответственно, имеет значение True . Остальное будет, если ни один из них не выбран, поэтому у вас есть оба изображения в качестве невыделенной кнопки. Если вы не знаете, как использовать изображения и тому подобное, посмотрите здесь: http://www.pygame.org/docs/ Это действительно помогло мне. Попробуйте сами, и если вы все еще застряли, Stack Exchange по-прежнему будет здесь для ваших вопросов 🙂

    Надеюсь, поможет

    Вот несколько псевдокодов:

     selected_button = None buttons = [button1, button2] ... for event in pygame.event.get(): ... if event.type == MOUSEBUTTONDOWN: for b in buttons: if b.rect.collidepoint(event.pos): if selected_button == b: # unselect this button else: # unselect the old button (if there's one) and select this one ... 

    Взгляните на это меню примера: https://stackoverflow.com/a/10747990/341744 конкретно на свой код: https://gist.github.com/2802185

    Он создает класс Option , который меняет цвет при наведении указателя мыши. Вы можете расширить его, поэтому нажмите кнопку, кнопка вызывает функцию. (т.е.: new_game() , show_options() т. д.)

    Python - лучший язык программирования в мире.