I need help about monster who i dont know why spot

I need help becouse in my 'game' slimes is create abd hes have slime speed 1, and some slimes is moving, some is don't moving. Can you halp me pls

This is code:

import pygame
import random
import time

start_time = time.time()
pygame.init()

clock = pygame.time.Clock()
last_refresh = pygame.time.get_ticks()

screen = pygame.display.set_mode((1920, 1020)) # Połowa ((960, 510))

timer = pygame.time.Clock()

fps = 60

# Nazwa gry
pygame.display.set_caption("Castle Battle")

# Ikona gry
icon = pygame.image.load("assets/Castle.png")
pygame.display.set_icon(icon)

# Money
moneyImg = pygame.image.load('Animation/CoinAnimation1.png')
cash = 0
moneyX = 110
moneyY = -88

pygame.font.init()
font = pygame.font.Font('Number/victor-pixel.ttf', 50)
text_color = (250, 253, 15)
x = 10
y = 10

frame1coin = pygame.image.load('animation/CoinAnimation1.png')
frame2coin = pygame.image.load('animation/CoinAnimation2.png')
frame3coin = pygame.image.load('animation/CoinAnimation3.png')
frame4coin = pygame.image.load('animation/CoinAnimation4.png')
frame5coin = pygame.image.load('animation/CoinAnimation5.png')
frame6coin = pygame.image.load('animation/CoinAnimation6.png')
frame7coin = pygame.image.load('animation/CoinAnimation7.png')

coin_frames = [frame1coin, frame2coin, frame3coin, frame4coin, frame5coin, frame6coin, frame7coin]


def money(x, y):
screen.blit(moneyImg, (x, y))


# Zamek
castleImg = pygame.image.load('assets/Castle.png')
castleX = 700
castleY = 300


def Tower1(x, y):
screen.blit(castleImg, (x, y))


# Slime
slimeImg = pygame.image.load('assets/slime.png')
slimeX = 0
slimeY = 0
slimespeedX = 0
slimespeedY = 0
slimespeedready = 0

# Wgraj grafiki slime na animacje
frame1 = 'Animation/SlimeAnimation1.png'
frame2 = 'Animation/SlimeAnimation2.png'
frame3 = 'Animation/SlimeAnimation4.png'
frame1Right = 'Animation/SlimeAnimation1Right.png'
frame2Right = 'Animation/SlimeAnimation2Right.png'
frame3Right = 'Animation/SlimeAnimation4Right.png'

slime_frames = [pygame.image.load(frame1), pygame.image.load(frame2), pygame.image.load(frame3), ]
slime_framesRight = [pygame.image.load(frame1Right), pygame.image.load(frame2Right), pygame.image.load(frame3Right), ]

delay = 0
CREATE_MONSTER = pygame.USEREVENT + 1
pygame.time.set_timer(CREATE_MONSTER, 10)
monsterslime = []

def slime(x, y):
screen.blit(slimeImg, (x, y))

def slime(x, y):
screen.blit(slimeImg, (x, y))

# Wave
waveslime1 = 100

# Animacja
frame_countRight = 0
frame_count = 0
active_frames = 0

running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False

# Ekran
screen.fill((85, 120, 47))

timer.tick(fps)
frame_count += 1

