pygame.surface类型错误:需要一个整数

时间:2014-09-25 02:16:57

标签: python-3.x pygame

我是pygame的新手,我想知道什么是错的,我该如何解决它,谢谢!当我打开它时,我的pygame也会关闭,这就是为什么我拍了这样的截图。如果你还能解释为什么它快速关闭,那就太好了! (pygame 1.9.2 python 3.4.1,windows 8)![在此输入图像描述] [1]

#!/usr/bin/env python
import pygame, sys
from pygame.locals import *
pygame.init()
pygame.font.init()
pygame.display.set_caption('Primer juego de Gian Di Julio')
mainclock= pygame.time.Clock()

screen = pygame.display.set_mode((800,600))

pygame.mouse.set_visible(0)

#positioning the ship into the middle of the screen
ship = pygame.image.load('ship.png')
ship_top = screen.get_height() - ship.get_height()
ship_left = screen.get_width()/2 - ship.get_width()/2

pygame.Surface(ship,(ship_left,ship_top))


while True:
     screen.fill((0,0,0))
     x,y = pygame.mouse.get_pos()
     screen.blit(ship, (x-ship.get.width()/2, ship_top))

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

pygame.display.update()
pygame.display.flip()

2 个答案:

答案 0 :(得分:0)

我只是在pygame文档中查找过:

Surface((width,height),flags = 0,Surface) - >表面

但是您的程序中没有使用返回的曲面,因此您可能会将其遗漏。

使用pygame.display.flip()时,不需要调用pygame.display.update()。

另外它应该缩进。

答案 1 :(得分:0)

由于您的代码中存在语法错误,因此会很快关闭。

pygame.Surface(ship,(ship_left,ship_top))

此行尝试创建一个表面,其尺寸取自ship变量。 由于船舶是从图像加载的表面,因此失败。

删除此行将解决此问题。