0
當玩家射擊Bullet
類正在初始化。問題與角度和目標座標
class Bullet(BaseClass):
def __init__(self, x, y, tx, ty, angle):
...
self.tx, self.ty = tx, ty
# Here's the problematic part
self.tx += random.uniform(-15, 15)
self.ty += random.uniform(-15, 15)
self.angle = get_angle(x, y, self.tx, self.ty)
...
self.velx, self.vely = get_vel(self.angle, 18)
def get_angle(x1, y1, x2, y2):
rise = y1 - y2
run = x1 - x2
angle = math.atan2(run, rise)
angle = angle/(math.pi/180)
return angle
def get_vel(angle, offset):
return (math.sin(angle * (math.pi/180)) * offset, math.cos(angle * (math.pi/180)) * offset)
當x
和tx
或y
和ty
之間的距離是小angle
越來越怪異。 有時子彈甚至走向相反的方向。
我該如何解決這個問題?
通過使用比'random.uniform()'更好的約束。 – 2014-09-25 06:17:30
你說得對,randint會更好。但這並不重要。問題出在數字上。 – ivknv 2014-09-25 06:21:49
它確實很重要。你目前的限制是讓它有這些奇怪的軌跡。 – 2014-09-25 06:23:50