我对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
答案 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
)的碰撞 - 即。用鼠标位置构建按钮。