繁体   English   中英

'pygame.Surface'对象不可调用错误

[英]'pygame.Surface ' object is not callable error

我不断收到表示“ pygame.Surface”对象不可调用的Traceback错误。

这是我正在处理的脚本(主要由Meloonatic Melons制作,但是我是一个初学者,尝试学习)

import pygame, sys, time
from Scripts.Textures import *

pygame.init()

cSec = 0
cFrame = 0
FPS = 0

tile_size = 32

FPS_font = pygame.font.Font("C:\\Windows\\Fonts\\Verdana.ttf", 20)

sky = pygame.image.load("Graphics\\Sky.png")
Sky = pygame.Surface(sky.get_size(), pygame.HWSURFACE)
Sky.blit(sky, (0, 0))
del sky

def showFPS():
    fps_overlay = FPS_font.render(str(FPS), True, (104, 98, 7))
    window.blit(fps_overlay, (0, 0))


def createWindow():
    global window, window_width, window_height, window_title
    window_width, window_height = 800, 600
    window_title = "Mystic RPG"
    pygame.display.set_caption(window_title)
    window = pygame.display.set_mode((window_width, window_height), pygame.HWSURFACE|pygame.DOUBLEBUF)

def countFPS():
    global cSec, cFrame, FPS

    if cSec == time.strftime("%S"):
        cFrame += 1
    else:
        FPS = cFrame
        cFrame = 0
        cSec = time.strftime("%S")

createWindow()

isRunning = True

while isRunning:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            isRunning = False

    countFPS()

    window.blit(Sky (0, 0))

    for x in range(0, 640, tile_size):
        for y in range(0, 480, tile_size):
            window.blit(Tiles.Grass, (x,y))

    showFPS()

    pygame.display.update()

pygame.quit()
sys.exit()

错误说

 Traceback (most recent call last):
  File "C:/Users/Zane/Desktop/Python RPG/Mystic RPG.py", line 52, in <module>
    window.blit(Sky (0, 0))
TypeError: 'pygame.Surface' object is not callable

我正在使用Python 3.6.4

任何人都知道出了什么问题以及如何解决。

我对此并不熟悉,但是在showFPS()函数中,您这样写:

Window.blit(fps_overlay, (0, 0))

在错误行52行中,您这样写:

window.blit(Sky (0, 0))

我相信您需要在参数之间使用逗号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM