Rendera text med Python/PyGame

Permalänk
Medlem

Rendera text med Python/PyGame

Jo, nu är det så att vi håller på med ett programmeringsprojekt i skolan, och nu behöver vi hjälp med att rendera text, inte så att det kommer text i kommandoprompten, utan på det "grafiska fönstret" vi har.

Metoden jag använder för att få ut text i fönstret är:

if pygame.font:
font = pygame.font.Font(None, 78)
text = font.render("100%", 1, (10, 10, 10))
textpos = text.get_rect( centerx = 300, centery = 140)
background.blit(text, textpos)

Men detta skriver endast ut det förutbestämda, "100%", hur gör man för att få den att skriva ut värdet på en variabel?

Typ, om man hade satt dit x istället för "100%", så hade det skrivit ut vad man hade satt att x var.

Nybörjarproblem kanske, men jag kunde inte hitta svaret med google, så jag är tacksam för lättförståeliga förslag!

Visa signatur

|| Intel 8700K || MSI GTX 1080 TI Gaming X || Xonar DG || Samsung 750 EVO 500GB & Kingston A2000 1TB & Samsung 960 EVO 250GB || XFX XXX 650W || Antec P183 || Asus G-Sync RoG Swift PG279Q || Dell XPS 15 || Thinkpad X220

The Force is like Duct Tape, it has a light side, a dark side, and holds the universe together.

Permalänk
Medlem

realtext = "100%"

if pygame.font:
font = pygame.font.Font(None, 78)
text = font.render(realtext, 1, (10, 10, 10))
textpos = text.get_rect( centerx = 300, centery = 140)
background.blit(text, textpos)

Permalänk
Medlem

Jo. Så kan man ju göra.

Men om jag vill att siffran ska vara en variabel som kan ändras, medans procenttecknet ska vara samma hela tiden, hur gör man då?

Det ska nämligen vara till en sorts mätare, där beroende på vad man gör, så sjunker eller höjs antalet procent.

Visa signatur

|| Intel 8700K || MSI GTX 1080 TI Gaming X || Xonar DG || Samsung 750 EVO 500GB & Kingston A2000 1TB & Samsung 960 EVO 250GB || XFX XXX 650W || Antec P183 || Asus G-Sync RoG Swift PG279Q || Dell XPS 15 || Thinkpad X220

The Force is like Duct Tape, it has a light side, a dark side, and holds the universe together.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Newklear
Jo. Så kan man ju göra.

Men om jag vill att siffran ska vara en variabel som kan ändras, medans procenttecknet ska vara samma hela tiden, hur gör man då?

Det ska nämligen vara till en sorts mätare, där beroende på vad man gör, så sjunker eller höjs antalet procent.

Gör som i svaret du fick, men uppdatera variabelns värde allteftersom?

Permalänk
Medlem
Visa signatur

AK47s for everyone! - Angry mob
Since NaN /= NaN, I think, we should decipher 'NaN' as 'Not a NaN' - Miguel Mitrofanov
(Varför är människan så benägen att tro på Gud?) Antagligen har det lönat sig och evolutionen har drivit fram sådana hjärnor. - Anon

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av hivemind
Gör som i svaret du fick, men uppdatera variabelns värde allteftersom?

Det funkar inte om man vill ha det som jag vill ha det lite svårt att förklara.

Citat:

Ursprungligen inskrivet av vb
http://docs.python.org/library/stdtypes.html#string-formattin...

realtext = "%i%%" % 100

Du får gärna förklara mer hur man använder det där, förstod inte texten i den länken direkt, känns som väldigt avancerat fastän det troligen är mycket simpelt.

Är i variabeln som man kan öka och minska?

Visa signatur

|| Intel 8700K || MSI GTX 1080 TI Gaming X || Xonar DG || Samsung 750 EVO 500GB & Kingston A2000 1TB & Samsung 960 EVO 250GB || XFX XXX 650W || Antec P183 || Asus G-Sync RoG Swift PG279Q || Dell XPS 15 || Thinkpad X220

The Force is like Duct Tape, it has a light side, a dark side, and holds the universe together.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Newklear
Det funkar inte om man vill ha det som jag vill ha det lite svårt att förklara.

Du får allt göra ett försök för jag förstår verkligen inte vad problemet är. Metoden font.render() kan ta texten som en variabel, det behöver inte vara hårdkodat (sådana begränsningar kan metoder inte ha). Alltså har du den aktuella procent-satsen i en variabel.
Vid sidan av det är %-operatorn användbar om man vill skapa en sträng vars innehåll delvis bestäms av variabler:

x = 1 y = 2 str = 'The (x, y)-coordinates are (%i, %i)' % (x, y) print str # Prints: The (x, y)-coordinates are (1, 2)