สร้างเกมด้วย Pygame Zero : Mouse Events เมาส์คลิก

Python สอนสร้างเกมด้วย pygame zero

บทนี้เรามาอ่านค่าตำแหน่งของเมาส์กัน

สร้างไฟล์ขึ้นมาใหม่ ชื่อว่า mouse_xy.py
pygame zero เตรียมฟังก์ชันให้ตวจับการคลิกของเมาส์ โดยใช้ฟังก์ชัน on_mouse_down()

# exercise 5  
# Pygame Zero Basic : Mouse Events

import pgzrun
 
# กำหนดขนาด window
WIDTH = 500
HEIGHT = 500
TITLE = "Pygame Zero: Mouse Events"


#เหตุการณ์เมื่อคลิกเมาส์ 
def on_mouse_down(pos):
    # ส่งค่ากลับมาเป็นตำแหน่ง x,y
    x, y = pos
 
    # แสดงค่าตำแหน่ง x,y
    print("click! x = {} y = {}".format(x, y))
    screen.draw.text('x: ' + str(x), centerx=x, centery=y, color="red", fontsize=22)
    screen.draw.text('y: ' + str(y), centerx=x+55, centery=y, color="red", fontsize=22)
 
#รันโปรแกรม
pgzrun.go()

คลิก run

ผลลัพธ์จากการรันโปรแกรม จะได้ค่าตำแหน่ง X,Y ของเมาส์ที่คลิกตำแหน่งต่างๆบนจอ

ตรวจจับการคลิกปุ่มบนเมาส์

# exercise 5  
# Pygame Zero Basic : Mouse Events

import pgzrun
 
# กำหนดขนาด window
WIDTH = 500
HEIGHT = 500
TITLE = "Pygame Zero: Mouse Events"


#เหตุการณ์เมื่อคลิกเมาส์ 
def on_mouse_down(pos,button):
    # ส่งค่ากลับมาเป็นตำแหน่ง x,y
    x, y = pos
 
    # แสดงค่าตำแหน่งการคลิกปุ่ม คลิกปุ่มซ้ายและปุ่มขวาของเมาส์
    screen.draw.text('Button: ' + str(button), centerx=x, centery=y, color="red", fontsize=22)

#รันโปรแกรม
pgzrun.go()
แสดงค่าตำแหน่งการคลิกปุ่ม คลิกปุ่มซ้ายและปุ่มขวาของเมาส์

วาดรูปกล่องสีเหลี่ยม ตอนคลิกเมาส์

# exercise 5  
# Pygame Zero Basic : Mouse Events

import pgzrun
 
# กำหนดขนาด window
WIDTH = 500
HEIGHT = 500
TITLE = "Pygame Zero: Mouse Events"


#เหตุการณ์เมื่อคลิกเมาส์ 
def on_mouse_down(pos):
    # ส่งค่ากลับมาเป็นตำแหน่ง x,y
    x, y = pos
 
   box = Rect((x, y), (50, 50))  #กำหนดตำแหน่ง x,y ของกล่อง
   screen.draw.filled_rect(box, "red") #เริ่มวาดกล่องสีเหลียมด้วยสีแดง

#รันโปรแกรม
pgzrun.go()
จะมีรูปสีเหลี่ยมสีแดงขึ้นบนจอตรงตำแหน่งที่คลิกเมาส์ซ้าย

ตรวจจับการคลิกปุ่มเมาส์ซ้าย หรือ เมาส์ขวา?

# exercise 5  
# Pygame Zero Basic : Mouse Events

import pgzrun
 
# กำหนดขนาด window
WIDTH = 500
HEIGHT = 500
TITLE = "Pygame Zero: Mouse Events"


#เหตุการณ์เมื่อคลิกเมาส์ 
def on_mouse_down(pos,button):
    # ส่งค่ากลับมาเป็นตำแหน่ง x,y
    x, y = pos
 
    if button == mouse.LEFT:
            print("left")
            screen.draw.text('Button: ' + str(button), centerx=x, centery=y, color="red", fontsize=22)
    elif button == mouse.RIGHT:
            print("Right")
            screen.draw.text('Button: ' + str(button), centerx=x, centery=y, color="white", fontsize=22)

#รันโปรแกรม
pgzrun.go()
แสดงข้อความ เมื่อคลิกเมาส์ซ้าย หรือเมาส์ขวา