Python 如何删除绘制的项目符号并添加图像作为一个项目符号,一次发射一个项目符号?

Python 如何删除绘制的项目符号并添加图像作为一个项目符号,一次发射一个项目符号?,python,pygame,Python,Pygame,我是一个编程高手!我实际上有三件事要问!我看了一些关于使用python制作游戏的教程,从中我制作了一个游戏类型的东西!在其中,我画了子弹,我想改变为图像,它在一次点击发射所有我还想发射一颗子弹一次,我还想我的角色做一个双跳。感谢访问!请帮帮我 import pygame pygame.init() class projectile(object): def __init__(self,x,y,radius,color,facing): self.x = x

我是一个编程高手!我实际上有三件事要问!我看了一些关于使用python制作游戏的教程,从中我制作了一个游戏类型的东西!在其中,我画了子弹,我想改变为图像,它在一次点击发射所有我还想发射一颗子弹一次,我还想我的角色做一个双跳。感谢访问!请帮帮我

import pygame
pygame.init()

class projectile(object):
    def __init__(self,x,y,radius,color,facing):
        self.x = x
        self.y = y
        self.radius = radius
        self.color = color
        self.facing = facing
        self.vel = 8 * facing

    def draw(self,win):
        pygame.draw.circle(win, self.color, (self.x,self.y), self.radius)



def redrawGameWindow():
    win.blit(bg, (0,0))
    man.draw(win)
    for bullet in bullets:
        bullet.draw(win)
    
    pygame.display.update()


#mainloop
man = player(200, 410, 64,64)
bullets = []
run = True
while run:
    clock.tick(27)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        
    for bullet in bullets:
        if bullet.x < 500 and bullet.x > 0:
            bullet.x += bullet.vel
        else:
            bullets.pop(bullets.index(bullet))

    keys = pygame.key.get_pressed()

    if keys[pygame.K_c]:
        if man.left:
            facing = -1
        else:
            facing = 1
            
        if len(bullets) < 3:
            bullets.append(projectile(round(man.x + man.width //2), round(man.y + man.height//2), 6, (0,0,0), facing))

    if keys[pygame.K_a] and man.x > man.vel:
        man.x -= man.vel
        man.left = True
        man.right = False
        man.standing = False
    elif keys[pygame.K_d] and man.x < 500 - man.width - man.vel:
        man.x += man.vel
        man.right = True
        man.left = False
        man.standing = False
    else:
        man.standing = True
        man.walkCount = 0
        
    if not(man.isJump):
        if keys[pygame.K_SPACE]:
            man.isJump = True
        if man.left:
            facing = -1
        else:
            facing = 1
            man.walkCount = 0
    else:
        if man.jumpCount >= -8:
            neg = 1
            if man.jumpCount < 0:
                neg = -1
            man.y -= (man.jumpCount ** 2) * 0.5 * neg
            man.jumpCount -= 1
        else:
            man.isJump = False
            man.jumpCount = 8
            
    redrawGameWindow()

pygame.quit()
导入pygame
pygame.init()
类(对象):
定义初始(自、x、y、半径、颜色、面):
self.x=x
self.y=y
自半径=半径
self.color=颜色
自我面对
self.vel=8*端面
def抽签(自我,赢):
pygame.draw.circle(赢,self.color,(self.x,self.y),self.radius)
def重画游戏窗口():
温·布利特(背景,(0,0))
男子平局(胜利)
对于子弹中的子弹:
子弹。抽签(赢)
pygame.display.update()
#主回路
男子=运动员(20041064,64)
项目符号=[]
运行=真
运行时:
时钟滴答作响(27)
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
对于子弹中的子弹:
如果bullet.x<500且bullet.x>0:
bullet.x+=bullet.vel
其他:
子弹.弹孔(子弹.索引(子弹))
keys=pygame.key.get_pressed()
如果键[pygame.K_c]:
如果男子离开:
正面=-1
其他:
朝向=1
如果长度(项目符号)<3:
子弹。附加(投射物(圆形(man.x+man.width//2),圆形(man.y+man.height//2),6,(0,0,0),面向))
如果键[pygame.K_a]和man.x>man.vel:
man.x-=man.vel
左=真
对=错
站着的人
elif键[pygame.K_d]和man.x<500-man.width-man.vel:
man.x+=man.vel
正确的
左=假
站着的人
其他:
站着
man.walkCount=0
如果没有(man.isJump):
如果键[pygame.K_SPACE]:
man.isJump=True
如果男子离开:
正面=-1
其他:
朝向=1
man.walkCount=0
其他:
如果man.jumpCount>=-8:
负=1
如果man.jumpCount<0:
负=-1
man.y-=(man.jumpCount**2)*0.5*neg
man.jumpCount-=1
其他:
man.isJump=False
人.跳数=8
重画游戏窗口()
pygame.quit()

如果您只想在按下c键时发射一颗子弹,则执行
按键事件(请参阅):

运行时:
# [...]
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
如果event.type==pygame.KEYDOWN:
如果event.key==pygame.K_c:
正面=-1如果是人,则为左,否则为1
如果长度(项目符号)<3:
startPos=圆形(man.x+man.width//2),圆形(man.y+man.height//2)
子弹。附加(射弹(startPos,6,(0,0,0),正面)
# [...]
#删除
#如果键[pygame.K_c]:
#如果男子离开:
#正面=-1
#其他:
#朝向=1
#        
#如果长度(项目符号)<3:
#项目符号。附加(…)

只要按住键,键[pygame.K_c]
的状态就是
True
。这导致只要按下该键,每帧发射1颗子弹。按下某个键时,
KEYDOWN
事件只执行一次。

很抱歉,我遇到了一个错误facing=-1 if man.left else 1^缩进错误:应为缩进块“``@Pranish我的答案中有缩进错误。我现在已经修好了。如果event.key==pygame.K\u c:之后的4行缩进不正确。