Я в тупике. Моя главная цель в настоящее время - сделать так, чтобы пользователь нажимал на кружок и число в верхнем левом углу экрана, чтобы go увеличивалось на единицу при каждом нажатии (попытка создать основную игру c clicker). , Я дошел до того, что когда вы нажимаете на кружок, число увеличивается на go! За исключением того, что число увеличивается более одного раза. Вот функция, в которой находится код:
def bubble():
orange = (255, 165, 0)
dark_orange = (255, 140, 0)
bubble_color = dark_orange
bubble_x = 300
bubble_y = 400
bubble_pos = (bubble_x, bubble_y)
bubble_rad = 100
mouse_x, mouse_y = pygame.mouse.get_pos()
distance = math.hypot(bubble_x - mouse_x, bubble_y - mouse_y)
if bubble_rad >= distance:
bubble_color = orange
if bubble_rad >= distance and event.type == pygame.MOUSEBUTTONDOWN:
global kill_counter
kill_counter += 1
pygame.draw.circle(screen, bubble_color, bubble_pos, bubble_rad)
Я пытался изменить положение кнопки мыши на кнопку мыши вверх, но та же проблема возникала только после нажатия (она остановилась, когда я переместил мышь). Затем я попытался сделать это:
if bubble_rad >= distance and event.type == pygame.MOUSEBUTTONDOWN and event.type == pygame.MOUSEBUTTONUP
Это не сработало, что имеет смысл, потому что мышь не может одновременно подниматься и опускаться. Есть ли способ сделать так, чтобы kill_counter работал только тогда, когда мышь щелкают, а затем не щелкают? Вот весь мой код на случай, если проблема кроется.
import math
pygame.init()
# General
display_width = 600
display_height = 800
background = pygame.image.load("background.png")
screen = pygame.display.set_mode((display_width, display_height))
pygame.display.set_caption("SLASHR")
pygame.display.set_icon(pygame.image.load("knifeart.png"))
# Global variables
kill_counter = 0
# Functions
def counter():
font = pygame.font.Font("freesansbold.ttf", 52)
crimson = (220, 20, 60)
screen.blit(font.render("Kill Count: " + str(kill_counter), True, crimson), (0, 10))
def bubble():
orange = (255, 165, 0)
dark_orange = (255, 140, 0)
bubble_color = dark_orange
bubble_x = 300
bubble_y = 400
bubble_pos = (bubble_x, bubble_y)
bubble_rad = 100
mouse_x, mouse_y = pygame.mouse.get_pos()
distance = math.hypot(bubble_x - mouse_x, bubble_y - mouse_y)
if bubble_rad >= distance:
bubble_color = orange
if bubble_rad >= distance and event.type == pygame.MOUSEBUTTONDOWN:
global kill_counter
kill_counter += 1
pygame.draw.circle(screen, bubble_color, bubble_pos, bubble_rad)
# Game Loop
running = True
while running:
screen.fill((255, 255, 255))
screen.blit(background, (0, 0))
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
counter()
bubble()
pygame.display.update()
Заранее спасибо за то, что прочитали и помогли мне!