Python 如何在pygame中使用按键移动背景图像?
我正在用pygame做游戏。在这个游戏中,背景图像很大。在屏幕上,玩家只能看到大约1/20的背景图像。我想,当玩家按下左、右、上或下箭头键时,背景图像会分别移动,但当玩家到达图像末端时,背景图像会停止移动。我不知道怎么做 我的代码到此为止:-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
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我已经扩展了这个例子。