Also ja, ich baue ein Spiel. Von Anfang an habe ich vergessen, die Bildschirmgröße anzupassen. Und ich weiß, dass ich versuche, es einzubeziehen. Ich habe fast alles funktioniert, es ändert die Größe von Bildern, aber sie werden seltsam.Bilder werden nicht richtig skaliert
Bildschirm Setup
size = [1600, 1000]
screen = pygame.display.set_mode((1600, 1000), HWSURFACE | DOUBLEBUF | RESIZABLE)
pygame.display.set_caption('#Vote me for the ruler of the world!!!')
clock = pygame.time.Clock()
Welches Programm tut, wenn Fenster
elif event.type == VIDEORESIZE:###########IF WINDOW GETS REZISED
screen = pygame.display.set_mode(event.dict['size'], HWSURFACE | DOUBLEBUF | RESIZABLE)
pygame.display.flip()
if GUIstatus == 1:
screen.fill((color,color,color))
screen.blit(pygame.transform.scale(spaceGUI, event.dict['size']),(0,0))
screen.blit(pygame.transform.scale(screenMonitor,event.dict['size']),(0,0))
screen.blit(pygame.transform.scale(button,event.dict['size']),(1425,10))
screen.blit(pygame.transform.scale(button,event.dict['size']),(1425,75))
screen.blit(pygame.transform.scale(button,event.dict['size']),(1425,140))
screen.blit(pygame.transform.scale(text_button1,event.dict['size']),(1436, 30))
pygame.display.flip()
Bildbeispiele Normal, der Größe verändert wird Wierd
Also, was hier geschieht?
BEARBEITEN Dies ist der Code für die Originalbildzeichnung. (Hauptschleife)
done = False
while done == False:
pygame.event.pump()
mouse_x,mouse_y = pygame.mouse.get_pos()
timer += 1
if timer > 99:
timer = 0
if GUIstatus == 1: ####HERE IS THE ORIGINAL IMAGE DRAWING
screen.blit(spaceGUI,(0,0))
screen.blit(screenMonitor,(0,0))
screen.blit(button,(1425,10))
screen.blit(button,(1425,75))
screen.blit(button,(1425,140))
screen.blit(text_button1, (1436, 30))
if techTreeRect.collidepoint(mouse_x,mouse_y) and event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:
print("techtree")
if contactsRect.collidepoint(mouse_x,mouse_y) and event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:
print("Contacts")
GUIstatus = 3
screen.fill((color,color,color))
Es sieht so aus, als ob der Hintergrund nicht neu gezeichnet wird. Ist 'Farbe' definiert? Ändert 'screen.fill ((255, 255, 255))' irgendetwas? –
Es sieht so aus, als ob Sie sowohl die skalierte als auch die normale Version zeichnen. Ich nehme an, dass Sie vor diesem Code in Ihrer Spielschleife zeichnen. dass dieser Code nicht das einzige Mal ist, dass du auf den Bildschirm blitzest. –
@WyattIsrael Farbe ist am Anfang definiert ich benutze 'screen.fill ((Farbe, Farbe, Farbe))' Da am Anfang des Programms ist wie glatte Transaktion, was den Bildschirm von Schwarz aufhellt. Also ja Farbe ist definiert seine aktuelle Farbe 255 auf dem Programm – cmdtvt