鱼C论坛

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

[已解决]083课中部分代码不太懂

[复制链接]
发表于 2020-4-7 21:49:52 | 显示全部楼层 |阅读模式

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

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

x
为什么temp.blit(target, (-x, -y)) 里面用(-x, -y)表示背景坐标而不是(x, y)?
...
def blit_alpha(target, source, location, opacity):
    x = location[0]
    y = location[1]
    temp = pygame.Surface((source.get_width(),source.get_height())).convert()
    temp.blit(target, (-x, -y))
    temp.blit(source, (0, 0))
    temp.set_alpha(opacity)
    target.blit(temp, location)
...
    blit_alpha(screen, turtle, position, 200)
...


                               
登录/注册后可看大图
最佳答案
2020-4-8 10:23:35
你是巨猪怪_ 发表于 2020-4-8 10:13
大神,我还不是很明白  能再讲仔细一点吗

这么给你说吧,你代码里面的x, y是是乌龟图像位置的左上角坐标对不对
他是相对背景图的左上角坐标(0, 0) 来说的
然后(-x, -y) 这里是相对于乌龟图像左上角坐标来看,刚好位于背景图左边的(0, 0) 点,这样要覆盖上去的图片就不会和原背景产生错位了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-7 22:46:23 | 显示全部楼层
这么理解把,你截取的图片的左上角是在乌龟头部附近(x1,y1),然后你用背景图覆盖的时候,背景图的左上角起始坐标就是在这个(x1,y1), 此时你应该想到,盖上去时候会和原背景错位了,所以要修正它的位置
(-x, -y)是为了把覆盖用的背景图的左上角起始坐标挪回(0,0)处
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-8 10:13:33 From FishC Mobile | 显示全部楼层
十月故里 发表于 2020-4-7 22:46
这么理解把,你截取的图片的左上角是在乌龟头部附近(x1,y1),然后你用背景图覆盖的时候,背景图的左上角起始 ...

大神,我还不是很明白  能再讲仔细一点吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-8 10:23:35 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
你是巨猪怪_ 发表于 2020-4-8 10:13
大神,我还不是很明白  能再讲仔细一点吗

这么给你说吧,你代码里面的x, y是是乌龟图像位置的左上角坐标对不对
他是相对背景图的左上角坐标(0, 0) 来说的
然后(-x, -y) 这里是相对于乌龟图像左上角坐标来看,刚好位于背景图左边的(0, 0) 点,这样要覆盖上去的图片就不会和原背景产生错位了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-8 10:25:24 From FishC Mobile | 显示全部楼层
这个图你可能不太好看出来,你换一个颜色层次感明显点的图片,然后把-x, -y换成0, 0就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 04:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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