Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 调整rect的图像_Python_Pygame - Fatal编程技术网

Python 调整rect的图像

Python 调整rect的图像,python,pygame,Python,Pygame,我想移动一个Rect对象的图像,这可能吗 示例: 1-使水成为动画瀑布(使水图像滚动) 2-调整图像的位置,而不是矩形 注意:这些只是示例,不是我正在处理的代码您可以使用将曲面图像移动到位。例如,打电话 water\u surf.滚动(0,1) 然而,这不会让你满意。见: 将图像向右移动dx像素,向下移动dy像素。dx和dy可能分别为左滚动和上滚动的负数未被覆盖的曲面区域保留其原始像素值 您可能希望编写一个函数,用滚动出表面的像素覆盖未覆盖的区域: def scroll__y(surf,dy)

我想移动一个Rect对象的图像,这可能吗

示例: 1-使水成为动画瀑布(使水图像滚动) 2-调整图像的位置,而不是矩形


注意:这些只是示例,不是我正在处理的代码

您可以使用将曲面图像移动到位。例如,打电话

water\u surf.滚动(0,1)
然而,这不会让你满意。见:

将图像向右移动dx像素,向下移动dy像素。dx和dy可能分别为左滚动和上滚动的负数未被覆盖的曲面区域保留其原始像素值

您可能希望编写一个函数,用滚动出表面的像素覆盖未覆盖的区域:

def scroll__y(surf,dy):
滚动\u surf=surf.copy()
滚动浏览滚动(0,dy)
如果dy>0:
滚动\u surf.blit(surf,(0,dy surf.get\u height())
其他:
滚动_surf.blit(surf,(0,surf.get_height()+dy))
返回滚动浏览
每帧一次,创建瀑布般的水流效果

要使图像在矩形区域居中,需要获取图像的边界矩形,并通过区域中心设置矩形的中心。使用矩形来
blit
图像:

area_rect=pygame.rect(x,y,w,h)
image_rect=surf.get_rect()
image_rect.center=区域_rect.center
屏幕。blit(浏览、图像校正)
同一行:

screen.blit(surf,surf.get_-rect(center=area_-rect.center))

最简单的例子:

导入pygame
def scroll__y(冲浪,dy):
滚动\u surf=surf.copy()
滚动浏览滚动(0,dy)
如果dy>0:
滚动\u surf.blit(surf,(0,dy surf.get\u height())
其他:
滚动_surf.blit(surf,(0,surf.get_height()+dy))
返回滚动浏览
pygame.init()
window=pygame.display.set_模式((400400))
clock=pygame.time.clock()
rain\u surf=pygame.image.load('rain.png')
dy=0
运行=真
运行时:
时钟滴答(60)
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
window\u center=window.get\u rect().center
scroll\u surf=滚动y(雨浪,dy)
dy=(dy+1)%rain\u surf.get\u height()
窗口填充(0)
blit(scroll\u surf,scroll\u surf.get\u rect(center=window\u center))
pygame.display.flip()
pygame.quit()
退出()

这部电影非常出色!然而,我怎样才能在一张直截了当的照片上绕道而行呢?@MottledKarma517评论部分并不打算提出后续问题。不管怎样,我已经扩展了Answare。