083课中部分代码不太懂
为什么temp.blit(target, (-x, -y)) 里面用(-x, -y)表示背景坐标而不是(x, y)?...
def blit_alpha(target, source, location, opacity):
x = location
y = location
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)
...
https://s1.ax1x.com/2020/04/07/G2YH0K.md.png 这么理解把,你截取的图片的左上角是在乌龟头部附近(x1,y1),然后你用背景图覆盖的时候,背景图的左上角起始坐标就是在这个(x1,y1), 此时你应该想到,盖上去时候会和原背景错位了,所以要修正它的位置
(-x, -y)是为了把覆盖用的背景图的左上角起始坐标挪回(0,0)处 十月故里 发表于 2020-4-7 22:46
这么理解把,你截取的图片的左上角是在乌龟头部附近(x1,y1),然后你用背景图覆盖的时候,背景图的左上角起始 ...
大神,我还不是很明白{:10_266:}能再讲仔细一点吗 你是巨猪怪_ 发表于 2020-4-8 10:13
大神,我还不是很明白能再讲仔细一点吗
这么给你说吧,你代码里面的x, y是是乌龟图像位置的左上角坐标对不对
他是相对背景图的左上角坐标(0, 0) 来说的
然后(-x, -y) 这里是相对于乌龟图像左上角坐标来看,刚好位于背景图左边的(0, 0) 点,这样要覆盖上去的图片就不会和原背景产生错位了 这个图你可能不太好看出来,你换一个颜色层次感明显点的图片,然后把-x, -y换成0, 0就知道了
页:
[1]