TypeError: argument 1 must be pygame.Surface, not bool
Я попытался создать простую стрелялку карандашами, но здесь... какая-то ошибка...
if x1 > x2-db1 and x1 < x2+db2 and y1 > y2-db1 and y1 < y2+db2:
return 1
else:
return 0
import pygame
pygame.init()
window = pygame.display.set_mode((1000, 690))
screen = pygame.Surface((1000, 690))
player = pygame.Surface((60, 60))
zet = pygame.Surface((60, 60))
arrow = pygame.Surface((20, 40))
maks = pygame.Surface((60, 60))
seva = pygame.Surface((60, 60))
igor = pygame.Surface((60, 60))
kira = pygame.Surface((60, 60))
stas = pygame.Surface((60, 60))
count = 0
img_a = pygame.image.load('arrow.png')
img_p = pygame.image.load('player.png')
img_z = pygame.image.load('zet.png')
myfont = pygame.font.SysFont('monospace', 15)
a_x = 1000
a_y = 1000
strike = False
z_x = 0
z_y = 0
x_p = 0
y_p = 640
m_x = 0
m_y = 70
s_x = 0
s_y = 140
i_x = 0
i_y = 210
k_x = 0
k_y = 280
st_x = 0
st_y = 350
z_right = True
m_right = True
s_right = True
i_right = True
k_right = True
st_right = True
done = False
while done == False:
for e in pygame.event.get():
if e.type == pygame.QUIT:
done = True
keys = pygame.key.get_pressed()
if keys[pygame.K_w]:
y_p -= 5
if keys[pygame.K_s]:
y_p += 5
if keys[pygame.K_a]:
x_p -= 5
if keys[pygame.K_d]:
x_p += 5
if e.type == pygame.KEYDOWN and e.key == pygame.K_SPACE:
if strike == False:
strike = True
a_x = x_p
a_y = y_p - 40
if strike:
a_y -= 1.5
if a_y < 0:
strike = False
a_y = 1000
a_x = 1000
if inter(a_x, a_y, z_x, z_y, 20, 40):
count += 1
strike = False
a_y = 1000
a_x = 1000
if inter(a_x, a_y, s_x, s_y, 20, 40):
count += 1
strike = False
a_y = 1000
a_x = 1000
if inter(a_x, a_y, i_x, i_y, 20, 40):
count += 1
strike = False
a_y = 1000
a_x = 1000
if inter(a_x, a_y, m_x, m_y, 20, 40):
count += 1
strike = False
a_y = 1000
a_x = 1000
if inter(a_x, a_y, k_x, k_y, 20, 40):
count += 1
strike = False
a_y = 1000
a_x = 1000
if inter(a_x, a_y, st_x, st_y, 20, 40):
count += 1
strike = False
a_y = 1000
a_x = 1000
if z_right:
z_x += 1
if z_x > 960:
z_x -=1
z_right = False
else:
z_x -=1
if z_x < 0:
z_x += 1
z_right = True
if m_right:
m_x += 1.5
if m_x > 960:
m_x -=1.5
m_right = False
else:
m_x -=1.5
if m_x < 0:
m_x += 1.5
m_right = True
if s_right:
s_x += 4
if s_x > 960:
s_x -=4
s_right = False
else:
s_x -=4
if s_x < 0:
s_x += 4
s_right = True
if i_right:
i_x += 3
if i_x > 960:
i_x -=3
i_right = False
else:
i_x -=3
if i_x < 0:
i_x += 3
i_right = True
if k_right:
k_x += 2
if k_x > 960:
k_x -=2
k_right = False
else:
k_x -=2
if k_x < 0:
k_x += 2
k_right = True
if st_right:
st_x += 2.5
if st_x > 960:
st_x -=2.5
st_right = False
else:
st_x -=2.5
if st_x < 0:
st_x += 2.5
st_right = True
string = myfont.render('Счёт: '+str(count), 0, (255,0,0))
string_go = myfont.render('Победа', 0, (255,0,0))
string_go = False
if count > 50:
string_go = True
screen.fill((0,225,0))
arrow.blit(img_a, (0, 0))
player.blit(img_p, (0, 0))
zet.blit(img_z, (0, 0))
screen.blit(string, (0, 430))
screen.blit(string_go, (0, 450))
screen.blit(arrow, (a_x, a_y))
screen.blit(zet, (z_x, z_y))
screen.blit(player, (x_p, y_p))
screen.blit(maks, (m_x, m_y))
screen.blit(seva, (s_x, s_y))
screen.blit(igor, (i_x, i_y))
screen.blit(kira, (k_x, k_y))
screen.blit(stas, (st_x, st_y))
window.blit(screen, (0, 0))
pygame.display.update()
pygame.quit()
exit()
Ранее Python работал с переменной string нормально. Он читал её, писал в программе. Честно говоря, он делает это и сейчас, но я создал новую переменную - string_go - и именно её он не читает. Вот текст ошибки:
Traceback (most recent call last):
File "C:\game\main.py", line 228, in <module>
screen.blit(string_go, (0, 450))
TypeError: argument 1 must be pygame.Surface, not bool
Что мне делать?