我回来了。。。花了很多时间在我的游戏上之后,我遇到了两个问题。它们都是关于展示精灵和文字的。第一个是,闪烁的文字。我敢说你们中的很多人都遇到过这种情况,但通过谷歌搜索,我无法找到导致这种情况的直接答案。如果有人能解释一下为什么我的文字在屏幕上闪烁,我将不胜感激。在
我的下一个问题和我的第一个问题几乎一样,只是涉及一个精灵。我在游戏中添加了一些代码,告诉python在按下空格键时从我的player sprite中发射子弹。当我运行它,我没有错误,我的子弹显示在我的屏幕上,然后立即消失。我猜这两个错误是直接相关的,但我不确定是什么引起的。在
任何比我更了解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
我的主循环的一部分:
^{pr2}$
为了避免闪烁,请确保您只有一个呼叫pygame.display.update或者pygram.display.flip每帧。调用通常在主循环的末尾,在时钟滴答声(fps)呼叫。在
示例:
我知道子弹的问题,当你开枪的时候,你就真的放火了。然后,你把子弹打成假。问题是,看起来你只是在开火的时候才开枪。那就意味着你把子弹画出来,然后把它画成假画
相关问题 更多 >
编程相关推荐