第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Pygame 像素完美碰撞無法按預期工作

Pygame 像素完美碰撞無法按預期工作

慕尼黑的夜晚無繁華 2023-04-25 16:22:16
我正在使用 pygame 創(chuàng)建俄羅斯方塊。我想使用碰撞檢測,以便當游戲中的形狀與之前播放的任何其他形狀接觸時,我可以按照俄羅斯方塊的邏輯停止該形狀。我遇到了使用蒙版的像素完美碰撞。我已經(jīng)在線學習了一些教程,但是每次出現(xiàn)新形狀時像素檢測都會返回 true,而不是任何形狀發(fā)生碰撞時。對于長代碼提前抱歉,它是代碼實際并且仍然包含它的游戲元素的最低限度。我認為我的方法有問題導致了這個錯誤。我基本上有一個功能,每當游戲中的形狀與“地板”接觸時,該形狀就會保持在該位置并創(chuàng)建一個新形狀。我認為我把它復雜化了,反過來又造成了這個錯誤。
查看完整描述

1 回答

?
慕妹3146593

TA貢獻1820條經(jīng)驗 獲得超9個贊

問題是您沒有更新精靈rect屬性。精靈rect都具有位置 (0, 0)(因為您沒有在對 的調用中設置它self.image.get_rect()),因此蒙版將全部重疊和碰撞。

如果您閱讀pygame.sprite.collide_mask的文檔,您會注意到它說您的精靈需要具有maskrect屬性。您的 sprite 中有一個rect,并將其設置在 中__init__(),但是當您移動 sprite 時,它不會保持更新。您只需更改xy屬性而無需調整rect位置。collide_mask想要 a的原因rect是它使用它來確定它使用的pygame.mask.Mask.overlap()offset調用的參數(shù)。重要的是要意識到面具本身沒有位置,他們需要 s來確定面具的相對位置。rect

這類似于沒有位置并且需要rect為它們跟蹤的圖像/表面。

在一個單獨的問題上,您將精靈發(fā)送到屏幕的方式毫無意義。您沒有使用 sprite 組的能力進行繪制,更糟糕的是,您將 sprite 的圖像、x 和 y 保存在單獨的列表中,而不將其包含在 sprite 本身中。


查看完整回答
反對 回復 2023-04-25
  • 1 回答
  • 0 關注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號