Эй, я новичок в Pygame, и я только начал создавать игры, но я застрял в этой игре, и я не могу понять, что я делаю неправильно. Я сделал игру, в которой заряжается машина либо через свет, либо через электричество. Когда на солнечном свете уровень батареи начинает увеличиваться, в то время как в более холодной области он может заряжаться, только если есть станция зарядки электричества c. Проблема заключается в том, что уровень заряда батареи увеличивается в остальных код, но когда я нажимаю на значок зарядки в конце кода, это не так. Кстати, значок зарядки является своего рода усилителем, который предоставляется только в том случае, если он доступен в конце игры. Я попытался изменить этот конкретный код несколько раз и проверил, что в других модулях, но он не работает вообще. Пожалуйста, скажите мне, почему уровень заряда батареи не увеличивается в этом случае. Я застрял там по крайней мере пять дней. Любая помощь будет заметна.
import pygame, time, random
pygame.init()
screen = pygame.display.set_mode((800, 600))
dual_car = pygame.image.load("dual-car.png")
carX = 300
carY = 528
carX_change = 0
carY_change = 0
charging_icon = pygame.image.load("chargingicon.png").convert()
iconX = 500
iconY = 200
charging_station = pygame.image.load("charging-station.png")
chargingX = 0
chargingY = 475
first_location = pygame.image.load("bright-road.png")
firstX = 0
firstY = 0
second_location = pygame.image.load("snow-road.png")
secondX = 2000
secondY = 0
third_location = pygame.image.load("sunny.png")
thirdX = 4000
thirdY = 0
fourth_location = pygame.image.load("snow-road2.png")
fourthX = 6000
fourthY = 0
battery_level = 1
game_level = 1
font = pygame.font.Font("freesansbold.ttf", 32)
second_font = pygame.font.Font("freesansbold.ttf", 20)
warning_time = 30
draw_rectangles = "a"
transparent = (0, 0, 0, 0)
def text():
text = font.render("Battery Level:" + str(battery_level) +
"%",True, (48, 88, 123))
screen.blit(text, (0, 0))
def text2():
text2 = font.render("BATTERY CHARGING", True, (69,117,203))
screen.blit(text2, (300, 250))
def text3():
text3 = font.render("BATTERY DISCHARGING", True, (28, 229,7))
screen.blit(text3, (300, 250))
def text4():
text4 = font.render("BATTERY FULLY CHARGED",
True(11,103,77))
screen.blit(text4, (300, 250))
def text5():
text5 = font.render("GAME LEVEL: " + str(game_level), True,
(255, 0, 255))
screen.blit(text5, (0, 130))
def first():
screen.blit(first_location, (firstX, firstY))
def second():
screen.blit(second_location, (secondX, secondY))
def third():
screen.blit(third_location, (thirdX, thirdY))
def fourth():
screen.blit(fourth_location, (fourthX, fourthY))
def car():
screen.blit(dual_car, (carX, carY))
def show():
first()
second()
third()
fourth()
car()
text()
text5()
run = True
while run:
screen.fill((255, 255, 255))
show()
firstX -= 2
secondX -= 4
thirdX -= 4
fourthX -= 4
if draw_rectangles == False:
rect1 = pygame.draw.rect(screen, (49, 97, 132), (100, 200, 500, 150))
rect2 = pygame.draw.rect(screen, (27, 166, 166), (100, 300, 500, 150))
text7 = second_font.render("Press below to quit!!", True, (100, 200, 99))
rect3 = pygame.draw.rect(screen, (255, 255, 255), (100, 450, 100, 100))
text8 = second_font.render("QUIT", True, (87, 163, 249))
text9 = second_font.render("SORRY YOU COUDN'T CHARGE THE BATTERY", True, (249, 133, 87))
rect4 = pygame.draw.rect(screen, (255, 0, 255), (200, 450, 400, 100))
text10 = second_font.render("USE POWER SUPPLY", True, (0, 0, 0))
screen.blit(text7, (100, 300))
screen.blit(text8, (100, 450))
screen.blit(text9, (100, 200))
screen.blit(text10, (200, 450))
pygame.display.flip()
elif draw_rectangles == True:
screen.blit(charging_icon,(iconX,iconY))
pygame.display.update()
carX += carX_change
carY += carY_change
if carX >= 0:
pygame.time.delay(100)
carX_change = 1
if carX >= 574:
carX = 300
if secondX - carX > 10 and battery_level < 100 and carX % 2 == 0:
battery_level += 1
text2()
pygame.display.flip()
if secondX - carX <= 10 and battery_level > 0 and carX % 1 == 0:
battery_level -= 1
text3()
pygame.display.flip()
if secondX - carX <= 10 and battery_level == 0:
minutes = warning_time // 60
seconds = warning_time - (60 * minutes)
warning_time -= 1
if warning_time > -1 and battery_level == 0:
screen.blit(charging_station, (chargingX, chargingY))
text6 = font.render("WARNING TIME " + str(minutes) + ":" + str(seconds), True, (56, 70, 72))
screen.blit(text6, (400, 0))
pygame.display.flip()
time.sleep(1)
elif warning_time > -1 and battery_level > 0:
game_level += 1
if warning_time == -1 and battery_level == 0:
draw_rectangles = False
if carX - chargingX < 200 and battery_level == 0:
battery_level += 100
game_level += 1
carX = 300
if thirdX - carX <= 10 and battery_level < 100 and carX % 1 == 0:
battery_level += 1
if fourthX - carX <= 10 and battery_level > 0 and carX % 2 == 0:
battery_level -= 1
if battery_level == 100:
text4()
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
carX -= 10
if event.key == pygame.K_RIGHT:
carX += 10
elif event.type == pygame.MOUSEBUTTONDOWN:
mouse_position = pygame.mouse.get_pos()
if rect3.collidepoint(mouse_position):
pygame.quit()
if rect4.collidepoint(mouse_position):
draw_rectangles = True
if charging_icon.get_rect().collidepoint(mouse_position) and warning_time < -1:
battery_level += 1
pygame.quit()