У меня было несколько проблем с этим кодом Pygame - PullRequest
0 голосов
/ 26 января 2019

У меня есть несколько проблем с этим кодом. Основная цель игры состоит в том, чтобы иметь врагов, появляющихся сверху экрана, и чтобы пользователь вводил слово в поле ввода, которое будет соответствовать слову врагов.

Моя первоначальная идея состояла в том, чтобы сохранить врагов как класс, который можно использовать для вызова нескольких врагов, но у меня были следующие проблемы:

  1. У врагов нет текста на коробке.
  2. Враги оттянуты слишком много раз, и это выглядит странно.

Код показан ниже:

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 соответствует случайному слову из словаря.

1 Ответ

0 голосов
/ 27 января 2019

Я неправильно понял параметры, которые привели к тому, что враги не были втянуты. Тем не менее, текст по-прежнему правильный, так как я хочу, чтобы текст был случайным словом, которое сохраняется как «а». Спасибо @ Rabbid76 за то, что увидел и ответил на мою ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...