python - 如何将 blit 包裹在屏幕边缘?

标签 python pygame screen blit

给定一张图像,如何将该图像“包裹”在屏幕上?

例如,如果将图像的矩形样式对象设置在屏幕边缘下方,则不可见的一半将传输到屏幕顶部。

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

关于python - 如何将 blit 包裹在屏幕边缘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28326911/

相关文章:

html - 在网页上模拟设备屏幕

Python - 将数据从一个文件复制到另一个文件

python - Flask 按时间限制用户 session

python 2.6,pygame,乒乓球不会正确地在 y 坐标上移动

python - Pygame崩溃了?

Android:启动画面和网页 View

android - 如何以编程方式在android中创建视频

python - 在Python中创建具有列键和行键的二维数组

python - 从主脚本独立运行外部 python 脚本

python - 如何在 python 的主函数中运行函数?