我是Python和Pygame的新手,我开始制作一个简单的游戏,在飞到敌人上方的玩家下面射击,以测试我所学到的东西。当它运行时,我只得到错误,说它不需要字符串。具体如下:
bgi="bg.png" #BACKGROUND IMAGE
pi="man.png" #PLAYER IMAGE
proji="proj.png" #PROJECTILE IMAGE
import pygame, sys #Import
from pygame.locals import * #Import
pygame.init() #Initialize
screen=pygame.display.set_mode((1000,600),0,32) #Display
background=pygame.image.load(bgi).convert() #Background
player=pygame.image.load(pi).convert_alpha() #Player
proji2=pygame.transform.rotate(proji, 180) #Rotate
x=0 #variables
y=0
mx=0
mv=0
projiy=0
player.pos=(x,y)
while True: #Loop
for event in pygame.event.get():
if event.type==QUIT: #X Clicked
pygame.quit()
sys.exit()
if event.type==KEYDOWN: #Key Press
if event.key==K_a:
mx=-1
elif event.key==K_d:
mx=+1
elif event.key==K_s:
screen.blit(proji2, player.pos)
my=+1
if event.type==KEYUP: #Key Release
if event.key==K_a:
mx=0
elif event.key==K_d:
mx=0
elif event.key==K_s:
my=0
x+=mx
projiy+=mv
screen.blit(background, (0,0)) #Display
screen.blit(player, (x,y))
pygame.display.update() #Update谁能帮我找出错误,并向我解释为什么它们是错误的?谢谢!
发布于 2012-10-22 07:09:57
看起来你忘了把"proj.png“转换成一个表面了。它仍然是您从未实际打开的文件的字符串名称。
发布于 2016-01-07 22:47:20
将前三行代码替换为以下代码:
bgi=pygame.image.load("bg.png").convert_alpha()
pi=pygame.image.load("man.png").convert_alpha()
proji=pygame.image.load("proj.png").convert_alpha()不能在屏幕上显示字符串,只能显示表面。您需要使用pygame.image.load将其转换为曲面。在末尾添加.convert_alpha()可以极大地提高帧率,但这并不是绝对必需的,尽管强烈建议这样做。
祝你玩得开心!
https://stackoverflow.com/questions/13003087
复制相似问题