2012-02-22 86 views
0

我有用于检测PyGame中碰撞的代码,但是如何检测它碰撞的方向? 我目前的代码使用obj.colliderect(wall),我如何修改这个以适合我的需求?PyGame中的方向性碰撞?

回答

3

1.获取最后的位置,获得碰撞时刻的实际位置,找到方向。

import math 
x1,y1 = obj.pos 
x2,y2 = obj.lastpos 

x = x2 - x1 
y = y2 - y1 

angle = math.degrees(math.atan2(y,x)) 
if angle < 0: angle += 360 
print(angle) 
#now you have the angle from it was heading 

2.如果您有obj的方向角:

angle = obj.get_angle() 
angle += 180 
while angle>360: angle += -360 
print(angle) 
#now you have the angle from it collides.