Python 如何在pygame中使用按键移动背景图像?

Python 如何在pygame中使用按键移动背景图像?,python,python-3.x,pygame,Python,Python 3.x,Pygame,我正在用pygame做游戏。在这个游戏中,背景图像很大。在屏幕上,玩家只能看到大约1/20的背景图像。我想,当玩家按下左、右、上或下箭头键时,背景图像会分别移动,但当玩家到达图像末端时,背景图像会停止移动。我不知道怎么做 我的代码到此为止:- import pygame FPS = 60 screen = pygame.display.set_mode((1000, 1000)) bg = pygame.image.load('map.png') clock = pygame.time.Cl

我正在用pygame做游戏。在这个游戏中,背景图像很大。在屏幕上,玩家只能看到大约1/20的背景图像。我想,当玩家按下左、右、上或下箭头键时,背景图像会分别移动,但当玩家到达图像末端时,背景图像会停止移动。我不知道怎么做

我的代码到此为止:-

import pygame

FPS = 60
screen = pygame.display.set_mode((1000, 1000))
bg = pygame.image.load('map.png')

clock = pygame.time.Clock()

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


提前感谢:-

通过
Get_size()
获取背景和屏幕的sice:

screen\u size=screen.get\u size()
bg_size=bg.get_size()
在范围[0,
bg\u size[0]-屏幕大小[0]
]中定义背景的初始开始。e、 g.背景中心:

bg_x=(bg_大小[0]-屏幕大小[0])//2
通过
pygame.key.Get_pressed()
获取按键状态列表:

keys=pygame.key.get_pressed()
根据左右两侧的状态更改
bg_x

if键[pygame.K_左]:
bg_x-=10
如果键[pygame.K_RIGHT]:
bg_x+=10
bg_x
夹紧到范围[0,
bg_大小[0]-屏幕大小[0]
]:

bg_x=max(0,min(bg_大小[0]-屏幕大小[0],bg_x))
blit
屏幕上
-bg_x
处的背景:

screen.blit(bg,(-bg_x,0))
请参见示例:

导入pygame
FPS=60
screen=pygame.display.set_模式((10001000))
bg=pygame.image.load('map.png')
screen\u size=screen.get\u size()
bg_size=bg.get_size()
bg_x=(bg_大小[0]-屏幕大小[0])//2
bg_y=(bg_大小[1]-屏幕大小[1])//2
clock=pygame.time.clock()
尽管如此:
时钟滴答声(FPS)
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
退出()
keys=pygame.key.get_pressed()
如果键[pygame.K_左]:
bg_x-=10
如果键[pygame.K_RIGHT]:
bg_x+=10
如果键[pygame.K_UP]:
bg_y-=10
如果键[pygame.K_DOWN]:
bg_y+=10
bg_x=最大值(0,最小值(bg_大小[0]-屏幕_大小[0],bg_x))
bg_y=max(0,min(bg_大小[1]-屏幕大小[1],bg_y))
屏幕光点(背景,(-bg_x,-bg_y))
pygame.display.flip()

您是否尝试过在屏幕上绘制部分背景?太好了,效果非常好。但是,为了上下移动。我们可以通过创建和维护一个名为bg的变量来实现同样的功能吗_y@programmerpro我已经扩展了这个例子。