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

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

在python中查找對象之間的距離 - 不起作用

在python中查找對象之間的距離 - 不起作用

HUWWW 2022-09-27 10:45:20
我目前正在Python上制作一個簡單的輕飄飄的鳥類游戲。由于某種原因,當(dāng)管道和鳥接觸時,碰撞代碼不起作用。def collision():    global distanceDown, distanceUp    distanceUp = math.sqrt(math.pow(pipeUpX - birdX, 2) + math.pow(pipeUpY - birdY, 2))  # distance formula    distanceDown = math.sqrt(math.pow(pipeDownX - birdX, 2) + math.pow(pipeDownX - birdY, 2))    if distanceUp <= 20 or distanceDown <= 20:        return True    else:        return False我已經(jīng)在主游戲循環(huán)中調(diào)用了該函數(shù),并要求python結(jié)束游戲(如果為真),但鳥只是通過管道。僅供參考,我沒有使用OOP和類。以下是值。pipeWidth = 50pipeHeight = 130pipeUpX = 800pipeUpY = 0pipeDownY = screenY - pipeHeightpipeDownX = 900pipeX_change = 1另外,我對python和編程作為一個整體非常陌生,所以請用易于理解的代碼回答。謝謝你:)
查看完整描述

1 回答

?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個贊

該代碼不會驗(yàn)證到管道的距離。該代碼驗(yàn)證到管道起點(diǎn)和終點(diǎn)的距離。這是另一回事。

由于您的對象只是矩形,我建議使用和方法。例如,一些偽代碼:pygame.Rect objecctscolliderect

def collision():  
    pipeRect = pygame.Rect(pipeLeft, pipeTop, pipeWidth, pipeHeight) 
    birdRect = pygame.Rect(birdLeft, birdTop, birdWidth, birdHeight) 
    return pipeRect.colliderect(birdRect)

對于“圖像”的碰撞,我建議分別使用pygame.精靈.精靈/pygame.sprite.collide_mask()pygame.mask.mask.pygame.mask.mask.overlap()。


查看完整回答
反對 回復(fù) 2022-09-27
  • 1 回答
  • 0 關(guān)注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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