Python - 使用函数获取图像大小会返回错误

时间:2016-11-05 12:48:24

标签: python image python-3.x pygame size

我对python很新,我试图使用从另一个帖子复制的函数来获取图像的高度,这样我就可以正确地将图像定位在我正在使用PyGame制作的游戏的窗口中。有什么想法吗?

代码:

http://pastebin.com/atZ6vbZQ (从here复制的get_image_size)

错误:

追踪(最近一次通话):   File" Game / game.py",第67行,in     displayCar((display_width / 2),(display_height - (get_image_size(Lightning).height)))   在get_image_size中输入文件" Game / game.py",第22行     使用open(fname,' rb')作为fhandle: TypeError:强制转换为Unicode:需要字符串或缓冲区,找到pygame.Surface

1 个答案:

答案 0 :(得分:0)

get_image_size(fname)预计file name,但您使用的Lightning pygame.Surface()对象

但是pygame.Surface()非常有用,您可以将其大小(和位置)设为pygame.Rect()对象

Lightning_rect = Lightning.get_rect()

然后你有图像大小和位置

Lightning_rect.width
Lightning_rect.height
Lightning_rect.x
Lightning_rect.y
Lightning_rect.left
Lightning_rect.right
Lightning_rect.top
Lightning_rect.bottom

Lightning_rect.center 

您可以使用

更改位置
Lightning_rect.x = new_x
Lightning_rect.y = new_y

Lightning_rect.topleft = (new_x, new_y)

并绘制/ blit

gameDisplay.blit(Lightning, Lightning_rect)

如果你想在屏幕上居中图像,那么

gameDisplay_rect = gameDisplay.get_rect()

Lightning_rect.center = gameDisplay_rect.center

BWT:您可以使用Rect()来检查与另一个Rect()(pygame.Rect.colliderect)或点(pygame.Rect.collidepoint)的碰撞 - 即。用鼠标位置构建按钮。