0

我正在尝试使用 numpy.roll() 在 pygame 中的 pixel2d 对象上水平滚动世界地图。

这是我正在使用的图片,但在 .bmp 中:图像1

这就是我得到的:图2

我尝试改变 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)
4

1 回答 1

0

这是在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()
于 2017-01-14T11:13:15.680 回答