Я работаю над финальным проектом для моего класса Python. Я делаю игру, используя библиотеку Pygame. Я хотел бы создать начальный экран, на котором пользователь может либо щелкнуть, чтобы начать, либо перейти в «магазин», где он может делать внутриигровые покупки. Однако я не знаю, как это структурировать. Я создал магазин, но я не знаю, где его разместить. Я помещаю это в цикл времени? Это то, что я сделал до сих пор ...
Должен ли я сделать нажатие кнопки мыши для инициализации? Куда мне поместить следующий код, если цвет == красный? (Это цвет кнопки «магазин») ... прямо сейчас, когда я запускаю программу, она сразу же попадает в игру, потому что нигде не нажимали.
while playing:
num_spikes = []
num_walls = []
keys = pygame.key.get_pressed()
store = Button(600, 500, display)
store.paint_button()
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT:
carryOn = False
if event.type == pygame.MOUSEBUTTONDOWN:
xpos, ypos = event.pos
color = display.get_at((xpos, ypos))[:3]
if color == red:
display.fill((0,0,0))
pygame.draw.rect(display, blue, [100, 100, 800, 500], 0)
pygame.draw.rect(display, white, [150, 150, 350, 350], 0)
pygame.draw.rect(display, white, [375, 150, 575, 350], 0)
display.blit(pygame.image.load("spike.png"), (160, 160))
display.blit(pygame.image.load("brick.png"), (385, 160))
text_input_spikes = pygame_textinput.TextInput()
text_input_spikes.update(pygame.event.get())
display.blit(text_input_spikes.get_surface(), (120,160))
pygame.display.update()
display.fill(white)
if keys[pygame.K_LEFT]:
s1.moveLeft(15)
if keys[pygame.K_RIGHT]:
s1.moveRight(15)
if keys[pygame.K_UP]:
s1.moveUp(15)
if keys[pygame.K_DOWN]:
s1.moveDown(15)
if keys[pygame.K_ESCAPE]:
exit()
if m1.rect.y > 600:
m1.changeSpeed(random.randint(50,100))
m1.repaint(random.choice(colorList))
m1.rect.y = -200
crashes = pygame.sprite.spritecollide(s1, monsters, False)
for crash in crashes:
carryOn=False
exit()
m1.draw(display)
s1.draw(display)
m1.update(s1)
s1.update()
pygame.display.update()
pygame.display.flip()
pygame.quit()