Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Can';不要在pygame中正确执行投射物操作_Python_Python 3.x_Pygame - Fatal编程技术网

Python Can';不要在pygame中正确执行投射物操作

Python Can';不要在pygame中正确执行投射物操作,python,python-3.x,pygame,Python,Python 3.x,Pygame,尝试使用pygame启用射弹射击。在我按下空格键后,它只发射1发炮弹,fps从100下降到30,玩家角色不能移动,对按下按钮没有反应。在射弹停止被设置动画后,fps返回到100,我可以移动并发射最多3个射弹(按计划),但fps再次下降,直到最后一个射弹到达边界我才能移动 我有一个子弹图像正在加载,而不是以前画的子弹,并认为它的情况下。但结果没有改变。我还尝试重新排序blit()函数,但也没有改变 class Game(): #一些游戏材料和功能 定义初始化(自): self.x_默认值=800

尝试使用pygame启用射弹射击。在我按下空格键后,它只发射1发炮弹,fps从100下降到30,玩家角色不能移动,对按下按钮没有反应。在射弹停止被设置动画后,fps返回到100,我可以移动并发射最多3个射弹(按计划),但fps再次下降,直到最后一个射弹到达边界我才能移动

我有一个子弹图像正在加载,而不是以前画的子弹,并认为它的情况下。但结果没有改变。我还尝试重新排序
blit()
函数,但也没有改变

class Game():
#一些游戏材料和功能
定义初始化(自):
self.x_默认值=800
self.y_默认值=600
self.screen=pygame.display.set_模式((self.x_默认,self.y_默认))
#self.background=pygame.image.load('IMGs/BCK2.bmp').convert()
self.title='title'
self.fps=100
类():
#这门课是用来制作射弹的
def uuuu init uuuuuuuuuuuuuuuuuuu(自身,x,y,速度x=5,方向=1,宽度=10,高度=10):
#x&y-射弹的起始位置
#speed_x&speed_y-射弹在#oX&oY中的起始移动速度
#a-速度随时间增加(暂时取消)
#方向-保留其名称
#方向:[2,3,1,4,5,6,-1,7]从0:00开始,向时钟右侧移动
self.x=x
self.y=y
self.speed\u x=速度
方向
self.width=宽度
自我高度=高度
self.img=pygame.Rect(self.x、self.y、self.width、self.height)
def移动_射弹(自身、x、速度_x、方向):
#搬家
#目前,方向仅在左右方向起作用(1表示右,1表示左)
x+=速度x*方向
返回x
而1:
如果pygame.event.poll().type==pygame.QUIT:
sys.exit()
对于射弹中的pr:
如果(pr.x>=-pr.width)和(pr.x 0:
投射物.append(投射物(x=P.x+P.width,y=P.y+P.height//2,方向=1))
其他:
投射物.append(投射物(x=P.x,y=P.y+P.height//2,方向=-1))
#------闪电战进程--------------
屏幕光点(背景(0,0))
G.screen.blit(Block1.img,(Block1.x,Block1.y))
G.screen.blit(Block2.img,(Block2.x,Block2.y))
对于射弹中的pr:
pygame.draw.rect(G.screen,(0,0,0),pr.img)
屏幕光点(P.img,(P.x,P.y))
pygame.display.update()
pygame.时间延迟(1000//G.fps)

键[pygame.K_SPACE]
True
只要按住空格,这意味着只要按住键,就会连续生成多个项目符号

如果要创建单个项目符号,请在按下空格键时使用
向下键
事件(请参阅)。
该事件仅在每次按键时发生一次。例如:

而1:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
sys.exit()
elif event.type==pygame.KEYDOWN:
如果event.key==pygame.K_空间:
如果len(射弹)<3:
如果P.方向>0:
投射物.append(投射物(x=P.x+P.width,y=P.y+P.height//2,方向=1))
其他:
投射物.append(投射物(x=P.x,y=P.y+P.height//2,方向=-1))
keys=pygame.key.get_pressed()
# [...]

(我正确编辑了所有内容,但它希望我按CTRL+K,否则它不会显示我的问题)