首页 > 解决方案 > 图像在 Pygame 中不动

问题描述

# import pygame module in this program 
import pygame 
  
# activate the pygame library . 
# initiate pygame and give permission 
# to use pygame's functionality. 
pygame.init() 
  
# define the RGB value 
# for white colour 
white = (255, 255, 255) 
  
# assigning values to X and Y variable 
X = 800
Y = 500
xa=0
ya=0  
# create the display surface object 
# of specific dimension..e(X, Y). 
display_surface = pygame.display.set_mode((X, Y )) 
  
# set the pygame window name 
pygame.display.set_caption('Image') 
  
# create a surface object, image is drawn on it. 
image = pygame.image.load(r'ball.png') 
  
# infinite loop 
while True : 
    xa+=1
    ya+=1
    # completely fill the surface object 
    # with white colour 
    display_surface.fill(white) 
  
    # moving the image surface object 
    # to the display surface object at 
    display_surface.blit(image, (xa, ya))
    # iterate over the list of Event objects 
    # that was returned by pygame.event.get() method. 
    for event in pygame.event.get() : 
  
        # if event object type is QUIT 
        # then quitting the pygame 
        # and program both. 
        if event.type == pygame.QUIT : 
  
            # deactivates the pygame library 
            pygame.quit() 
  
            # quit the program. 
            quit() 
        # Draws the surface object to the screen.   
        pygame.display.update()

由于我是初学者,我正在尝试使图像朝特定方向移动。但图像并没有移动。我是 python 新手,所以我很难弄清楚错误是什么,所以请告诉我有什么问题。

标签: pythonpygame

解决方案


您将更新功能放在错误的循环中,尝试此代码,它应该可以工作。

# import pygame module in this program 
import pygame 

# activate the pygame library . 
# initiate pygame and give permission 
# to use pygame's functionality. 
pygame.init() 

# define the RGB value 
# for white colour 
white = (255, 255, 255) 

# assigning values to X and Y variable 
X = 800
Y = 500
xa=0
ya=0  
# create the display surface object 
# of specific dimension..e(X, Y). 
display_surface = pygame.display.set_mode((X, Y )) 

# set the pygame window name 
pygame.display.set_caption('Image') 

# create a surface object, image is drawn on it. 
image = pygame.image.load(r'ball.png') 

# infinite loop 
while True : 
    xa+=1
    ya+=1
    # completely fill the surface object 
    # with white colour 
    display_surface.fill(white) 

    # moving the image surface object 
    # to the display surface object at 
    display_surface.blit(image, (xa, ya))
    # iterate over the list of Event objects 
    # that was returned by pygame.event.get() method. 
    for event in pygame.event.get() : 

        # if event object type is QUIT 
        # then quitting the pygame 
        # and program both. 
        if event.type == pygame.QUIT : 

            # deactivates the pygame library 
            pygame.quit() 

            # quit the program. 
            quit() 
        # Draws the surface object to the screen.   
    pygame.display.update()

推荐阅读