Я сделал некоторый Кодекс, который заставляет врага стрелять, когда игрок находится в определенном диапазоне, но мне не понравилось, как это работает. Теперь я пытаюсь сделать это случайно в диапазоне (1,10) /s.
Я знаю, что это связано с импортом времени. Но я застрял там. Кто-нибудь может помочь?
clock = pygame.time.Clock()
class Enemy1():
global win
def __init__(self,x,y,end,width = 30,height = 30,color = (220,100,100)):
self.x = x
self.y = y
self.width = width
self.height = height
self.color = color
self.end = end
self.path = [self.x, self.end]
self.speed = 2
self.hitbox = [self.x, self.y,self.width,self.height]
self.health = 300
self.alive = True
def draw(self, win):
self.movement()
pygame.draw.rect(win,self.color,(self.hitbox))
def movement(self):
if self.speed > 0:
if self.hitbox[0] < self.path[1]+ self.speed:
self.hitbox[0] += self.speed
self.x += self.speed
else:
self.speed = self.speed * -1
self.hitbox[0] += self.speed
self.x += self.speed
else:
if self.hitbox[0]> self.path[0] - self.speed:
self.hitbox[0] += self.speed
self.x += self.speed
else:
self.speed = self.speed * -1
self.hitbox[0] += self.speed
self.x += self.speed
def hit(self):
if self.health > 0:
if self.health - 15 >= 0:
self.health -= 15
else:
self.health = 0
else:
self.alive = False
def enemyhealth(self):
myfont = pygame.font.SysFont('Arial', 15)
text = myfont.render('Enemy Health: {}'.format(str(round(self.health))), 0, (255, 255, 255))
win.blit(text,(10,10))
class EnemyShots():
def __init__(self,x,y,radius,color):
self.x = x
self.y = y
self.radius = radius
self.color = color
self.speed = 30
def draw(self,win):
pygame.draw.circle(win,self.color, (self.x, self.y), self.radius)
вражеские пули = []
В основном цикле:
clock.tick(27)
if enemy1.x >= player.x - 10 and enemy1.x <= player. x + 40:
if len(enemybullets) < 1:
enemybullets.append(EnemyShots(round(enemy1.x+ 15), round(enemy1.y + 35),3,(255,0,0)))