0
我有一個字符(其((x,y)位置存儲在bodyc中)和一堆平臺。這些平臺以變量「plist」表示,並以時尚[[x,y],pygame.Surface實例]存儲。角色以速度跳躍。(Python)平臺遊戲 - 字符跳過/錯誤放置
這是我目前的算法:
def onplatform(self):
for i in plist:
if intersect(i[0]+list(i[1].get_size()), [bodyc[0], bodyc[1], 50, 50]):
return True, plist.index(i)
return False, len(plist)
onplat=self.onplatform()
if yvelocity!=-13:
bodyc[1]-=yvelocity
if yvelocity>-12: yvelocity-=1
if yvelocity==-13 and not onplat[0]: yvelocity=-1
if onplat[0] and -13<yvelocity<-1:
yvelocity=-13
bodyc[1]=plist[onplat[1]][0][1]-50 #(y-value of platform)-50
if pressed[pygame.K_UP] and yvelocity==-13:
yvelocity=13
這個算法的問題是,當該角色是觸摸平臺,即使底部是不是在平臺上,該代碼就會把字符到反正平臺。
我試過讓它變得非常小(1或3像素高),但角色並沒有觸及平臺,因爲速度會讓角色跳過平臺。將其設置得更大,如5或7像素,具有與上述相同的問題。
有沒有簡單的方法來解決這個問題?