我目前正在使用python 3.2.3和pygame創建遊戲。我正在製作一款與Mario(側面卷軸)非常相似的遊戲;我的遊戲涉及到一系列「磚塊」,角色需要跳躍並能夠與之相撞。我在Photoshop和麪具中創建了一個顏色編碼級別,以便紅色是角色將死的區域,綠色是磚塊的顏色,藍色是地面的顏色。這裏是我有問題的代碼:遊戲Python碰撞問題
guy[y]+=guy[vy] # add current speed to Y
col = mask.get_at((int(guy[x]+662), int(guy[y]+59)))
if col == (0,0,255,255):
guy[y] = 537
guy[vy] = 0
guy[onground] = True
if col == (0,255,0,255):
guy[vy] = 0
guy[onground]=True
elif col == (255,0,0,255):
guy[vy] = 5
guy[onground] = False
if guy[y]+59 >= 720:
lives -= 1
screen.blit(guyPic,(640,guy[y]))
guy[vy]+=.75
當我試圖使在磚上(或綠色),他的土地的性質土地,但他開始下沉。他也可以通過磚塊走路。我希望角色能夠與磚塊發生碰撞,這樣他就不會從磚塊中穿過,但是他能夠在不下沉的情況下跳躍並着陸。我知道另一種可能的方法,就是在每個磚的座標處繪製矩形,但是這種方法效率很低,因爲它會代碼太多。我非常感謝這個錯誤的一些幫助,因爲我試圖在過去兩週內解決它。任何幫助表示讚賞。