lzb1001 发表于 2022-6-19 00:42:17

这句代码有点看不明白为什么需要/存在的意义

本帖最后由 lzb1001 于 2022-6-19 00:44 编辑

# 演示裁剪图像

import pygame
import sys
from pygame.locals import *


pygame.init()


size = width, height = 640, 480
bg = (255, 255, 255)




clock = pygame.time.Clock()



screen = pygame.display.set_mode(size)
pygame.display.set_caption('FishC Demo')


oturtle = pygame.image.load(r'd:\\work\\turtle_left.png')
#turtle = pygame.transform.chop(oturtle, (71, 65, 30, 30))
turtle = oturtle
position = turtle.get_rect()
# 图像中心点的位置坐标
position.center = width // 2, height // 2 # 地板除法,哪里用到这个值???



while True:
       for event in pygame.event.get():
      if event.type == pygame.QUIT:
            sys.exit()

      
   
   

   
    screen.fill(bg)
   
    screen.blit(turtle, position)
    # 调用draw模块的rect()方法来绘制矩形:
    pygame.draw.rect(screen, (0, 0, 0), position, 1)
    # 第一个参数screen指定矩形将绘制在……
    # 第二个参数(0, 0, 0)指定边框颜色为黑色
    # 第三个参数position指定矩形的范围(left/top/width/height)
    # 第四个参数1指定矩形边框线条的粗细(0表示用指定边框颜色填充矩形/数值越大线条越粗/负数表示无边框)

    # 刷新页面:
    pygame.display.flip()
   

    # 调用time模块的clock()方法:
    clock.tick(30) # 设置不高于30帧执行

------------------------------------------
Windows 10 专业版 | Python 3.7.6
------------------------------------------

【我的问题】

第30行代码position.center = width // 2, height // 2的作用?

它后面的代码pygame.draw.rect(screen, (0, 0, 0), position, 1)中都没有调用到position.center,而是position,所以第30行代码为什么一定要存在?


******************************

感谢大神不吝赐教,为新手解疑释惑。

赠人玫瑰,手有余香,好人一生平安!

临时号 发表于 2022-6-19 00:59:54

pygame.draw.rect(screen, (0, 0, 0), position, 1)
这个地方用到了,position是一个类,center是这个类的一个属性,进了pygame.draw.rect这个函数之后,pygame自然会去调用它,不需要你操心
如果position.center = width // 2, height // 2这行没有起作用的话,你怎么会看到乌龟出现在屏幕正中间呢,这行代码的作用就是定义屏幕正中间的坐标

lzb1001 发表于 2022-6-19 01:19:37

本帖最后由 lzb1001 于 2022-6-19 01:21 编辑

临时号 发表于 2022-6-19 00:59
这个地方用到了,position是一个类,center是这个类的一个属性,进了pygame.draw.rect这个函数之后,pygame自 ...

感谢大神回复。哦,原来是这样。

我之前是有测试过了:如果删除这行代码,图像将显示在屏幕左上角的位置。

也就是说:如果不指定图像显示在中心位置,就可以不要这行代码,对吧?

临时号 发表于 2022-6-19 01:24:05

lzb1001 发表于 2022-6-19 01:19
感谢大神回复。哦,原来是这样。

我之前是有测试过了:如果删除这行代码,图像将显示在屏幕左上角的 ...

对,position.center默认是0,0的位置

临时号 发表于 2022-6-19 01:26:06

lzb1001 发表于 2022-6-19 01:19
感谢大神回复。哦,原来是这样。

我之前是有测试过了:如果删除这行代码,图像将显示在屏幕左上角的 ...

如果你的问题解决了,不要忘了设置最佳答案哦
页: [1]
查看完整版本: 这句代码有点看不明白为什么需要/存在的意义