阿里巴巴网站导航怎么做,建设营销型网站公司,wordpress 禁止,wordpress 视频幻灯片你在draw_sprite()中有事件循环#xff0c;所以它一直运行到游戏结束#xff0c;window.set_background永远不会执行。在您的代码构造不正确。在我试着更正它#xff0c;稍后再发送代码。在编辑#xff1a;如何组织代码的简单示例。在现在它在一个文件中。在Pygame中总是一…你在draw_sprite()中有事件循环所以它一直运行到游戏结束window.set_background永远不会执行。在您的代码构造不正确。在我试着更正它稍后再发送代码。在编辑如何组织代码的简单示例。在现在它在一个文件中。在Pygame中总是一个窗口所以不需要使PanelWidnow。在run()中有一个事件循环。所有代码都在窗口内(创建精灵更改背景绘图等)。在我将精灵添加到(python)列表并从列表中绘制所有精灵-player is exception-所以我只能从列表中移除最后一个精灵/If您需要更好的东西请参见pygame.sprite.Sprite()和pygame.sprite.Group()。在使用Arrows移动红球Space暂停游戏ESC退出。在最后我附上了我的位图。在import pygame#from pygame.locals import *## class for single sprite#class MySprite():def __init__(self, image, x, y):self.image pygame.image.load(image)image_rect self.image.get_rect()# Rect class to use Sprite collision detect - in the future# In rect you have sprite position and size# You can use self.rect.x, self.rect.y, self.rect.width, self.rect.height# and self.rect.center, self.rect.centerx, self.rect.top, self.rect.bottomright etc.self.rect pygame.rect.Rect(x, y, image_rect.width, image_rect.height)def draw(self, screen):screen.blit(self.image, self.rect)## class for player#class MyPlayer(MySprite):def __init__(self, image, x, y):# parent constructor always as a first in __init__MySprite.__init__(self, image, x, y)self.speed_x self.speed_y 0# -def set_speed(self, x, y):self.speed_x xself.speed_y y# -def update(self):self.rect.x self.speed_xself.rect.y self.speed_yif self.rect.centerx 0 :self.rect.centerx 800elif self.rect.centerx 800 :self.rect.centerx 0if self.rect.centery 0 :self.rect.centery 600elif self.rect.centery 600 :self.rect.centery 0#class Window():def __init__(self, width, height):#self.rect pygame.Rect(0, 0, width, height)# orself.width, self.height width, height#pygame.init()# most users and tutorials call it screenself.screen pygame.display.set_mode(self.rect.size)#############################################################self.foreground Noneself.background Noneself.set_background(background.jpg)self.set_foreground(ball3.png)#################################################self.player MyPlayer(ball1.png, 100, 200)self.sprites_list []self.add_sprite(MySprite(ball2.png, 100, 400))self.add_sprite(MySprite(ball2.png, 300, 500))self.add_sprite(MySprite(ball2.png, 300, 200))self.remove_last_sprite()# -# red text PAUSEfont pygame.font.SysFont(, 72)self.text_pause font.render(PAUSE, True, (255, 0, 0))# center text on screenscreen_center self.screen.get_rect().centerself.text_pause_rect self.text_pause.get_rect(centerscreen_center)#def add_sprite(self, sprite):self.sprites_list.append(sprite)#def remove_last_sprite(self):if self.sprites_list:del self.sprites_list[-1]#def draw_sprites(self, screen):for sprite in self.sprites_list:sprite.draw(screen)#def draw_background(self, screen):screen.fill((0,64,0)) # clear screen to greenif self.background:screen.blit(self.background, (0,0))#def draw_foreground(self, screen):if self.foreground:screen.blit(self.foreground, (0,0))#def draw_world(self, image):temp pygame.Surface(self.rect.size, pygame.SRCALPHA, 32).convert_alpha()image_rect image.get_rect()for x in range(0, self.rect.width, 60):for y in range(0,self.rect.width, 60):temp.blit(image,(x,y))return temp#def set_foreground(self, imageNone):if image:img pygame.image.load(image)self.foreground self.draw_world(img)#def set_background(self, imageNone):if image:self.background pygame.image.load(image)#def run(self):clock pygame.time.Clock()RUNNING TruePAUSED Falsewhile RUNNING:# - events -for event in pygame.event.get():if event.type pygame.QUIT:RUNNING Falseif event.type pygame.KEYDOWN:if event.key pygame.K_ESCAPE:RUNNING Falseelif event.key pygame.K_SPACE:PAUSED not PAUSEDif event.key pygame.K_UP:self.player.set_speed(0,-10)elif event.key pygame.K_DOWN:self.player.set_speed(0,10)elif event.key pygame.K_LEFT:self.player.set_speed(-10,0)elif event.key pygame.K_RIGHT:self.player.set_speed(10,0)if event.type pygame.KEYUP:if event.key in (pygame.K_UP, pygame.K_DOWN, pygame.K_LEFT, pygame.K_RIGHT):self.player.set_speed(0,0)# - changesif not PAUSED:# change elements positionself.player.update()# - draws -self.draw_background(self.screen)self.draw_foreground(self.screen)self.draw_sprites(self.screen)self.player.draw(self.screen)if PAUSED:# draw pause stringself.screen.blit(self.text_pause, self.text_pause_rect.topleft)pygame.display.update()# - FPS -clock.tick(25) # 25 Frames Per Seconds# - finish -pygame.quit()#Window(800,600).run()球1.pngball2.png球3.png在背景.jpg截图