# Animacje slima
# Gdy pójdzie w lewo
if slimespeedX <= -0.1:
if frame_count % 1 == 0:
current_frame = (frame_count // 10) % len(slime_frames)
slimeImg = slime_frames[current_frame]
screen.fill((85, 120, 47))

# Gdy pójdzie w prawo
if slimespeedX >= 0.1:
if frame_countRight % 1 == 0:
current_frame = (frame_count // 10) % len(slime_framesRight)
slimeImg = slime_framesRight[current_frame]
screen.fill((85, 120, 47))

# Gdy pójdzie go góry
if slimespeedY <= -0.1:

# Gdy pójdzie do góry i na lewo
if slimespeedX <= -0.1:
if frame_count % 1 == 0:
current_frame = (frame_count // 10) % len(slime_frames)
slimeImg = slime_frames[current_frame]
screen.fill((85, 120, 47))

# Gdy pójdzie do góry i na prawo
if slimespeedX >= 0.1:
if frame_countRight % 1 == 0:
current_frame = (frame_count // 10) % len(slime_framesRight)
slimeImg = slime_framesRight[current_frame]
screen.fill((85, 120, 47))

# Gdy pójdzie tylko do góry
if slimespeedX == 0.0:
if frame_count % 1 == 0:
current_frame = (frame_count // 10) % len(slime_frames)
slimeImg = slime_frames[current_frame]
screen.fill((85, 120, 47))

# Gdy pójdzie na dół
if slimespeedY >= 0.1:

# Gdy pójdzie na dół i na lewo
if slimespeedX <= -0.1:
if frame_count % 1 == 0:
current_frame = (frame_count // 10) % len(slime_frames)
slimeImg = slime_frames[current_frame]
screen.fill((85, 120, 47))

# Gdy pójdzie na dół i na prawo
if slimespeedX >= 0.1:
if frame_countRight % 1 == 0:
current_frame = (frame_count // 10) % len(slime_framesRight)
slimeImg = slime_framesRight[current_frame]
screen.fill((85, 120, 47))

# Gdy pójdzie tylko na dół
if slimespeedX == 0:
if frame_count % 1 == 0:
current_frame = (frame_count // 10) % len(slime_framesRight)
slimeImg = slime_framesRight[current_frame]
screen.fill((85, 120, 47))

money_text = font.render(str(cash).zfill(6), True, text_color)

# Animacja coin
if frame_count % 1 == 0:
current_frame = (frame_count // 20) % len(coin_frames)
moneyImg = coin_frames[current_frame]
screen.fill((85, 120, 47))

# Rób zdarzenie co jakiś czas (1s = 1000)
if pygame.time.get_ticks() - last_refresh > 300000:
last_refresh = pygame.time.get_ticks()

# Tutaj wpisz co chcesz żeby działo się co 2s
cash += 5

# Tworzenie potwora
if pygame.time.get_ticks() - last_refresh > 0:
last_refresh = pygame.time.get_ticks()

for event in pygame.event.get():
if event.type == CREATE_MONSTER:
if 100 >= waveslime1 >= 1:
for i in range(waveslime1):
slimey = random.randint(1, 4)
if slimey == 1:
slimeY = random.randint(-50, -20)
slimeX = random.randint(-10, 1950)
slimespeedRandomY = random.randint(5, 19)
slimespeedY = slimespeedRandomY / 10
slimespeedX = 0
elif slimey == 2:
slimeY = random.randint(1000, 1050)
slimeX = random.randint(-10, 1950)
slimespeedRandomY = random.randint(-19, -5)
slimespeedY = slimespeedRandomY / 10
slimespeedX = 0
elif slimey == 3:
slimeX = random.randint(-60, -10)
slimeY = random.randint(-10, 1050)
slimespeedRandomX = random.randint(5, 19)
slimespeedX = slimespeedRandomX / 10
slimespeedY = 0
elif slimey == 4:
slimeX = random.randint(1950, 2000)
slimeY = random.randint(-10, 1050)
slimespeedRandomX = random.randint(-19, -5)
slimespeedX = slimespeedRandomX / 10
slimespeedY = 0

# Slime gdy zrespi się na rogu
if slimeX <= 10:
if slimeY <= 10 and slimespeedready == 0:
slimespeedRandomX = random.randint(5, 19)
slimespeedRandomY = random.randint(5, 19)
slimespeedX = slimespeedRandomX / 10
slimespeedY = slimespeedRandomX / 10
slimespeedready = 1

if slimeX <= 10:
if slimeY >= 1000 and slimespeedready == 0:
slimespeedRandomX = random.randint(5, 19)
slimespeedRandomY = random.randint(-19, -5)
slimespeedX = slimespeedRandomX / 10
slimespeedY = slimespeedRandomX / 10
slimespeedready = 1

if slimeX >= 1900:
if slimeY <= 10 and slimespeedready == 0:
slimespeedRandomX = random.randint(-19, -5)
slimespeedRandomY = random.randint(10, 19)
slimespeedX = slimespeedRandomX / 10
slimespeedY = slimespeedRandomX / 10
slimespeedready = 1

if slimeX >= 1900:
if slimeY >= 1000 and slimespeedready == 0:
slimespeedRandomX = random.randint(-19, -5)
slimespeedRandomY = random.randint(-19, -5)
slimespeedX = slimespeedRandomX / 10
slimespeedY = slimespeedRandomY / 10
slimespeedready = 1

monster_rect = slimeImg.get_rect()
if slimespeedX > 0:
monster_rect.x = slimeX
else:
monster_rect.x = slimeX - monster_rect.width
if slimeY > 0:
monster_rect.y = slimeY - monster_rect.height
else:
monster_rect.y = slimeY + monster_rect.height
monsterslime.append({"rect": monster_rect, "speedX": slimespeedX, "speedY": slimespeedY})

waveslime1 -= 1

for slime in monsterslime:
slime_rect = slime["rect"]

slime_rect.x += slime["speedX"]
slime_rect.y += slime["speedY"]

screen.blit(slimeImg, slime_rect)
if slime_rect.y > 1200 or slime_rect.y < -100 or slime_rect.x > 2100 or slime_rect.x < -200:
monsterslime.remove(slime)

print("ss", slimey)
print(slimespeedX)
print(slimespeedY)
print(slimeX)
print(slimeY)

# Wczytuj postać
slimeX += slimespeedX
slimeY += slimespeedY

screen.blit(castleImg, (castleX, castleY))

screen.blit(moneyImg, (moneyX, moneyY))
screen.blit(money_text, (x, y))

pygame.display.update()
clock.tick(fps)
1

请先登录再写评论。