|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
源代码如下
- import sys
- import pygame as pg
- from pygame.locals import *
- def run():
- size = (600, 400)
- bg = (255, 255, 255)
- select = 0
- drag = 0
- start_select = []
- end_select = []
- select_select = []
- start_drag = []
- end_drag = []
- drag_drag = []
- temp = 1
- screen = pg.display.set_mode(size)
- bg_img = pg.image.load('sea.jpg')
- bg_position = bg_img.get_rect()
- f = open('event.txt', 'w')
- while True:
- # 事件队列
- for event in pg.event.get():
- f.write(str(event) + '\n')
- if event.type == pg.QUIT:
- sys.exit()
- elif event.type == pg.MOUSEBUTTONDOWN:
- # 第一次按下鼠标时,是进行选择
- if select == 0 and drag == 0:
- start_select = pg.mouse.get_pos()
- select = 1
- # 第二次按下鼠标时,是进行拖动
- elif select == 2 and drag == 0:
- start_drag = [event.x, event.y]
- drag = 1
- # elif select == 2 and drag == 1:
- # drag_drag = pg.mouse.get_pos()
- elif select == 2 and drag == 2:
- select = 0
- drag = 0
- # TODO 待补充删除选择框和被截取图片的代码段
- elif event.type == pg.MOUSEBUTTONUP:
- if select == 1 and drag == 0:
- end_select = pg.mouse.get_pos()
- # select_box = pg.draw.rect(bg_img, (0, 0, 0), (start_select, end_select), 1)
- select = 2
- drag = 1
- elif select == 2 and drag == 1:
- end_drag = pg.mouse.get_pos()
- drag = 2
- if pg.mouse.get_pressed():
- if select == 1 and drag == 0:
- select_select = pg.mouse.get_pos()
- width = select_select[0] - start_select[0]
- height = select_select[1] - start_select[1]
- select_box = pg.draw.rect(bg_img, (0, 0, 0), (start_select[0], start_select[1], width, height), 1)
- elif select == 2 and drag == 1:
- drag_drag = pg.mouse.get_pos()
- # if temp < 100:
- # pg.draw.rect(bg_img, (0, 0, 0), (0, 0, temp, temp), 1)
- # temp += 1
- screen.fill(bg)
- screen.blit(bg_img, bg_position)
- pg.display.flip()
- pg.time.delay(100)
- run()
复制代码
不知道为什么,在第一次点击拖动时画出来的矩形框回叠加起来,就像图片里的一样,想问一下这是为什么啊
|
-
|