正如我所理解的pygame繪制方法一樣,blit函數()的第二個參數告訴pygame在哪里繪制給定的表面(例如開始繪制的偏移量,或者更確切地說是表面在屏幕上的位置)。雖然,從最近的實驗來看,似乎pygame表面的位置是固定的,并且用于在pygame將其推到屏幕上之前裁剪表面,以提高效率。screen.blit(surface, (0,0))(0,0)表面放置是否真的固定(我的后一個觀察是否正確)?如果是這樣,是否有另一種方法可以方便地將已繪制的表面移動到屏幕上的另一個位置?還是我應該實現自己的移動復雜“可繪制”對象的方式?謝謝!
1 回答

眼眸繁星
TA貢獻1873條經驗 獲得超9個贊
一個玩偶。表面
物體沒有位置,它只有大小。請注意,由 pygame 返回的對象的位置。Surface.get_rect()
始終為 (0, 0)。
當你在另一個上放置
一個時,每個像素都會被復制并放置在目標的相應位置。因此,當 a 位于目標 上時,始終必須指定一個位置。Rect
Surface
Surface
Surface
Surface
blit
Surface
另請參閱為什么我的碰撞測試總是返回“true”,為什么圖像矩形的位置總是錯誤(0,0)?
[...]如果是這樣,是否有另一種方法可以方便地將已繪制的表面移動到另一個位置[...]
你有一個基本的誤解。A 不能被“移動”。在與游戲窗口關聯的對象上復制 A。
似乎正在移動,因為整個場景在每一幀中繪制。首先繪制背景,然后在背景頂部繪制對象(精靈,表面),最后更新顯示(在每一幀中)。如果一個對象在每一幀中的位置略有不同,則該對象看起來移動得很平穩。Surface
Surface
Surface
Surface
添加回答
舉報
0/150
提交
取消