2016-07-18 13 views
0

Ich habe versucht, ein Text-Adventure-Spiel in Python (und PyGame) zu entwickeln, und benötigt daher ein Modul, um Text wiederholt auf den Bildschirm zu blitten. Nachdem ich ein paar durchgesucht habe, habe ich den KTextSurfaceWriter heruntergeladen und installiert. Dann habe ich versucht, die Demo im Text hier zu befolgen (http://www.pygame.org/project-KTextSurfaceWriter-1001-.html)Python-Modul Problem: TypeError: 'Modul' Objekt ist nicht aufrufbar

Mein Code:

from ktextsurfacewriter import KTextSurfaceWriter 

import pygame 
from pygame.locals import * 
import pygame.font 
pygame.font.init() 
screen = pygame.display.set_mode((640,480), 0, 32) 

surface = pygame.surface ((400, 400), flags = SRCALPHA, depth = 32) 
surface.fill((255,255,255,255)) 

def blitSurface(): 
    screen.blit(surface, (50,50)) 
    pygame.display.update() 

blitSurface() 

def waitForUserAction(): 
    while True: 

     for event in pygame.event.get(): 
      if event.type == QUIT: 
       import sys 
       sys.exit() 
      if event.type == KEYDOWN: 
       return 

waitForUserAction() 

Dies ist jedoch führt den Modulfehler an der Linie zurück 9. Ich bin ziemlich neu in Python und die meisten Zu den Lösungen, die ich für dieses Problem sah, gehörte die Verwendung des Codes "from [module] import", den ich bereits am Anfang hatte.

+2

Haben Sie an die Hauptstadt Oberfläche gedacht? Python unterscheidet zwischen Groß- und Kleinschreibung. – user2357112

Antwort

0

Ich habe Ihren Code und Quellcode gesehen.

surface = pygame.surface ((400, 400), flags = SRCALPHA, depth = 32) 

in Ihrem Code "Oberfläche" wird klein geschrieben, das ist ein Python-Modul ist, so Python-Interpreter sagt Ihnen, die err msg.

surface = pygame.Surface((400,400), flags=SRCALPHA, depth=32) 

Im Quellcode ist "Oberfläche" Kapital, das eine Klasse sein kann.

+0

Ich bin immer noch nicht daran gewöhnt, wie Groß- und Kleinschreibung Python sein kann, denke ich. Danke für die Hilfe! – Deck

2

Sie rufen das pygame.surface Modul:

surface = pygame.surface ((400, 400), flags = SRCALPHA, depth = 32) 

Entweder verwenden pygame.surface.Surface() oder pygame.Surface() verwenden (beachten Sie die Hauptstadt S); Diese sind beide die gleiche Klasse, aber pygame.surface ist das Modul, in dem es definiert ist.