Python 如何删除绘制的项目符号并添加图像作为一个项目符号,一次发射一个项目符号?
我是一个编程高手!我实际上有三件事要问!我看了一些关于使用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
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行缩进不正确。