2014-02-02 2 views
0

Для следующего кода возникает проблема. Я создаю главное меню для своей игры. Существует два варианта «Начать игру» и «Выход». Проблема у меня в том, что, когда я хочу нажать на стартовую игру, ничего не происходит.Меню pygame не работает?

Я получаю сообщение об ошибке сказав: «..„Модуль“объект не имеет атрибут„старт“, я не знаю, что это значит

я еще называют„бс“(Bubble Shooter) Это. мой основной код файла. Когда я нажимаю начало файла меню, как я могу получить его, чтобы перейти к файлу Bs, чтобы играть в эту игру? Спасибо за помощь!

import pygame, os, random, math 

WINDOWWIDTH = 640 
WINDOWHEIGHT = 480 
STARTX = WINDOWWIDTH/2 
STARTY = WINDOWHEIGHT - 27 
BLUE = (0,0,205) 
WHITE = (255,255,255) 
BLUE = (0,0,205) 
upper_border = pygame.Rect(12,44,448,20) #done this 
right_border = pygame.Rect(440,60,20,448) #done this 
left_border = pygame.Rect(12,60,20,648) # done this 
down_border = pygame.Rect(12,280,448,20) #done this 

class Option: 

hovered = False 

def __init__(self, text, pos): 
    self.text = text 
    self.pos = pos 
    self.set_rect() 
    self.draw() 

def draw(self): 
    self.set_rend() 
    screen.blit(self.rend, self.rect) 

def set_rend(self): 
    self.rend = menu_font.render(self.text, True, self.get_color()) 

def get_color(self): 
    if self.hovered: 
     return (255, 255, 255) 
    else: 
     return (100, 100, 100) 

def set_rect(self): 
    self.set_rend() 
    self.rect = self.rend.get_rect() 
    self.rect.topleft = self.pos 

pygame.init() 
screen = pygame.display.set_mode((480, 320)) 
menu_font = pygame.font.Font(None, 40) 
options = [Option("START GAME", (140, 105)), Option("QUIT", (205, 205))] 
while True: 
    pygame.event.pump() 
    for option in options: 
    if option.rect.collidepoint(pygame.mouse.get_pos()): 
     option.hovered = True 
    else: 
     option.hovered = False 
    option.draw() 
    for event in pygame.event.get(): 
    if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1: 
     for option in options: 
      if option.hovered and option.text == "START GAME": 
       pygame.start() 


pygame.display.update() 
screen.fill((0,0,0)) 
pygame.draw.rect(screen,BLUE,upper_border) 
pygame.draw.rect(screen,BLUE,right_border) 
pygame.draw.rect(screen,BLUE,left_border) 
pygame.draw.rect(screen,BLUE,down_border) 
pygame.display.update() 

ответ

1

сообщение об ошибке относится к этой линии :

pygame.start() 

Здесь pygame является модулем и не имеет атрибута start. Вместо этого вам нужно вызвать любую функцию, в которой находится остальная часть вашей игры, например:

import bs 

... 

if option.hovered and option.text == "START GAME": 
    bs.start() 
Смежные вопросы