鱼C论坛

 找回密码
 立即注册
查看: 892|回复: 3

[已解决]关于pygame坐标系绘图问题

[复制链接]
发表于 2018-7-31 17:01:17 | 显示全部楼层 |阅读模式

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

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

x
  1. import pygame
  2. import sys
  3. from pygame.locals import *

  4. pygame.init()

  5. size = width, height = 640, 480
  6. bg = (0, 0, 0)

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

  10. turtle = pygame.image.load("turtle.png").convert_alpha()
  11. background  = pygame.image.load("background.jpg").convert()
  12. position = turtle.get_rect()
  13. print(position)
  14. #将矩形的正中心移动到屏幕的正中心
  15. position.center = width // 2, height // 2
  16. print(position)

  17. def blit_alpha(target, source, location, opacity):
  18.     x = location[0]
  19.     y = location[1]
  20.     #convert得到的不带a通道surfeace对象,a通道表示透明度
  21.     temp = pygame.Surface((source.get_width(), source.get_height())).convert()
  22. #下面那一块不是很懂
  23.     temp.blit(target, (-x, -y ))
  24.     temp.blit(source, (0, 0))
  25.     temp.set_alpha(opacity)        
  26.     target.blit(temp, location)

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

  31.     screen.blit(background, (0, 0))
  32.     blit_alpha(screen, turtle, position, 200)
  33.    
  34.     pygame.display.flip()
  35.    
  36.     clock.tick(30)
复制代码


blit_alpha那一块。并不是很懂。。特别是 temp.blit(target, (-x, -y )),把屏幕刷到(-x,-y)上是什么意思。。
最佳答案
2018-7-31 17:14:33
先创建一个Scrface,把屏幕复制上去,刷上要刷上去的目标,然后补上透明度,最后把整个Surface移回来。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-31 17:14:33 | 显示全部楼层    本楼为最佳答案   
先创建一个Scrface,把屏幕复制上去,刷上要刷上去的目标,然后补上透明度,最后把整个Surface移回来。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-31 17:42:47 | 显示全部楼层
无符号整形 发表于 2018-7-31 17:14
先创建一个Scrface,把屏幕复制上去,刷上要刷上去的目标,然后补上透明度,最后把整个Surface移回来。

我想了很久为什么刷的是(-x,-y),是不是因为只有按照(-x,-y)刷,屏幕才不会留白,否则就会留白 py3的注解.png
就像这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-31 17:45:57 | 显示全部楼层
小小小小的鱼丶 发表于 2018-7-31 17:42
我想了很久为什么刷的是(-x,-y),是不是因为只有按照(-x,-y)刷,屏幕才不会留白,否则就会留白
就像这样

嗯。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-1 21:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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