Pygame像素阵列提供奇怪的颜色并立即冻结

2024-04-19 04:07:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用水平滚动世界地图numpy.roll公司()开 pygame中的一个像素2D对象。在

这是我正在使用的图片,但是在.bmp:image1

这就是我得到的:image2

我试着改变np.滚动(),但似乎对结果影响不大。在

我是不是做错了什么可怕的事?在

这是我的代码:

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)

Tags: numpymapworldasdisplaynp水平公司
1条回答
网友
1楼 · 发布于 2024-04-19 04:07:21

以下是在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()

相关问题 更多 >