鼠標(biāo)事件
import pygame
from random import randint
def rand_color():
"""
產(chǎn)生隨機(jī)顏色
"""
return randint(0, 255), randint(0, 255), randint(0, 255)
def draw_ball(screen, pos):
pygame.draw.circle(screen, rand_color(), pos, randint(10, 20))
# 只要屏幕上的內(nèi)容有更新谚鄙,都需要調(diào)用下面這兩個方法中的一個
# pygame.display.flip()
pygame.display.update()
# 寫一個函數(shù)沙绝,判斷指定的點是否在指定的矩形范圍中
def is_in_rect(point, rect):
x, y = point
rx, ry, rw, rh = rect
if (rx <= x <= rx+rw) and (ry <= y <= ry+rh):
return True
return False
# 寫一個函數(shù)楼镐,畫一個按鈕
def draw_button(screen, bth_color, title_color):
# 畫個按鈕
"""矩形框"""
pygame.draw.rect(screen, bth_color, (100, 100, 100, 60))
"""文字"""
font = pygame.font.SysFont('Times', 30)
title = font.render('clicke', True, title_color)
screen.blit(title, (120, 120))
# 按鈕坐標(biāo)
if __name__ == '__main__':
pygame.init()
screen = pygame.display.set_mode((600, 400))
screen.fill((255,255,255))
pygame.display.set_caption('鼠標(biāo)事件')
# 畫個按鈕
draw_button(screen, (0, 255, 0), (255, 0, 0))
# """矩形框"""
# pygame.draw.rect(screen,(0, 255, 0),(100, 100, 100, 60))
# """文字"""
# font = pygame.font.SysFont('Times', 30)
# title = font.render('clicke',True,(255, 0, 0))
# screen.blit(title, (120, 120))
pygame.display.flip()
while True:
for event in pygame.event.get():
# 退出
if event.type == pygame.QUIT:
exit()
if event.type == pygame.MOUSEBUTTONDOWN:
# 在指定的坐標(biāo)處畫一個球
# draw_ball(screen, event.pos)
if is_in_rect(event.pos, (100, 100, 100, 60)):
draw_button(screen, (0, 100, 0), (100, 0, 0))
pygame.display.update()
if event.type == pygame.MOUSEBUTTONUP:
if is_in_rect(event.pos, (100, 100, 100, 60)):
draw_button(screen, (0, 255, 0),(255, 0, 0))
pygame.display.update()
if event.type == pygame.MOUSEMOTION:
screen.fill((255, 255, 255))
draw_button(screen, (0, 255, 0), (255, 0, 0))
draw_ball(screen, event.pos)