Posts: 26
Threads: 13
Joined: Dec 2017
import pygame, sys
class Scene:
def __init__(self):
self.team1 = 0
self.team2 = 0
self.font = pygame.font.SysFont('Cosmic Sans MS', 900)
self.team1txt = self.font.render(str(self.team1), True, (24, 14, 89,))
self.team2txt = self.font.render(str(self.team2), True, (31, 200, 32,))
self.scoreboard = pygame.image.load("scoreboard.jpg")
def draw(self, screen):
screen.blit(self.scoreboard, (0, 0))
screen.blit(self.team1txt, (500, 500))
class main:
def __init__(self, winx, winy, caption):
self.screen = pygame.display.set_mode((winx, winy))
self.caption = pygame.display.set_caption(caption)
self.clock = pygame.time.Clock()
self.scene = Scene()
self.black = (200, 0, 0)
def loop(self):
self.notDead = True
while self.notDead:
for event in pygame.event.get():
if event.type == pygame.QUIT:
self.notDead = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
self.scene.team1 += 1
print(str(self.scene.team1))
if event.key == pygame.K_RIGHT:
self.scene.team2 += 1
print(str(self.scene.team2))
self.scene.draw(self.screen)
pygame.display.update()
self.clock.tick(60)
if __name__ == '__main__':
pygame.init()
pygame.font.init()
game = main(1920, 1080, 'Scoreboard')
game.loop() I can't seem to get the team1 and team2 score to show on the display. Any help is appreciated :)
Posts: 5,151
Threads: 396
Joined: Sep 2016
Aug-21-2019, 03:43 PM
(This post was last modified: Aug-21-2019, 03:43 PM by metulburr.)
Quote: def draw(self, screen):
screen.blit(self.scoreboard, (0, 0))
screen.blit(self.team1txt, (500, 500))
You are only drawing one number here text1text. Duplicate that line under it and change team1txt to team2text and change the blit position tuple to something else and you wlll see both.
like:
def draw(self, screen):
screen.blit(self.scoreboard, (0, 0))
screen.blit(self.team1txt, (500, 500))
screen.blit(self.team2txt, (900, 500))
Recommended Tutorials:
Posts: 26
Threads: 13
Joined: Dec 2017
(Aug-21-2019, 03:43 PM)metulburr Wrote: Quote: def draw(self, screen):
screen.blit(self.scoreboard, (0, 0))
screen.blit(self.team1txt, (500, 500))
You are only drawing one number here text1text. Duplicate that line under it and change team1txt to team2text and change the blit position tuple to something else and you wlll see both.
like:
def draw(self, screen):
screen.blit(self.scoreboard, (0, 0))
screen.blit(self.team1txt, (500, 500))
screen.blit(self.team2txt, (900, 500))
Totally forgot to blit teamtxt2 derp, thank you for the help. Also, is there any way I could let the 2 teams type their desired team name? I have this but it requires the names to be typed in the shell.
import pygame
class Scene:
def __init__(self):
self.team1 = 0
self.team2 = 0
self.font = pygame.font.SysFont('Cosmic Sans MS', 60)
self.background = pygame.image.load("background.jpg")
self.test = []
def names(self):
self.teamname1 = input()
self.teamname2 = input()
def update(self):
self.team1txt = self.font.render(str(self.team1), True, (24, 14, 89,))
self.team2txt = self.font.render(str(self.team2), True, (31, 200, 32,))
self.team1nametxt = self.font.render(self.teamname1, True, (31, 200, 32,))
self.team2nametxt = self.font.render(self.teamname2, True, (31, 200, 32,))
def draw(self, screen):
screen.blit(self.background, (0,0))
screen.blit(self.team1txt, (250,550))
screen.blit(self.team2txt, (800,550))
screen.blit(self.team1nametxt, (900, 200))
screen.blit(self.team2nametxt, (231, 900))
class main:
def __init__(self, winx, winy, caption):
self.screen = pygame.display.set_mode((winx, winy))
self.caption = pygame.display.set_caption(caption)
self.clock = pygame.time.Clock()
self.scene = Scene()
self.playernames = True
def loop(self):
self.notDead = True
while self.notDead:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
self.notDead = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
self.scene.team1 += 1
pygame.mixer.music.load("dading.mp3")
pygame.mixer.music.play(0)
if event.key == pygame.K_RIGHT:
self.scene.team2 += 1
pygame.mixer.music.load("dading.mp3")
pygame.mixer.music.play(0)
if event.key == pygame.K_p:
pygame.quit()
exit()
if self.playernames == True:
self.scene.names()
self.playernames = False
self.scene.update()
self.scene.draw(self.screen)
pygame.display.update()
self.clock.tick(60)
if __name__ == '__main__':
pygame.init()
pygame.font.init()
game = main(1920, 1080, 'Scoreboard')
game.loop()
Posts: 5,151
Threads: 396
Joined: Sep 2016
you would need to create a prompt. Pygame does not come with a default one, so you would have to create your own or use someone else's already made.
Check out this tutorial
https://python-forum.io/Thread-PyGame-User-Interface
Recommended Tutorials:
Posts: 544
Threads: 15
Joined: Oct 2016
99 percent of computer problems exists between chair and keyboard.
|