2017-02-01 23 views
0

私が作業していたプロジェクトでは、pytmxを使用した透過性に問題がありましたが、かなり長く、あまりうまく書かれていません。だから私はちょうどtiledmap(この記事)を作った小さなバージョンを作ろうとしましたが、私はこのエラーを受けています。TypeError 'module'オブジェクトは呼び出し可能ではありません

EDIT:

Traceback (most recent call last): 
    File "E:/advcomp/testing/main.py", line 34, in <module> 
    playGame.gameLoop() 
    File "E:/advcomp/testing/main.py", line 21, in gameLoop 
    self.loadMap() 
    File "E:/advcomp/testing/main.py", line 30, in loadMap 
    self.map_img = self.map.makeSurface() 
    File "E:\advcomp\testing\loading.py", line 19, in makeSurface 
    tiledSurface = pygame.surface((self.mapWidth, self.mapWidth)) 
TypeError: 'module' object is not callable 

main.py

import pygame 
from settings import * 
from loading import * 

class game(): 
    def __init__(self): 
     self.screen = pygame.display.set_mode((displayWidth, displayHeight)) 
     pygame.display.set_caption(title) 
     self.clock = pygame.time.Clock() 
     self.gameRunning = True 

    def loop(self): 
     for event in pygame.event.get(): 
      if event.type == pygame.QUIT: 
       self.gameRunning = False 

    def gameLoop(self): 
     self.clock.tick(fps) 
     self.loop() 
     self.loadMap() 
     self.editScreen() 

    def editScreen(self): 
     self.screen.blit(self.map_img, (0,0)) 
     pygame.display.update() 

    def loadMap(self): 
     self.map = tiledMap() 
     self.map_img = self.map.makeSurface() 

playGame = game() 
while playGame.gameRunning == True: 
    playGame.gameLoop() 

loading.py

import pygame 
import pytmx 

pygame.init() 

class tiledMap(): 
    def __init__(self): 
     self.gameMap = pytmx.load_pygame("maps\_testingMap.tmx") 
     self.mapWidth = self.gameMap.width * self.gameMap.tilewidth 
     self.mapHeight = self.gameMap.height * self.gameMap.tilewidth 

    def render(self, surface): 
     for layer in self.gameMap.visible_layers: 
      for x,y,gid in layer: 
       tile = pytmx.get_tile_image_by_gid(gid) 
       surface.blit(tile, (x * self.gameMap.tilewidth, y * self.gameMap.tileheight)) 

    def makeSurface(self): 
     tiledSurface = pygame.surface((self.mapWidth, self.mapWidth)) 
     self.render(tiledSurface) 
     return tiledSurface 
+1

完全なエラーメッセージを投稿してください。それは単純なエラーですが、原因となった行がわからない場合は対応できません。 –

+0

エラーメッセージ全体を投稿できますか? – Hans

+0

さて、完全なエラーメッセージを追加しました – CustomerSupport

答えて

0
def makeSurface(self): 
    tiledSurface = pygame.Surface((self.mapWidth, self.mapWidth)) 
    self.render(tiledSurface) 
    return tiledSurface 

通知は、私は上記の2ライン目の大文字を変更しました。 pygame.Surfaceはあなたが探しているクラスです、pygame.surfaceはクラスではありません。

関連する問題