Разчитане на бутоните на мишката¶
Информация за текущо натиснатите бутони на мишката се предоставя от функцията pg.mouse.get_press()
. Тази функция връща набор от три елемента (подреден троен), които се използват като логически стойности. Елементите на кортежа съответстват съответно на левия, средния и десния бутон на мишката. Стойност True показва, че в момента е натиснат бутон, и False, че не е.
Примерът по-долу показва как да четете кои бутони на мишката се натискат. Това е частта от програмата, където това се случва:
Комплектът pressed_mouse_button получава три стойности, върнати чрез функцията pg.mouse.get_press(). Тогава обикновено използваме тези стойности в операторите if. Например if pressed_mouse_button[2] означава “ако е натиснат десен бутон” (0 за ляво, 1 за средно и 2 за дясно).
Примери и задачи¶
Пример - сложете топката в кутията
Докато левият бутон на мишката се държи натиснат, топката се отдалечава от курсора. Целта е да поставите топката в червената кутия, като преместите мишката и натиснете левия бутон. Натискането на десния бутон връща играта в началото.
Първо изучете внимателно функцията new_frame() и след това разгледайте и останалите части на кода. Изпробвайте програмата и вижте дали работи, както сте очаквали, след като прочетете описанието.
Задача - до и от мишката:
Завършете програмата, така че да работи както е показано в примера (бутон „Play Task“).
Когато се натисне левия бутон на мишката, топката трябва да се отдалечи от мишката, както в примера „поставете топката в полето“ по-горе, но не на половин разстояние, а само на една десета от разстоянието до мишката.
Когато левият бутон на мишката не е натиснат, топката трябва да се приближи с една десета от разстоянието до мишката (както в задачата „към мишката“ в предишния урок).
Задача - лазер:
Завършете програмата, така че да работи както е показано в примера (бутон „Play Task“).
Докато левият бутон на мишката се държи натиснат, “лазерът” е включен, в противен случай той е изключен. Докато лазерът е включен, енергията му намалява с 1 (но не под 0), а когато е изключена, енергията се увеличава с 2 (но не над 100).