我的RPG代码: import pygame,sys 来自pygame.locals import * pygame.init()
pygame.mixer.init()
pygame.mixer.music.load("nq-rotmg.mp3")
pygame.mixer.music.play(-1)
FPS = 30
fpsClock = pygame.time.Clock()
pywindow = pygame.display.set_mode((500, 500))
pygame.display.set_caption('God of the Mad Realm')
WHITE = (255, 255, 255)
background = pygame.image.load("Background.jpg")
pywindow.blit(background, (0, 0))
pygame.display.flip()
rogueImg = pygame.image.load('Rogue.png')
roguex = 10
roguey = 10
pygame.key.set_repeat(10, 10)
while True:
for event in pygame.event.get():
if event.type==QUIT:
pygame.quit()
sys.exit()
keys_pressed = pygame.key.get_pressed()
if keys_pressed[K_LEFT]:
roguex -= 3
if keys_pressed[K_RIGHT]:
roguex += 3
if keys_pressed[K_UP]:
roguey -= 3
if keys_pressed[K_DOWN]:
roguey += 3
pywindow.blit(rogueImg, (roguex, roguey))
pygame.display.update()
fpsClock.tick(FPS)
问题的屏幕截图:
它只是给了我这个有趣的白色像素化背景...... 谢谢大家和任何帮助!
答案 0 :(得分:0)
在你的主循环(while True
循环)中,你只需要在流氓的形象之前blit背景图像。就在你做之前
pywindow.blit(rogueImg, (roguex, roguey))
你应该做
pywindow.blit(background, (0, 0))
问题在于,正如您的代码所示,背景将被绘制一次。当你将精灵放在背景上时,你需要重新绘制背景。
答案 1 :(得分:0)
您可以通过设置图像的颜色键来阻止图像的白色部分显示:
rogueImg = pygame.image.load('Rogue.png')
rogueImg.set_colorkey((255,255,255))#sets the colorkey to white
顺便说一下:很长一段时间我使用大图像时遇到了pygame的速度问题。
所以一般来说,最好在blitting之前转换图像:
background = pygame.image.load("Background.jpg")
background = background.convert()
我希望我的想法会对你有所帮助。
答案 2 :(得分:0)
我不认为你更新你的背景。把它放在while循环中。
pywindow.blit(background,(0,0))
(流氓之前。)
希望这有帮助!