簡體   English   中英

Python-使用函數獲取圖像大小將返回錯誤

[英]Python - getting image size with function returns error

我是python的新手,我試圖使用從另一篇文章中復制的函數來獲取圖像的高度,以便可以將圖像正確放置在窗口中,以便使用PyGame制作游戲。 有任何想法嗎?

碼:

http://pastebin.com/atZ6vbZQ (從此處復制get_image_size)

錯誤:

追溯(最近一次通話最近):文件“ Game / game.py”,第67行,位於displayCar((display_width / 2),(display_height-(get_image_size(Lightning).height)))文件“ Game / game.py”在get_image_size中的第22行,其中open(fname,'rb')作為句柄:TypeError:強制轉換為Unicode:需要字符串或緩沖區,pygame.Surface

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)

然后畫/畫

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 )的pygame.Rect.collidepoint -即 用鼠標位置建立按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM