我回来了...花了很多时间在我的游戏上工作后,我遇到了2个问题。他们都关心显示精灵和文本。第一个是闪烁的文字。我敢打赌,这发生在你们许多人身上,但通过谷歌搜索,我无法找到导致它的直接答案。如果任何人能够向我解释为什么当我将其闪光到屏幕时我的文字闪烁,我将不胜感激。在pygame中闪烁的文字和精灵
我的下一个问题几乎与我的第一个问题相同,除了它涉及一个精灵。我在游戏中添加了一些代码,告诉python在空格键被按下时从我的玩家精灵中射出一颗子弹。当我运行它时,我没有收到任何错误,并且我的子弹显示在屏幕上,然后立即消失。我猜这两个错误是直接相关的,但我不确定是什么原因造成的。
任何人都知道更多关于pygame的信息,可以请我向我解释是什么原因造成的,以便我可以确定一种解决问题的方法。
这里是我的碉堡(播放器)和子弹类:
class Bunker(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
bunker = pygame.image.load(bunk).convert_alpha()
self.image = bunker
self.rect = self.image.get_rect()
bunker_x = 160
bunker_y = 0
self.firecountdown = 0
def update(self, milli):
self.pos = self.rect
if (self.firecountdown > 0):
self.firecountdown -= milli
def collide(self, EnemyTank):
return pygame.sprite.collide_rect(self.rect, EnemyTank.rect)
def fire(self, bullet):
if (self.firecountdown <=0):
bullet.x = 165
bullet.y = 0
bullet.fired = True
bullet.speed = 100
self.firecountdown = 500
class Bullet(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
bullet = pygame.image.load(bull).convert_alpha()
self.image = bullet
self.rect = self.image.get_rect()
self.x = 0
self.y = 0
self.speed = 0
self.forwardx = 1
self.forwardy = 0
self.fired = False
def update(self):
self.pos = self.rect
self.x += self.forwardx * self.speed
self.y += self.forwardy * self.speed
if self.x > 640:
self.fired = False
和我的主回路的一部分:
font = pygame.font.SysFont('Courier', 76)
text = font.render('Game Over', True, (0,0,0))
if e_tank_x>640:
screen.blit(text, (100,100))
if bullet.fired == True:
screen.blit(bullet.image, (bullet.x, bullet.y))
+0
我认为你的子弹不会像消失得很快一样消失。尝试减慢一点。 –
+0
你如何添加子弹? –