整个图像在屏幕上的移动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了整个图像在屏幕上的移动相关的知识,希望对你有一定的参考价值。

我无法在pygame中移动屏幕上的图像。

我试图移动图像,但整个图像没有移动,但图像只是通过KEYDOWN扩展。

import sys
import pygame


def run_game():
    """An attempt to develop a simple game."""
    pygame.init()
    screen = pygame.display.set_mode((1200, 800))
    pygame.display.set_caption("Rocket")
    rocket_ship = pygame.image.load("images/alien_ship.bmp")
    rec = rocket_ship.get_rect()
    screen_rec = screen.get_rect()
    rec.centerx = screen_rec.centerx
    rec.bottom = screen_rec.bottom


    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_RIGHT:
                    rec.centerx += 5
                elif event.key == pygame.K_LEFT:
                    rec.centerx -= 5
        screen.blit(rocket_ship, rec)
        pygame.display.flip()


run_game()
答案

当问题说“图像正在扩展”时 - 我相信这只是以前图像的视觉假象未被删除。

如果该行:

screen.fill( 0,0,0 )  # paint the background black

在循环开始时添加:

while True:
    screen.fill( 0,0,0 )  # paint the background black
    for event in pygame.event.get():

这会从屏幕上移除以前画过的外星人。

处理此类事情的更好方法是使用pyGame's built in sprites。这可能看起来像是额外的工作,但将来会为你节省很多麻烦,因为很多涉及移动事物(以及检测碰撞等)的“琐事”已经由pygame的精灵代码处理。

以上是关于整个图像在屏幕上的移动的主要内容,如果未能解决你的问题,请参考以下文章

通过整个屏幕移动文本视图

如何在移动屏幕上的文本顶部对齐右侧图像

片段布局不覆盖整个屏幕

使用 jquery mobile 调整图像大小以适应移动设备上的屏幕

Android 在屏幕上拖放图像?

图像超过 iPhone 5 上的整个屏幕