pygame
Verfasst: Sonntag 28. November 2021, 13:39
Hi ich habe ein Problem. Ich versuche gerade eine art hintergrund von einer website(https://discordtemplates.me/) nach zu coden.
bis her sieht mein code so aus:
das problem ist jetzt aber das das ganze ziemlich verbuggt sobald die hitbox der punkte den rand berührt.
wenn die hitbox den oberen rand berührt hören die verbindungen auf ihre y variable zu verändern und berührt die hitbox den linken rand hört die x variable auf sich zu verändern.
würde mich über hilfe sehr freuen
LG
bis her sieht mein code so aus:
Code: Alles auswählen
import pygame, sys, random
x = 1672
y = 644
white = (255,255,255)
mark = (32,123,123)
bg = (44,47,51)
points_list = list()
aalines = list()
pygame.init()
Clock = pygame.time.Clock()
screen = pygame.display.set_mode((x,y))
def spawn_points():
global points_list
amount = int((x*y)/13459)
for p in range(amount-len(points_list)):
x_speed = random.randint(-1.0,1.0)
y_speed = random.randint(-1.0,1.0)
points_list.append([[random.randint(10,x),random.randint(10,y)],[x_speed,y_speed]])
def update_points():
global aalines
for p in range(len(points_list)):
point = points_list[p][0]
x_speed = points_list[p][1][0]/4
y_speed = points_list[p][1][1]/4
points_list[p][0] = [points_list[p][0][0]+x_speed,points_list[p][0][1]+y_speed]
pygame.draw.circle(screen,white,point,2)
if point[0] < 0 or point[0] > x or point[1] < 0 or point[1] > y:
x_speed = random.randint(-1.0,1.0)
y_speed = random.randint(-1.0,1.0)
points_list[p] = [[random.randint(10,x),random.randint(10,y)],[x_speed,y_speed]]
for line in range(len(aalines)):
l = aalines[line]
pygame.draw.aaline(screen,mark,l[0],l[1])
aalines.clear()
def hitbox():
global hitboxes, aalines
hitboxes = []
for p in range(len(points_list)):
point = points_list[p][0]
h = pygame.draw.circle(screen,mark,point,50)
hitboxes.append(h)
for h in hitboxes:
for h2 in hitboxes:
if h.colliderect(h2):
aalines.append([[h.x+50,h.y+50],[h2.x+50,h2.y+50]])
spawn_points()
while True:
hitbox()
screen.fill(bg)
mouse = pygame.mouse.get_pos()
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
update_points()
pygame.display.update()
Clock.tick(120)
wenn die hitbox den oberen rand berührt hören die verbindungen auf ihre y variable zu verändern und berührt die hitbox den linken rand hört die x variable auf sich zu verändern.
würde mich über hilfe sehr freuen
LG