Это код, используемый для создания круга, который находится внутри класс башни:
self.range — это просто число, которое я установил, например 200.
Код: Выделить всё
# creates circle range around tower
self.range_img = pg.Surface((self.range * 2,self.range *2 ))
self.range_img.fill((0,0,0))
self.range_img.set_colorkey((0,0,0))
pg.draw.circle(self.range_img, "grey100",(self.range,self.range),self.range )
self.range_img.set_alpha(100)
self.range_rect = self.range_img.get_rect()
self.range_rect.center = self.rect.center
Враги перемещаются по набору путевых точек с помощью функции перемещения внутри собственного класса врагов.
При этом используется пара переменных:
Код: Выделить всё
self.waypoints = waypoints #list containing waypoints
self.pos = Vector2(self.waypoints[0])
self.target_waypoint = 1
self.speed = 0.1
Код: Выделить всё
def move(self):
#define a target waypoint
if self.target_waypoint < len(self.waypoints):
self.target = Vector2(self.waypoints[self.target_waypoint])
self.movement = self.target - self.pos
else:
#enemy destoyed when reaching end
self.kill()
# distance to target
distance = self.movement.length()
# check for if the speed is more than distance need to cover
if distance >= self.speed:
self.pos += self.movement.normalize() * self.speed
print(distance)
else:
if distance != 0:
self.pos += self.movement.normalize() * distance
self.target_waypoint += 1
Есть ли что-нибудь в создании прозрачного круга и его отображении? это приводит к тому, что что-то меняется в моей функции move(), вызывая замедление врагов?
Я пытался отладить и понять, что происходит, печатая расстояние, скорость, self.movement, self .movement.normaliza(), но эти значения, похоже, не меняются внезапно, когда я выбираю башню даже несмотря на то, что враг все равно замедляется
Подробнее здесь: https://stackoverflow.com/questions/793 ... ame-td-gam