我正在尝试使用numpy.roll()水平滚动世界地图 pygame中的pixels2d对象。
这是我正在使用的图片,但是在.bmp:
这就是我得到的:
我尝试更改np.roll()的轴,但它似乎没有太大影响结果。
我做错了什么?
这是我的代码:
import pygame as pg, numpy as np
pg.init()
world_map = pg.image.load('Miller.bmp')
screen = pg.display.set_mode(world_map.get_size())
world_map = pg.surfarray.pixels2d(world_map)
while 1:
np.roll(world_map,1)
screen.blit(pg.surfarray.make_surface(world_map), (0,0))
pg.display.flip()
pg.time.wait(1000)
答案 0 :(得分:0)
以下是在此repository from furas:
的帮助下修改后的代码import pygame as pg
clock = pg.time.Clock()
pg.init()
world_map = pg.image.load('Miller.bmp')
w, h = world_map.get_size()
screen = pg.display.set_mode(world_map.get_size())
FPS = 60
offset = 0
is_running = True
while is_running:
for event in pg.event.get():
if event.type == pg.QUIT:
is_running = False
elif event.type == pg.KEYDOWN:
if event.key == pg.K_ESCAPE:
is_running = False
offset += 1
if offset >= w:
offset = 0
screen.blit(world_map, (0,0), (offset, 0, w, h))
screen.blit(world_map, (w-offset,0), (0, 0, offset, h))
pg.display.flip()
clock.tick(FPS)
pg.guit()