鱼C论坛

 找回密码
 立即注册
查看: 1160|回复: 4

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

[复制链接]
发表于 2022-6-19 00:42:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 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这行没有起作用的话,你怎么会看到乌龟出现在屏幕正中间呢,这行代码的作用就是定义屏幕正中间的坐标
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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这行没有起作用的话,你怎么会看到乌龟出现在屏幕正中间呢,这行代码的作用就是定义屏幕正中间的坐标
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-19 01:19:37 | 显示全部楼层
本帖最后由 lzb1001 于 2022-6-19 01:21 编辑
临时号 发表于 2022-6-19 00:59
这个地方用到了,position是一个类,center是这个类的一个属性,进了pygame.draw.rect这个函数之后,pygame自 ...


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

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

也就是说:如果不指定图像显示在中心位置,就可以不要这行代码,对吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-19 01:24:05 | 显示全部楼层
lzb1001 发表于 2022-6-19 01:19
感谢大神回复。哦,原来是这样。

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

对,position.center默认是0,0的位置
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-19 01:26:06 | 显示全部楼层
lzb1001 发表于 2022-6-19 01:19
感谢大神回复。哦,原来是这样。

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

如果你的问题解决了,不要忘了设置最佳答案哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-16 19:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表