pygame获得矩形位置
import pygameimport sys
pygame.init()
size = width, height = 600, 400
speed = [-2, 1]
bg = (11, 242, 215)
clock = pygame.time.Clock()
# 创建指定大小窗口
screen = pygame.display.set_mode(size)
#设置窗口标题
pygame.display.set_caption('This is my frst GAME')
#加载素材
turle = pygame.image.load(r'C:\Users\Admin\Desktop\注册.jpg')
# 获取图像的矩形位置
position = turle.get_rect()
print(position)
position = position.move(100, 50)
print(position)
while True:
# 事件迭代
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.MOUSEBUTTONDOWN:
p = str(position)
ind_bag = p.index('(')
ind_end = p.index(')')
p = p
x1, y1, x2, y2 = p.split(',')
print(x1, y1, x2, y2)
print(event.pos)
if int(x1) <= event.pos <= int(x2) and int(y1) <= event.pos <= int(y2):
print('在里面')
# 移动图像
# 边缘检测
if position.left < 0 or position.right > width:
turle = pygame.transform.flip(turle, True, False)
speed = -speed
# 边缘检测
if position.top < 0 or position.bottom > height:
speed = -speed
# 填充背景
screen.fill(bg)
#更新图像
screen.blit(turle, position)
#更新界面
pygame.display.flip()
# 延迟10毫秒
pygame.time.delay(30)
以上代码目标是:当发现鼠标点击事件,判断鼠标位置是否在图像内坐标范围内
疑惑代码块:
position = turle.get_rect()
print(position)
position = position.move(100, 50)
print(position)
输出结果:
<rect(0, 0, 160, 160)>
<rect(100, 50, 160, 160)>
我很疑惑,x2,y2,的值竟然没有变动,我的理解是矩形是由两个平面坐标点(x1:100,y1:50, x2:160,y2:160) 当矩形的位置进行了移动,比如向x移动30,那么x1和x2分别需要+30
而这里x轴移动100,y轴移动50,但是x2,y2的值并没有发生任何变动,这是为什么
我的理解是从上往下运行,下面一大段函数自然就是没有触发了。不知对你有帮助不?
页:
[1]