У меня есть несколько проблем с этим кодом. Основная цель игры состоит в том, чтобы иметь врагов, появляющихся сверху экрана, и чтобы пользователь вводил слово в поле ввода, которое будет соответствовать слову врагов.
Моя первоначальная идея состояла в том, чтобы сохранить врагов как класс, который можно использовать для вызова нескольких врагов, но у меня были следующие проблемы:
- У врагов нет текста на коробке.
- Враги оттянуты слишком много раз, и это выглядит странно.
Код показан ниже:
class enemy(pg.sprite.Sprite):
def __init__(self,x,y,w,h,text,color):
pg.sprite.Sprite.__init__(self)
self.font = pg.font.SysFont("comicsansms",t5)
self.textSurf = self.font.render(text, 10, red)
self.image = pg.Surface((w,h))
w = self.textSurf.get_width()
h = self.textSurf.get_height()
x = random.randint(110,1000)
y = 0
pg.draw.rect(gameDisplay, white,(x,y,w,h))
textSurf, textRect = text_objects(text, self.font)
textRect.center = ((x+(w/2)), (y+(h/2)))
gameDisplay.blit(textSurf, textRect)
self.image.blit(self.textSurf,[w/2, h/2])
self.text = a
цикл:
def gameLoop():
enemyx = random.randint(100,900)
enemyy = -600
enemyw = 130
enemyh = 50
enemySpeed = 10
enemyword = a
gameDisplay.fill(bg_color)
pg.display.update()
End = False
while not End:
for event in pg.event.get():
if event.type == pg.QUIT:
pg.quit()
quit()
button("Back", 10,10,130,50,D_orange, orange, gameIntro)
pg.display.update()
gameDisplay.fill(bg_color)
button("Back", 10,10,130,50,D_orange, orange, gameIntro)
enemy(enemyx,enemyy,enemyw,enemyh,white,enemyword)
pg.display.update()
enemyy +=2
if enemyy >=850:
enemyy = 0-enemyh
enemyx = random.randint(100,900)
pg.display.update()
a соответствует случайному слову из словаря.