如何在屏幕边缘包裹blit?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在屏幕边缘包裹blit?相关的知识,希望对你有一定的参考价值。

给定一个图像,如何在屏幕周围“包裹”该图像?

例如,如果将图像的rect样式对象设置在屏幕边缘下方,则不可见的一半会​​在屏幕顶部显示。

imageRect.top=800 #Below screen edge
screen.blit(image,imageRect) #Blit on both sides of the screen

这有可能吗(在pygame中)?

答案

当我尝试侧面包裹并收集风格游戏时,我遇到了同样的问题。在进一步检查时,我发现了一种通过两个图像实现这一壮举的方法。以下是我使用的代码。

首先创建两个变量display_widthdisplay_height这些是你的游戏窗口的宽度和高度。

display_width = [width of window]
display_height = [height of window]

接下来为第一个和第二个图像的“x”位置再创建两个变量。然后在obj_width变量下声明图像宽度(以像素为单位)。

img_x = ['x' position of first image]
img2_x = ['x' position of second image, works best with same 'x' as 'img_x' above]
obj_width = [width of img]

现在制作一个带有img_ximg_y的图像功能。 img_x是一个局部变量,不要与其他img_x混淆。

def img(img_x,img_y):
    screen.blit([image file here], (img_x,img_y))

以下是我用于该计划的条件。随意复制和粘贴。

if img_x + img_width > display_width:
    img(img2_x, display_height * 0.8)
    img2_x = img_x - display_width
if img_x < 0:
    img(img2_x, display_height * 0.8)
    img2_x = img_x + display_width

if img2_x + bag_width > display_width:
    img(img_x, [where you want the image to appear, ex. display_height * 0.8])
    img_x = img2_x - display_width
if img2_x < 0:
    img(img_x, display_height * 0.8) #same as above
    img_x = img2_x + display_width

在此示例中,图像会水平移动,如果您想要垂直移动,只需根据您的喜好更改变量。我希望这可以回答你的问题,如果某些内容不能正常工作,或者他们有任何拼写错误,请随时在下面发表评论。我知道这是大约一年前发布的问题,如果为时已晚,那就太抱歉了。

祝你好运,JC

另一答案

我认为没有内置任何东西;只是找出图像中垂直和水平分割的位置,然后执行多个blits。

以上是关于如何在屏幕边缘包裹blit?的主要内容,如果未能解决你的问题,请参考以下文章

Pygame blit图像与鼠标事件

如何让卡片组不包裹在小屏幕上?

CSS 显示代码片段:使用PRE标记包裹长行

如何强制Margin-left(marginStart)在片段中成像?

如何让 UIImageView 的边缘捕捉到屏幕的边缘(超级视图)?

用于数据加载的 Android 活动/片段职责