PYthofreeze 发表于 2020-5-7 23:23:27

temp.blit(targrt,(-x,-y)) -x,-y什么意思

我不懂这代码说把乌龟所在位置的背景覆盖上去,现在把背景图screen整张放上去,第二个参数是指定要画的位置,请问-x,-y到底什么意思?

import pygame
import sys
from pygame.locals import *

pygame.init()

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

clock = pygame.time.Clock()
screen = pygame.display.set_mode(size)
pygame.display.set_caption("FishC Demo")

turtle = pygame.image.load("turtle.png").convert_alpha()
background= pygame.image.load("background.jpg").convert()
position = turtle.get_rect()
position.center = width // 2, height // 2

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)

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

    screen.blit(background, (0, 0))
    blit_alpha(screen, turtle, position, 200)
   
    pygame.display.flip()
   
    clock.tick(30)

jkluoling1992 发表于 2020-5-7 23:34:50

blit方法的两个参数(source, dest)
source的类型是Surface, pygame.image.load(图片路径)返回的就是Surface
dest需要指定两个值,left和top
-x, -y 应该就是left 和top

PYthofreeze 发表于 2020-5-7 23:48:59

jkluoling1992 发表于 2020-5-7 23:34
blit方法的两个参数(source, dest)
source的类型是Surface, pygame.image.load(图片路径)返回的就是Surf ...

你好blit的两个参数是明白了
但是不明白为什么要-x,-y

jkluoling1992 发表于 2020-5-8 00:03:47

PYthofreeze 发表于 2020-5-7 23:48
你好blit的两个参数是明白了
但是不明白为什么要-x,-y

那你改成正的,看看效果咯

PYthofreeze 发表于 2020-5-8 00:10:58

jkluoling1992 发表于 2020-5-8 00:03
那你改成正的,看看效果咯

这早就试了。。能解决就不出来找大神了{:10_266:}

_2_ 发表于 2020-5-8 09:03:13

PYthofreeze 发表于 2020-5-8 00:10
这早就试了。。能解决就不出来找大神了

向反方向移动
页: [1]
查看完整版本: temp.blit(targrt,(-x,-y)) -x,-y什么意思