Exemplo n.º 1
0
    def __init__(self,
                 screen,
                 pos_x,
                 pos_y,
                 label_text,
                 width=200,
                 label_size=150,
                 min=0.0,
                 max=1.0,
                 initial=0.5,
                 margin=20):
        self.width = width
        self.label_size = label_size

        self.label = TextBox(screen, pos_x, pos_y, label_size, 30, fontSize=16)
        self.label.setText(label_text)
        self.slider = Slider(screen,
                             pos_x + self.label_size + margin,
                             pos_y,
                             self.width,
                             20,
                             min=min,
                             max=max,
                             step=0.01,
                             initial=initial)
        self.output = TextBox(screen,
                              pos_x + self.label_size + self.width +
                              margin * 2,
                              pos_y,
                              30,
                              20,
                              fontSize=10)
Exemplo n.º 2
0
    def __init__(self, jogador, obstaculo_controller, efeito_controller):
        super().__init__(jogador, obstaculo_controller, efeito_controller)
        self.__recorde_salvo = False

        self.__texto_derrota = Texto("Derrota", "Materials/Early GameBoy.ttf",
                                     50, self.BLACK, [30, 40])

        self.__fundo_pontuacao = Fundo([20, 140, 360, 70], self.DARK_GREY)
        self.__texto_pontuacao = Texto(f"Pontos: {self.pontuacao.pontos}",
                                       "Materials/Early GameBoy.ttf", 20,
                                       self.WHITE, [30, 160])

        self.__nome = TextBox(self.tela.display,
                              20,
                              250,
                              280,
                              70,
                              borderColour=(0, 0, 0),
                              textColour=(0, 0, 0),
                              radius=10,
                              borderThickness=5)
        self.__nome.font = pygame.font.Font("Materials/Retro Gaming.ttf", 30)
        self.__texto_recorde = Texto("Insira seu nome e clique em salvar.",
                                     "Materials/Retro Gaming.ttf", 12,
                                     self.BLACK, [25, 325])

        self.__events_derrota = EventsDerrota(self.__nome)

        self.__imagem_botao_salvar = pygame.image.load(
            "Materials/disquete.png").convert_alpha(self.tela.display)
        self.__fundo_salvar = Fundo([310, 250, 70, 70], self.WHITE)
        self.__botao_salvar = BotaoImagem(self.__imagem_botao_salvar,
                                          (315, 255), self.__fundo_salvar,
                                          self.GREEN, self.DARK_GREEN,
                                          self.__events_derrota)

        self.__texto_jogar_novamente = Texto("Jogar novamente",
                                             "Materials/Retro Gaming.ttf", 30,
                                             self.WHITE, [40, 395])
        self.__fundo_jogar_novamente = Fundo([20, 380, 360, 70], self.WHITE)
        self.__botao_jogar_novamente = Botao(self.__texto_jogar_novamente,
                                             self.__fundo_jogar_novamente,
                                             self.GREEN, self.DARK_GREEN,
                                             self.__events_derrota)

        self.__texto_menu = Texto("Menu", "Materials/Retro Gaming.ttf", 40,
                                  self.WHITE, [135, 490])
        self.__fundo_menu = Fundo([20, 480, 360, 70], self.WHITE)
        self.__botao_menu = Botao(self.__texto_menu, self.__fundo_menu,
                                  self.GREEN, self.DARK_GREEN,
                                  self.__events_derrota)
Exemplo n.º 3
0
def setup():
	Boid_List = BoidGroup(POPSIZE, p1_cam)
	sliders, values = [], []
	for i in range(6):
		if i < 3:
			sliders.append(Slider(flockDisplay, p2_cam.x+30, (i+1)*70, 
				(width-div*width)//1-60, 16, min=0., max=100., step=1,
				colour = white, handleRadius = 8, initial = perRadius[i] ))
			values.append(TextBox(flockDisplay, p2_cam.x+190, (i+1)*70-25, 
				20, 20, fontSize=10, colour=black, textColour=white))
		else:
			sliders.append(Slider(flockDisplay, p2_cam.x+30, 40+(i+1)*70,
			 (width-div*width)//1-60, 16, min=0., max=1., step=0.01,
			 colour = white, handleRadius = 8, initial = weights[i%3] ))
			values.append(TextBox(flockDisplay, p2_cam.x+180, 40+(i+1)*70-25, 
				20, 20, fontSize=10, colour=black, textColour=white))
	return Boid_List, sliders, values
Exemplo n.º 4
0
def ask():
    screen.fill(BLACK)
    text_box = TextBox(screen, (WIDTH // 2) - 250, (HEIGHT // 2) - 50,
                       500,
                       100,
                       fontSize=75,
                       borderColour=BLACK,
                       textColour=BLACK)
    waiting = True
    while waiting:
        events = pygame.event.get()
        for event in events:
            if event.type == pygame.QUIT:
                quit()
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_RETURN:
                    waiting = False

        text_box.listen(events)
        text_box.draw()
        if not waiting:
            screen.fill(BLACK)
            draw_text(text_box.getText(), WHITE, WIDTH // 2, HEIGHT // 2)
        pygame.display.flip()
    del text_box
Exemplo n.º 5
0
class LabeledSlider:
    def __init__(self,
                 screen,
                 pos_x,
                 pos_y,
                 label_text,
                 width=200,
                 label_size=150,
                 min=0.0,
                 max=1.0,
                 initial=0.5,
                 margin=20):
        self.width = width
        self.label_size = label_size

        self.label = TextBox(screen, pos_x, pos_y, label_size, 30, fontSize=16)
        self.label.setText(label_text)
        self.slider = Slider(screen,
                             pos_x + self.label_size + margin,
                             pos_y,
                             self.width,
                             20,
                             min=min,
                             max=max,
                             step=0.01,
                             initial=initial)
        self.output = TextBox(screen,
                              pos_x + self.label_size + self.width +
                              margin * 2,
                              pos_y,
                              30,
                              20,
                              fontSize=10)

    def draw(self):
        self.label.draw()
        self.slider.draw()
        self.output.draw()

    def update(self, events):
        self.slider.listen(events)
        self.output.setText("%.2f" % self.slider.getValue())

    def get_value(self):
        return self.slider.getValue()

    def set_value(self, value):
        self.slider.setValue(value)
Exemplo n.º 6
0
    def show_options_screen(self):
        bg = pg.image.load(background_path('japan_menu.png'))
        bg = pg.transform.scale(bg, WINDOW_SIZE)
        button_width = 200
        button_height = 50
        x = WIDTH // 16
        y = HEIGHT // 16
        sliderMusic = Slider(self.screen,
                             WIDTH // 3,
                             y * 5,
                             WIDTH // 3,
                             40,
                             min=0,
                             max=100,
                             step=1,
                             colour=DARKGREY,
                             handleColour=LIGHTGREY,
                             handleRadius=30,
                             initial=self.audioplayer.get_music_volume())
        sliderSounds = Slider(self.screen,
                              WIDTH // 3,
                              y * 7,
                              WIDTH // 3,
                              40,
                              min=0,
                              max=100,
                              step=1,
                              colour=DARKGREY,
                              handleColour=LIGHTGREY,
                              handleRadius=30,
                              initial=self.audioplayer.get_sound_volume())
        outputMusic = TextBox(self.screen,
                              sliderMusic.getX() + sliderMusic.getWidth() + 50,
                              y * 5,
                              50,
                              40,
                              fontSize=30)
        outputSounds = TextBox(self.screen,
                               sliderSounds.getX() + sliderSounds.getWidth() +
                               50,
                               y * 7,
                               50,
                               40,
                               fontSize=30)
        running_options = True
        while running_options:
            self.screen.blit(bg, (0, 0))
            draw_text('Options', self.font, WHITE, self.screen,
                      WIDTH // 2 - len('Options') * button_width // 30, y * 3)

            mx, my = pg.mouse.get_pos()

            button_exit = pygame.Rect(x * 5, y * 14, button_width,
                                      button_height)
            button_save = pygame.Rect(x * 9, y * 14, button_width,
                                      button_height)

            if button_exit.collidepoint((mx, my)):
                if self.click:
                    running_options = False
            if button_save.collidepoint((mx, my)):
                if self.click:
                    running_options = False
                    self.audioplayer.set_sounds_volume(sliderSounds.getValue())
                    self.audioplayer.set_music_volume(sliderMusic.getValue())

            pygame.draw.rect(self.screen, LIGHTGREY, button_exit)
            pygame.draw.rect(self.screen, LIGHTGREY, button_save)

            draw_text(
                'Exit', self.font, WHITE, self.screen,
                x * 5 + button_width // 2 - len('Exit') * button_width // 30,
                y * 14 + button_height // 2 - 11)
            draw_text(
                'Save', self.font, WHITE, self.screen,
                x * 9 + button_width // 2 - len('Save') * button_width // 30,
                y * 14 + button_height // 2 - 11)

            self.click = False

            sliderMusic.listen(self.events())
            sliderMusic.draw()
            outputMusic.setText(sliderMusic.getValue())
            outputMusic.draw()

            sliderSounds.listen(self.events())
            sliderSounds.draw()
            outputSounds.setText(sliderSounds.getValue())
            outputSounds.draw()

            self.events()
            pg.display.update()
            self.clock.tick(FPS)
Exemplo n.º 7
0
WIDTH, HEIGHT = (600, 600)
WHITE = (255,255,255)
BLACK = (0,0,0)
GREEN = ("#39FF14")
RED = (255,7,58)
INIT_EPC = 20

pg.init()
fps = 60
clock = pg.time.Clock()
screen = pg.display.set_mode((WIDTH,HEIGHT))
pg.display.set_caption('Fourier Series')
pg.mouse.set_cursor(*pg.cursors.tri_left)
slider = Slider(screen,WIDTH-340,HEIGHT-50,170,16,min=1, max=50, step=1,color=WHITE,handleColor=BLACK,handleRadius=8,initial=INIT_EPC)
textBox = TextBox(screen, WIDTH-140,HEIGHT-70,40,40,fontSize=15,colour=BLACK,textColour=GREEN)
on_button = Button(screen, WIDTH-150, 20, 50, 30, text="ON",
					fontSize=15, margin=20,
		            inactiveColour=GREEN,
		            hoverColour=(128,128,128),
		            pressedColour=WHITE, radius=2,
		            onClick=lambda:True)
off_button = Button(screen, WIDTH-80, 20, 50, 30, text="OFF",
					fontSize=15, margin=20,
		            inactiveColour=RED,
		            hoverColour= (128,128,128),
		            pressedColour=WHITE, radius=2,
		            onClick=lambda:True)
font1 = pg.font.Font('freesansbold.ttf', 16)
text = font1.render('Epicycles : ', True, GREEN, BLACK)
button_text = font1.render("Circles : ", True, GREEN, BLACK)
Exemplo n.º 8
0
pygame.init()
WIDTH = 800
WIN = pygame.display.set_mode((WIDTH, 900))
pygame.display.set_caption("A* Path Finding Algorithm")

slider_speed = Slider(WIN,
                      50,
                      820,
                      350,
                      20,
                      min=0,
                      max=1,
                      step=0.05,
                      initial=0)
output_slider = TextBox(WIN, 50, 860, 350, 20, fontSize=15)

RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 255, 0)
YELLOW = (255, 255, 0)
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
PURPLE = (128, 0, 128)
ORANGE = (255, 165, 0)
GREY = (128, 128, 128)
TURQUOISE = (64, 224, 208)


class Spot:
    def __init__(self, row, col, width, total_rows):
Exemplo n.º 9
0
    def __init__(self, window, largura, altura):
        pygame.init()
        fontearquivo = os.path.dirname(os.path.abspath(__file__)).replace(
            "view", "").replace("model", "")
        fontearquivo = os.path.join(fontearquivo, "lib")
        fontearquivo = os.path.join(fontearquivo, "FreeSansBold.ttf")
        self.fa = fontearquivo
        self.altura = altura
        self.fontetipo = 'comicsansms'
        self.ajuste = 360
        self.desenhaalertaCaixaPerdeu = False
        self.opcoesFases = False
        self.largura = largura
        self.scala_x = self.largura / 1366
        self.scala_y = self.altura / 768
        self.tamanho = (self.largura, self.altura)
        self.indexAjuda = 1
        self.continua = False
        # pygame.display.set_mode(self.tamanho,pygame.SCALED)
        self.janela = window
        self.__janela = carrega_imagem("janela.png")
        self.cadeado = carrega_imagem("cadeado.png")
        self.imgVazia = carrega_imagem("rect.png")
        self.__janela2 = pygame.transform.smoothscale(
            self.__janela.convert_alpha(),
            (int(30 * self.scala_x), int(30 * self.scala_y)))

        # FONTES
        self.fonteGrande = pygame.font.Font(fontearquivo,
                                            int(22 * self.scala_x))
        self.fontePequena = pygame.font.Font(fontearquivo,
                                             int(12 * self.scala_x))
        self.fonteTitulo = pygame.font.Font(fontearquivo,
                                            int(55 * self.scala_x))

        self.corBranca = Cores.BRANCO
        self.corfundo = Cores.CORFUNDO
        self.corPrincipal = Cores.CORPRINCIPAL
        self.corSecundaria = Cores.CORSECUNDARIA
        self.corTexto = Cores.CORSECUNDARIA
        self.cor1Elemento = Cores.CORELEMENTO
        self.telaInicio = False
        self.telaConfig = True
        self.telaSaves = self.telaJogo = self.telaCriar = self.telaFases = self.telaAjuda = False
        self.rolagem = 0
        pygame.display.set_icon(carrega_imagem("icon.png"))
        pygame.display.set_caption("PaintCoding")
        # pygame.display.set_mode((self.largura, self.altura),pygame.FULLSCREEN)
        self.ok = Sprite("ok.png", 1, 2)
        self.ok.definirPosicao((760, 380))
        self.menu = Sprite("menu.png", 1, 2)
        self.menu.definirPosicao((550, 360))
        self.reiniciar = Sprite("reiniciar.png", 1, 2)
        self.reiniciar.definirPosicao((630, 360))
        self.continuar = Sprite("continuar.png", 1, 2)
        self.continuar.definirPosicao((710, 360))
        self.desenhaAlerta = self.desenhaNovoJogo = False
        self.textoAlerta = ("TEXTO TITULO!", "PRESSIONE OK PARA CONTINUAR!")
        self.caixaTexto = TextBox(self.janela,
                                  int(550 * ESCALAX),
                                  int(300 * ESCALAY),
                                  250 * ESCALAX,
                                  40 * ESCALAY,
                                  fontSize=20,
                                  borderColour=Cores.CORPRINCIPAL,
                                  radius=10,
                                  borderThickness=5)
        # INICIO
        self.botaostart = Sprite("BOTAOJOGAR.PNG", 1, 2)
        self.botaoCriar = Sprite("BOTAOCRIAR.PNG", 1, 2)
        self.botaoSair = Sprite("BOTAOSAIR.PNG", 1, 2)
        self.botaoVolume = Sprite("BOTAOVOLUMEON.PNG", 1, 2)
        self.btAjuda = Sprite("ajuda.png", 1, 2)
        self.btyt = Sprite("youtube.png", 1, 2)
        self.btConfig = Sprite("engrenagem.png", 1, 2)
        self.img = carrega_imagem("img2.png")
        self.logo = carrega_imagem("img2.png", escala=3)
        self.c1 = carrega_imagem("c1.png")
        self.c2 = carrega_imagem("c2.png")
        self.c3 = carrega_imagem("c3.png")
        self.c4 = carrega_imagem("c4.png")
        self.c5 = carrega_imagem("c5.png")
        # self.botaostart.definirPosicao((((largura/2)-self.botaostart.rect.h), 330))
        self.botaostart.definirPosicao((350 + (self.ajuste / 2), 330))
        self.botaoCriar.definirPosicao((350 + (self.ajuste / 2), 450))
        self.botaoSair.definirPosicao((350 + (self.ajuste / 2), 570))
        # self.botaoCriar.definirPosicao((((largura / 2) - self.botaoCriar.rect.h), 450))
        # self.botaoSair.definirPosicao((((largura / 2) - self.botaoSair.rect.h), 590))
        self.btyt.definirPosicao((1040, 40))
        self.btAjuda.definirPosicao((1130, 50))
        self.btConfig.definirPosicao((1210, 50))
        self.botaoVolume.definirPosicao((1290, 50))
        # ESCOLHERSAVE
        self.botaoNovoJogo = Sprite("BOTAONOVOJOGO.PNG", 1, 2)
        self.botaoFasesPersonalizadas = Sprite("BOTAOCRIACOES.PNG", 1, 2)
        self.botaoVoltar = Sprite("VOLTAR.png", 1, 2)
        self.botaoCima = Sprite("BOTAOCIMA.png", 1, 2)
        self.botaoBaixo = Sprite("BOTAOBAIXO.png", 1, 2)
        self.botaoNovoJogo.definirPosicao((90 + (self.ajuste / 2), 610))
        self.botaoFasesPersonalizadas.definirPosicao(
            (350 + (self.ajuste / 2), 610))
        self.botaoCima.definirPosicao((860 + (self.ajuste / 2), 84))
        self.botaoBaixo.definirPosicao((860 + (self.ajuste / 2), 510))
        self.savesPane = Painel(self.escalarX(943), self.escalarY(493),
                                self.escalarX(25 + (self.ajuste / 2)),
                                self.escalarY(100))
        self.moverretangulo = False
        self.botaoPlay = []
        self.botaolixeira = []
        self.saves = None
        # self.fasesPersonalizadas = None

        # CRIAR
        self.colunas = self.linhas = 2
        self.execucoes = 1
        self.btCimaCol = Sprite("BOTAOCIMA.png", 1, 2, 2)
        self.btCimaLi = Sprite("BOTAOCIMA.png", 1, 2, 2)
        self.btBaixoCol = Sprite("BOTAOBAIXO.png", 1, 2, 2)
        self.btBaixoLi = Sprite("BOTAOBAIXO.png", 1, 2, 2)
        self.btCimaEx = Sprite("BOTAOCIMA.png", 1, 2, 2)
        self.btBaixoEx = Sprite("BOTAOBAIXO.png", 1, 2, 2)
        self.btCimaCol.definirPosicao((90, 180))
        self.btBaixoCol.definirPosicao((90, 250))
        self.btCimaLi.definirPosicao((200, 180))
        self.btBaixoLi.definirPosicao((200, 250))
        self.btCimaEx.definirPosicao((250, 380))
        self.btBaixoEx.definirPosicao((250, 450))
        self.botaoProximo = Sprite("BOTAOPROX.PNG", 1, 2)
        self.botaoVoltarCriar = Sprite("VOLTAR.png", 1, 2)
        self.botaoVoltarCriar.definirPosicao((1080, 580))
        self.botaoProximo.definirPosicao((790, 580))

        # config
        self.sliderVl = Slider(self.janela,
                               self.escalarX(170),
                               self.escalarY(400),
                               self.escalarX(400),
                               self.escalarY(20),
                               min=20,
                               max=300,
                               step=1,
                               colour=Cores.CORSECUNDARIA,
                               handleColour=Cores.CORPRINCIPAL)
        self.sliderVl.value = Util.Config.VELOCIDADE
        # self.btCimaVel = Sprite("BOTAOCIMA.png", 1, 2, 2)
        # self.btBaixoVel = Sprite("BOTAOBAIXO.png", 1, 2, 2)
        # self.btCimaVel.definirPosicao((250, 280))
        # self.btBaixoVel.definirPosicao((250, 350))
        self.botaoConfirmar = Sprite("BOTAOSALVAR.PNG", 1, 2)
        self.botaoConfirmar.definirPosicao((800 + (self.ajuste / 2), 580))

        # TELA FASES PERSONALIZADAS
        self.botaoEsquerda = Sprite("BOTAOESQUERDA.png", 1, 2)
        self.botaoDireita = Sprite("BOTAODIREITA.png", 1, 2)
        self.botaoEsquerda.definirPosicao((60, 350))
        self.botaoDireita.definirPosicao((1220, 350))
        self.contornoFase = None
        self.btVoltarFases = Sprite("VOLTAR.png", 1, 2)
        self.btVoltarFases.definirPosicao((950, 600))
        self.fasespersonalizadas = None
        self.rolagemCriacoes = 0
        # MSG PERRGUNTA
        self.desenhaConfirmacao = False
        self.textopergunta = ("Confirma a exclusão do Progresso?",
                              " Essa ação não poderá ser desfeita!")
        self.confirmarbotao = Sprite("confirmar.png", 1, 2)
        self.cancelarbotao = Sprite("cancelar.png", 1, 2)
        self.confirmarbotao.definirPosicao((850, 390))
        self.cancelarbotao.definirPosicao((695, 390))
        # JOGO
        # 943, 493, 25, 70)
        self.jogoPane = PainelJogo(self, self.largura, self.altura, 0, 0)
        self.botoesFases = gerarBotaoFase(janela=self.janela)
        self.nivelJogador = 0
        self.telaMenuFases = False

        # IMAGEM
        self.imagemConteiner = carrega_imagem("conteiner.png")
        # TEXTOS
        self.tituloTelaSave = self.fonteTitulo.render("Jogar", True,
                                                      self.corPrincipal)
        self.tituloTelaMenuFase = self.fonteTitulo.render(
            "Escolha um nível para jogar", True, self.corPrincipal)
        self.tituloTelaFases = self.fonteTitulo.render("Fases personalizadas",
                                                       True, self.corPrincipal)
        self.txt_pane = self.fonteTitulo.render(
            "Selecione as características da fase: ", True, self.corTexto)
        self.txt_desenho = self.fonteGrande.render(
            "Selecione a quantidade de linhas e colunas do desenho: ", True,
            self.corTexto)
        self.txt_col_lin = self.fonteGrande.render("Colunas  x  Linhas: ",
                                                   True, self.corPrincipal)
        self.txt_X = self.fonteGrande.render("X", True, self.corPrincipal)
        self.txt_qntvidas = self.fonteGrande.render(
            "Selecione a quantidade de execuções disponíveis para concluir o desenho:",
            True, self.corTexto)
        self.txt_ex = self.fonteGrande.render("Nº Execuções:", True,
                                              self.corPrincipal)

        self.txt_CONFIG = self.fonteTitulo.render("CONFIGURAÇÕES ", True,
                                                  self.corTexto)
        self.txt_descVelocidade = self.fonteGrande.render(
            "Ajuste com o slider abaixo a velocidade das animações dentro do PaintCode:",
            True, self.corTexto)
        self.txt_velocidade = self.fonteGrande.render("VELOCIDADE:", True,
                                                      self.corPrincipal)
        self.txt_explicacaoVelocidade = self.fonteGrande.render(
            "Deslize ", True, self.corPrincipal)
Exemplo n.º 10
0
class EstadoDerrota(Estado):
    def __init__(self, jogador, obstaculo_controller, efeito_controller):
        super().__init__(jogador, obstaculo_controller, efeito_controller)
        self.__recorde_salvo = False

        self.__texto_derrota = Texto("Derrota", "Materials/Early GameBoy.ttf",
                                     50, self.BLACK, [30, 40])

        self.__fundo_pontuacao = Fundo([20, 140, 360, 70], self.DARK_GREY)
        self.__texto_pontuacao = Texto(f"Pontos: {self.pontuacao.pontos}",
                                       "Materials/Early GameBoy.ttf", 20,
                                       self.WHITE, [30, 160])

        self.__nome = TextBox(self.tela.display,
                              20,
                              250,
                              280,
                              70,
                              borderColour=(0, 0, 0),
                              textColour=(0, 0, 0),
                              radius=10,
                              borderThickness=5)
        self.__nome.font = pygame.font.Font("Materials/Retro Gaming.ttf", 30)
        self.__texto_recorde = Texto("Insira seu nome e clique em salvar.",
                                     "Materials/Retro Gaming.ttf", 12,
                                     self.BLACK, [25, 325])

        self.__events_derrota = EventsDerrota(self.__nome)

        self.__imagem_botao_salvar = pygame.image.load(
            "Materials/disquete.png").convert_alpha(self.tela.display)
        self.__fundo_salvar = Fundo([310, 250, 70, 70], self.WHITE)
        self.__botao_salvar = BotaoImagem(self.__imagem_botao_salvar,
                                          (315, 255), self.__fundo_salvar,
                                          self.GREEN, self.DARK_GREEN,
                                          self.__events_derrota)

        self.__texto_jogar_novamente = Texto("Jogar novamente",
                                             "Materials/Retro Gaming.ttf", 30,
                                             self.WHITE, [40, 395])
        self.__fundo_jogar_novamente = Fundo([20, 380, 360, 70], self.WHITE)
        self.__botao_jogar_novamente = Botao(self.__texto_jogar_novamente,
                                             self.__fundo_jogar_novamente,
                                             self.GREEN, self.DARK_GREEN,
                                             self.__events_derrota)

        self.__texto_menu = Texto("Menu", "Materials/Retro Gaming.ttf", 40,
                                  self.WHITE, [135, 490])
        self.__fundo_menu = Fundo([20, 480, 360, 70], self.WHITE)
        self.__botao_menu = Botao(self.__texto_menu, self.__fundo_menu,
                                  self.GREEN, self.DARK_GREEN,
                                  self.__events_derrota)

    def salvar_recorde(self):
        if self.__nome.getText() != "":
            if len(self.__nome.getText()) > 10:
                self.__texto_recorde.texto = "Digite um nome menor, limite 10 caracteres."
            elif not self.__recorde_salvo:
                msg, salvo = self.recordes_controller.inclui_recorde(
                    self.__nome.getText(), self.pontuacao.pontos)
                self.__texto_recorde.texto = msg
                self.__recorde_salvo = salvo
            else:
                self.__texto_recorde.texto = "Só é possível salvar o recorde uma vez."
        else:
            self.__texto_recorde.texto = "Digite um nome."

        self.__nome.setText("")
        self.__nome.cursorPosition = 0

    def start(self):
        #Updates
        self.__events_derrota.check_events()
        jogar_novamente = self.__botao_jogar_novamente.update()
        menu_derrota = self.__botao_menu.update()

        salvar_recorde = self.__botao_salvar.update()
        if salvar_recorde:
            self.salvar_recorde()

        #Draws
        self.tela.fill(self.GREY)
        self.__texto_derrota.draw()
        self.__fundo_pontuacao.blitme()

        self.__texto_pontuacao.texto = str(f"Pontos: {self.pontuacao.pontos}")
        self.__texto_pontuacao.draw()

        self.__nome.draw()
        self.__botao_salvar.draw()
        self.__texto_recorde.draw()

        self.__botao_jogar_novamente.draw()
        self.__botao_menu.draw()

        if jogar_novamente:
            self.__recorde_salvo = False
            self.__texto_recorde.texto = "Insira seu nome e clique em salvar."
            self.pontuacao.zerar()
            self.velocidade_controller.zerar()
            self.fases_controller.zerar()
            self.jogador.reset()
            self.obstaculo_controller.zerar()
            self.efeito_controller.zerar()
            '''
            self.som_controller.stop_music()
            self.som_controller.play_music(0)
            '''
            return "jogando"
        elif menu_derrota:
            self.__recorde_salvo = False
            self.__texto_recorde.texto = "Insira seu nome e clique em salvar."
            self.pontuacao.zerar()
            self.velocidade_controller.zerar()
            self.fases_controller.zerar()
            self.jogador.reset()
            self.obstaculo_controller.zerar()
            self.efeito_controller.zerar()
            return "inicial"
        else:
            return "derrota"
Exemplo n.º 11
0
    def display_user_score(self, user):
        userScore = TextBox(self.win, 10, 380, 90, 50, fontSize=30)
        score = user.getHandValue()
        if not user.hasAce():
            userScore.setText(score[0])
        elif score[0] < 22 and score[1] < 22:
            userScore.setText(str(score[0]) + '/' + str(score[1]))
        elif score[0] > 21 and score[1] > 21:
            userScore.setText(score[0])
        else:
            userScore.setText(score[0])

        userScore.draw()
Exemplo n.º 12
0
class Tela:
    def __init__(self, window, largura, altura):
        pygame.init()
        fontearquivo = os.path.dirname(os.path.abspath(__file__)).replace(
            "view", "").replace("model", "")
        fontearquivo = os.path.join(fontearquivo, "lib")
        fontearquivo = os.path.join(fontearquivo, "FreeSansBold.ttf")
        self.fa = fontearquivo
        self.altura = altura
        self.fontetipo = 'comicsansms'
        self.ajuste = 360
        self.desenhaalertaCaixaPerdeu = False
        self.opcoesFases = False
        self.largura = largura
        self.scala_x = self.largura / 1366
        self.scala_y = self.altura / 768
        self.tamanho = (self.largura, self.altura)
        self.indexAjuda = 1
        self.continua = False
        # pygame.display.set_mode(self.tamanho,pygame.SCALED)
        self.janela = window
        self.__janela = carrega_imagem("janela.png")
        self.cadeado = carrega_imagem("cadeado.png")
        self.imgVazia = carrega_imagem("rect.png")
        self.__janela2 = pygame.transform.smoothscale(
            self.__janela.convert_alpha(),
            (int(30 * self.scala_x), int(30 * self.scala_y)))

        # FONTES
        self.fonteGrande = pygame.font.Font(fontearquivo,
                                            int(22 * self.scala_x))
        self.fontePequena = pygame.font.Font(fontearquivo,
                                             int(12 * self.scala_x))
        self.fonteTitulo = pygame.font.Font(fontearquivo,
                                            int(55 * self.scala_x))

        self.corBranca = Cores.BRANCO
        self.corfundo = Cores.CORFUNDO
        self.corPrincipal = Cores.CORPRINCIPAL
        self.corSecundaria = Cores.CORSECUNDARIA
        self.corTexto = Cores.CORSECUNDARIA
        self.cor1Elemento = Cores.CORELEMENTO
        self.telaInicio = False
        self.telaConfig = True
        self.telaSaves = self.telaJogo = self.telaCriar = self.telaFases = self.telaAjuda = False
        self.rolagem = 0
        pygame.display.set_icon(carrega_imagem("icon.png"))
        pygame.display.set_caption("PaintCoding")
        # pygame.display.set_mode((self.largura, self.altura),pygame.FULLSCREEN)
        self.ok = Sprite("ok.png", 1, 2)
        self.ok.definirPosicao((760, 380))
        self.menu = Sprite("menu.png", 1, 2)
        self.menu.definirPosicao((550, 360))
        self.reiniciar = Sprite("reiniciar.png", 1, 2)
        self.reiniciar.definirPosicao((630, 360))
        self.continuar = Sprite("continuar.png", 1, 2)
        self.continuar.definirPosicao((710, 360))
        self.desenhaAlerta = self.desenhaNovoJogo = False
        self.textoAlerta = ("TEXTO TITULO!", "PRESSIONE OK PARA CONTINUAR!")
        self.caixaTexto = TextBox(self.janela,
                                  int(550 * ESCALAX),
                                  int(300 * ESCALAY),
                                  250 * ESCALAX,
                                  40 * ESCALAY,
                                  fontSize=20,
                                  borderColour=Cores.CORPRINCIPAL,
                                  radius=10,
                                  borderThickness=5)
        # INICIO
        self.botaostart = Sprite("BOTAOJOGAR.PNG", 1, 2)
        self.botaoCriar = Sprite("BOTAOCRIAR.PNG", 1, 2)
        self.botaoSair = Sprite("BOTAOSAIR.PNG", 1, 2)
        self.botaoVolume = Sprite("BOTAOVOLUMEON.PNG", 1, 2)
        self.btAjuda = Sprite("ajuda.png", 1, 2)
        self.btyt = Sprite("youtube.png", 1, 2)
        self.btConfig = Sprite("engrenagem.png", 1, 2)
        self.img = carrega_imagem("img2.png")
        self.logo = carrega_imagem("img2.png", escala=3)
        self.c1 = carrega_imagem("c1.png")
        self.c2 = carrega_imagem("c2.png")
        self.c3 = carrega_imagem("c3.png")
        self.c4 = carrega_imagem("c4.png")
        self.c5 = carrega_imagem("c5.png")
        # self.botaostart.definirPosicao((((largura/2)-self.botaostart.rect.h), 330))
        self.botaostart.definirPosicao((350 + (self.ajuste / 2), 330))
        self.botaoCriar.definirPosicao((350 + (self.ajuste / 2), 450))
        self.botaoSair.definirPosicao((350 + (self.ajuste / 2), 570))
        # self.botaoCriar.definirPosicao((((largura / 2) - self.botaoCriar.rect.h), 450))
        # self.botaoSair.definirPosicao((((largura / 2) - self.botaoSair.rect.h), 590))
        self.btyt.definirPosicao((1040, 40))
        self.btAjuda.definirPosicao((1130, 50))
        self.btConfig.definirPosicao((1210, 50))
        self.botaoVolume.definirPosicao((1290, 50))
        # ESCOLHERSAVE
        self.botaoNovoJogo = Sprite("BOTAONOVOJOGO.PNG", 1, 2)
        self.botaoFasesPersonalizadas = Sprite("BOTAOCRIACOES.PNG", 1, 2)
        self.botaoVoltar = Sprite("VOLTAR.png", 1, 2)
        self.botaoCima = Sprite("BOTAOCIMA.png", 1, 2)
        self.botaoBaixo = Sprite("BOTAOBAIXO.png", 1, 2)
        self.botaoNovoJogo.definirPosicao((90 + (self.ajuste / 2), 610))
        self.botaoFasesPersonalizadas.definirPosicao(
            (350 + (self.ajuste / 2), 610))
        self.botaoCima.definirPosicao((860 + (self.ajuste / 2), 84))
        self.botaoBaixo.definirPosicao((860 + (self.ajuste / 2), 510))
        self.savesPane = Painel(self.escalarX(943), self.escalarY(493),
                                self.escalarX(25 + (self.ajuste / 2)),
                                self.escalarY(100))
        self.moverretangulo = False
        self.botaoPlay = []
        self.botaolixeira = []
        self.saves = None
        # self.fasesPersonalizadas = None

        # CRIAR
        self.colunas = self.linhas = 2
        self.execucoes = 1
        self.btCimaCol = Sprite("BOTAOCIMA.png", 1, 2, 2)
        self.btCimaLi = Sprite("BOTAOCIMA.png", 1, 2, 2)
        self.btBaixoCol = Sprite("BOTAOBAIXO.png", 1, 2, 2)
        self.btBaixoLi = Sprite("BOTAOBAIXO.png", 1, 2, 2)
        self.btCimaEx = Sprite("BOTAOCIMA.png", 1, 2, 2)
        self.btBaixoEx = Sprite("BOTAOBAIXO.png", 1, 2, 2)
        self.btCimaCol.definirPosicao((90, 180))
        self.btBaixoCol.definirPosicao((90, 250))
        self.btCimaLi.definirPosicao((200, 180))
        self.btBaixoLi.definirPosicao((200, 250))
        self.btCimaEx.definirPosicao((250, 380))
        self.btBaixoEx.definirPosicao((250, 450))
        self.botaoProximo = Sprite("BOTAOPROX.PNG", 1, 2)
        self.botaoVoltarCriar = Sprite("VOLTAR.png", 1, 2)
        self.botaoVoltarCriar.definirPosicao((1080, 580))
        self.botaoProximo.definirPosicao((790, 580))

        # config
        self.sliderVl = Slider(self.janela,
                               self.escalarX(170),
                               self.escalarY(400),
                               self.escalarX(400),
                               self.escalarY(20),
                               min=20,
                               max=300,
                               step=1,
                               colour=Cores.CORSECUNDARIA,
                               handleColour=Cores.CORPRINCIPAL)
        self.sliderVl.value = Util.Config.VELOCIDADE
        # self.btCimaVel = Sprite("BOTAOCIMA.png", 1, 2, 2)
        # self.btBaixoVel = Sprite("BOTAOBAIXO.png", 1, 2, 2)
        # self.btCimaVel.definirPosicao((250, 280))
        # self.btBaixoVel.definirPosicao((250, 350))
        self.botaoConfirmar = Sprite("BOTAOSALVAR.PNG", 1, 2)
        self.botaoConfirmar.definirPosicao((800 + (self.ajuste / 2), 580))

        # TELA FASES PERSONALIZADAS
        self.botaoEsquerda = Sprite("BOTAOESQUERDA.png", 1, 2)
        self.botaoDireita = Sprite("BOTAODIREITA.png", 1, 2)
        self.botaoEsquerda.definirPosicao((60, 350))
        self.botaoDireita.definirPosicao((1220, 350))
        self.contornoFase = None
        self.btVoltarFases = Sprite("VOLTAR.png", 1, 2)
        self.btVoltarFases.definirPosicao((950, 600))
        self.fasespersonalizadas = None
        self.rolagemCriacoes = 0
        # MSG PERRGUNTA
        self.desenhaConfirmacao = False
        self.textopergunta = ("Confirma a exclusão do Progresso?",
                              " Essa ação não poderá ser desfeita!")
        self.confirmarbotao = Sprite("confirmar.png", 1, 2)
        self.cancelarbotao = Sprite("cancelar.png", 1, 2)
        self.confirmarbotao.definirPosicao((850, 390))
        self.cancelarbotao.definirPosicao((695, 390))
        # JOGO
        # 943, 493, 25, 70)
        self.jogoPane = PainelJogo(self, self.largura, self.altura, 0, 0)
        self.botoesFases = gerarBotaoFase(janela=self.janela)
        self.nivelJogador = 0
        self.telaMenuFases = False

        # IMAGEM
        self.imagemConteiner = carrega_imagem("conteiner.png")
        # TEXTOS
        self.tituloTelaSave = self.fonteTitulo.render("Jogar", True,
                                                      self.corPrincipal)
        self.tituloTelaMenuFase = self.fonteTitulo.render(
            "Escolha um nível para jogar", True, self.corPrincipal)
        self.tituloTelaFases = self.fonteTitulo.render("Fases personalizadas",
                                                       True, self.corPrincipal)
        self.txt_pane = self.fonteTitulo.render(
            "Selecione as características da fase: ", True, self.corTexto)
        self.txt_desenho = self.fonteGrande.render(
            "Selecione a quantidade de linhas e colunas do desenho: ", True,
            self.corTexto)
        self.txt_col_lin = self.fonteGrande.render("Colunas  x  Linhas: ",
                                                   True, self.corPrincipal)
        self.txt_X = self.fonteGrande.render("X", True, self.corPrincipal)
        self.txt_qntvidas = self.fonteGrande.render(
            "Selecione a quantidade de execuções disponíveis para concluir o desenho:",
            True, self.corTexto)
        self.txt_ex = self.fonteGrande.render("Nº Execuções:", True,
                                              self.corPrincipal)

        self.txt_CONFIG = self.fonteTitulo.render("CONFIGURAÇÕES ", True,
                                                  self.corTexto)
        self.txt_descVelocidade = self.fonteGrande.render(
            "Ajuste com o slider abaixo a velocidade das animações dentro do PaintCode:",
            True, self.corTexto)
        self.txt_velocidade = self.fonteGrande.render("VELOCIDADE:", True,
                                                      self.corPrincipal)
        self.txt_explicacaoVelocidade = self.fonteGrande.render(
            "Deslize ", True, self.corPrincipal)

    def desenhar(self):
        if not self.desenhaNovoJogo and not self.desenhaAlerta and not self.desenhaConfirmacao:
            self.janela.fill(self.corBranca)

            # TELA INICIO
            if self.telaInicio:
                # BOTÕES
                self.botaoVolume.definirPosicao((1290, 50))
                self.botaoVolume.desenharBt(self.janela)
                self.btAjuda.definirPosicao((1130, 50))
                self.btyt.definirPosicao((1040, 40))
                self.btyt.desenharBt(self.janela)
                self.btAjuda.desenharBt(self.janela)
                self.btConfig.desenharBt(self.janela)
                self.janela.blit(self.img, (((self.largura / 2) -
                                             (self.img.get_width() / 2)), 0))
                self.botaostart.desenharBt(self.janela)
                self.botaoCriar.desenharBt(self.janela)
                self.botaoSair.desenharBt(self.janela)
            # TELA SAVES
            elif self.telaSaves:
                if self.saves is None or len(self.saves) <= 0:
                    self.botaoVolume.definirPosicao((1290, 50))
                    self.botaoVolume.desenharBt(self.janela)
                    self.btAjuda.definirPosicao((1130, 50))
                    self.btyt.definirPosicao((1040, 40))
                    self.btyt.desenharBt(self.janela)
                    self.btAjuda.desenharBt(self.janela)
                    self.btConfig.desenharBt(self.janela)
                    self.janela.blit(self.img,
                                     (((self.largura / 2) -
                                       (self.img.get_width() / 2)), 0))
                    self.botaoNovoJogo.definirPosicao(
                        (350 + (self.ajuste / 2), 330))
                    self.botaoFasesPersonalizadas.definirPosicao(
                        (350 + (self.ajuste / 2), 450))
                    self.botaoVoltar.definirPosicao(
                        (350 + (self.ajuste / 2), 570))
                else:
                    self.savesPane.fill(self.corfundo)
                    self.janela.blit(self.logo,
                                     (((self.largura / 2) -
                                       (self.logo.get_width() / 2)), -20))
                    # contornar(self.janela, self.escalar((25 + (self.ajuste / 2),70,943,493), 4)
                    contornar(self.janela,
                              int(ESCALAX * (25 + (self.ajuste / 2))),
                              int(100 * ESCALAY), int(ESCALAX * 943),
                              int(ESCALAY * 493), 4)
                    #self.janela.blit(self.tituloTelaSave,((self.largura / 2) - 80, 7))
                    self.desenharPainelSaves(self.saves)
                    self.janela.blit(self.savesPane,
                                     self.savesPane.get_posicao())

                    # BOTÕES
                    self.botaoNovoJogo.definirPosicao(
                        (50 + (self.ajuste / 2), 610))
                    self.botaoFasesPersonalizadas.definirPosicao(
                        (360 + (self.ajuste / 2), 610))
                    self.botaoVoltar.definirPosicao(
                        (670 + (self.ajuste / 2), 610))

                    self.botaoCima.desenharBt(self.janela)
                    self.botaoBaixo.desenharBt(self.janela)
                self.botaoNovoJogo.desenharBt(self.janela)
                self.botaoFasesPersonalizadas.desenharBt(self.janela)
                self.botaoVoltar.desenharBt(self.janela)

            # TELA FASES PERS
            elif self.telaMenuFases:
                self.desenharMenuFases(self.nivelJogador)
            elif self.telaFases:
                #self.janela.blit(self.tituloTelaFases,self.escalarXY(375, 35))
                self.janela.blit(self.logo,
                                 (((self.largura / 2) -
                                   (self.logo.get_width() / 2)), -20))
                self.botaoEsquerda.desenharBt(self.janela)
                self.botaoDireita.desenharBt(self.janela)
                self.desenharDesenhoGuia(self.fasespersonalizadas,
                                         self.rolagemCriacoes)
                self.btVoltarFases.desenharBt(self.janela)

        if self.telaJogo:
            self.janela.blit(self.jogoPane, self.jogoPane.get_posicao())

        elif self.telaCriar:
            self.desenharPainelCriar()
        elif self.telaConfig:
            self.desenharPainelConfig()

        elif self.telaAjuda:
            t = getTutorials()
            if len(t) <= self.indexAjuda:
                self.telaAjuda = False
                self.telaInicio = True
            else:
                self.jogoPane.desenharTutorial(t[self.indexAjuda],
                                               self.janela,
                                               c=Cores.CORFUNDO)
        if self.desenhaAlerta:
            self.deesenharAlerta(self.textoAlerta)

        if self.desenhaConfirmacao:
            self.deesenharMsgPergunta(self.textopergunta)

        if self.desenhaNovoJogo:
            self.desenharNovoJogo()

    def desenharMenuFases(self, nivel):
        self.janela.blit(self.logo, (((self.largura / 2) -
                                      (self.logo.get_width() / 2)), -20))
        #self.janela.blit(self.tituloTelaMenuFase, escalarXY(320, 25))
        self.botaoVoltar.definirPosicao((1070, 600))
        self.botaoVoltar.desenharBt(self.janela)
        i = 0
        for bt in self.botoesFases:
            if int(bt.string) <= (int(nivel) + 1):
                bt.setInactiveColour((0, 205, 255))
                bt.setHoverColour((0, 0, 255))
                bt.setImage(self.imgVazia)
            else:
                bt.setInactiveColour((153, 153, 153))
                bt.setHoverColour((153, 153, 153))
                bt.setImage(self.cadeado)
            bt.draw()

    def desenharPainelCriar(self):
        self.janela.blit(self.txt_pane, self.escalarXY(20, 50))
        self.janela.blit(self.txt_desenho, self.escalarXY(50, 130))
        self.janela.blit(self.txt_col_lin, self.escalarXY(70, 160))

        self.btBaixoLi.desenharBt(self.janela)
        self.btCimaLi.desenharBt(self.janela)
        self.btCimaCol.desenharBt(self.janela)
        self.btBaixoCol.desenharBt(self.janela)

        self.janela.blit(self.txt_X, self.escalarXY(163, 230))
        txt_col = self.fonteGrande.render(str(self.colunas), True,
                                          self.corTexto)
        txt_li = self.fonteGrande.render(str(self.linhas), True, self.corTexto)
        self.janela.blit(txt_col, self.escalarXY(110, 230))
        self.janela.blit(txt_li, self.escalarXY(220, 230))
        contornar(self.janela, 90, 225, 50, 30, eX=ESCALAX, eY=ESCALAY)
        contornar(self.janela, 200, 225, 50, 30, eX=ESCALAX, eY=ESCALAY)

        #self.janela.blit(self.txt_qntvidas, self.escalarXY(50, 350))
        #self.janela.blit(self.txt_ex, self.escalarXY(70, 430))
        # self.btCimaEx.desenharBt(self.janela)
        # self.btBaixoEx.desenharBt(self.janela)
        # txt_execucoes = self.fonteGrande.render(
        #    str(self.execucoes), True, self.corTexto)
        #self.janela.blit(txt_execucoes, self.escalarXY(270, 430))
        #contornar(self.janela, 250, 425, 50, 30, eX=ESCALAX, eY=ESCALAY)
        self.botaoVoltarCriar.desenharBt(self.janela)
        self.botaoProximo.desenharBt(self.janela)

    def desenharPainelConfig(self):
        self.janela.blit(self.txt_CONFIG, self.escalarXY(20, 50))  # TITULO
        self.janela.blit(self.txt_descVelocidade,
                         self.escalarXY(50, 250))  # DESC VELOCIDADE
        self.janela.blit(self.txt_velocidade, self.escalarXY(70, 330))  # V
        self.sliderVl.draw()
        # self.btCimaVel.desenharBt(self.janela)
        # self.btBaixoVel.desenharBt(self.janela)
        # txt_vel = self.fonteGrande.render(
        #     str(Util.Config.VELOCIDADE), True, self.corTexto)
        # self.janela.blit(txt_vel, self.escalarXY(260, 330))
        #contornar(self.janela, 250, 325, 50, 30, eX=ESCALAX, eY=ESCALAY)
        self.botaoConfirmar.desenharBt(self.janela)
        self.botaoVoltar.definirPosicao((470 + (self.ajuste / 2), 580))
        self.botaoVoltar.desenharBt(self.janela)

    def escalar(self, x, y, tamx, tamy):
        return int(ESCALAX * x), int(y * ESCALAY), int(ESCALAX * tamx), int(
            ESCALAY * tamy)

    def escalarXY(self, x, y):
        return int(ESCALAX * x), int(y * ESCALAY)

    def escalarX(self, x):
        return int(ESCALAX * x)

    def escalarY(self, y):
        return int(ESCALAY * y)

    def desenharPainelSaves(self, jogador):
        espaco = 117
        qntsaves = 0

        text2 = self.fontePequena.render("PROGRESSO: ", True,
                                         self.corSecundaria)
        #text3 = self.fontePequena.render("Jogar ", True, self.corSecundaria)
        for x in jogador:
            text = self.fonteGrande.render("NOME: " + x.getNome(), True,
                                           self.corSecundaria)
            self.savesPane.blit(
                self.imagemConteiner,
                (self.escalarX(25),
                 self.escalarY((espaco * qntsaves) + 10 + self.rolagem)))
            self.savesPane.blit(
                text, (self.escalarX(55),
                       self.escalarY((espaco * qntsaves) + 25 + self.rolagem)))
            self.savesPane.blit(
                text2,
                (self.escalarX(75),
                 self.escalarY((espaco * qntsaves) + 60 + self.rolagem)))
            # self.savesPane.blit(
            #     text3, (self.escalarX(710), self.escalarY((espaco * qntsaves) + self.escalarY(90) + self.rolagem)))
            pygame.draw.rect(
                self.savesPane, self.corSecundaria,
                (self.escalarX(75),
                 self.escalarY((espaco * qntsaves) + 75 + self.rolagem),
                 self.escalarX(580), self.escalarY(30)))
            pygame.draw.rect(
                self.savesPane, self.corPrincipal,
                (self.escalarX(75),
                 self.escalarY((espaco * qntsaves) + 75 + self.rolagem),
                 self.escalarX(40 * x.getNivel()), self.escalarY(30)))

            self.botaoPlay[qntsaves].definirPosicao(
                (700, (espaco * qntsaves) + 30 + self.rolagem))
            self.botaolixeira[qntsaves].definirPosicao(
                (653, (espaco * qntsaves) + 72 + self.rolagem))

            # BOTAO
            self.botaolixeira[qntsaves].desenharBt(self.savesPane)
            self.botaoPlay[qntsaves].desenharBt(self.savesPane)
            qntsaves += 1

    def deesenharAlerta(self, textolist):
        superfice = self.janela
        texto = textolist[0]
        texto2 = textolist[1]
        rect = pygame.Rect((superfice.get_rect().w / 4),
                           (superfice.get_rect().h / 4), self.escalarX(600),
                           self.escalarY(150))
        font = pygame.font.Font(self.fa, self.escalarX(23))
        textod = font.render(texto, True, Cores.PRETO)
        textod2 = font.render(texto2, True, Cores.PRETO)
        if self.opcoesFases:
            if self.desenhaalertaCaixaPerdeu:
                superfice.blit(self.c3, rect)
            else:
                superfice.blit(self.c5, rect)
        else:
            superfice.blit(self.c4, rect)
        superfice.blit(textod, (self.escalarX(421), self.escalarY(282)))
        superfice.blit(textod2, (self.escalarX(421), self.escalarX(302)))
        if len(textolist) > 2:
            font = pygame.font.Font(self.fa, self.escalarX(17))
            textod3 = font.render(textolist[2], True, Cores.PRETO)
            superfice.blit(textod3, (self.escalarX(441), self.escalarY(372)))
        if self.opcoesFases:
            self.reiniciar.desenharBt(superfice)
            self.menu.desenharBt(superfice)
            if self.continua:
                self.continuar.desenharBt(superfice)
        else:
            self.ok.desenharBt(superfice)

    def desenharNovoJogo(self):
        superfice = self.janela
        rect = pygame.Rect(self.escalar(300, 150, 800, 416))
        font = pygame.font.Font(self.fa, self.escalarX(25))
        font2 = pygame.font.Font(self.fa, self.escalarX(17))
        novojogo = font.render("Novo Jogo", True, Cores.CORPRINCIPAL)
        textod2 = font2.render("Digite seu Nome:", True, Cores.PRETO)
        superfice.blit(self.c1, rect)
        superfice.blit(novojogo, self.escalarXY(650, 230))
        superfice.blit(textod2, self.escalarXY(400, 305))
        self.caixaTexto.draw()
        self.confirmarbotao.desenharBt(superfice)
        self.cancelarbotao.desenharBt(superfice)

    def deesenharMsgPergunta(self, texto):
        superfice = self.janela
        rect = pygame.Rect(self.escalar(300, 150, 800, 416))
        font = pygame.font.Font(self.fa, self.escalarX(25))
        font2 = pygame.font.Font(self.fa, self.escalarX(17))
        textod = font.render(texto[0], True, Cores.PRETO)
        textod2 = font2.render(texto[1], True, Cores.PRETO)
        superfice.blit(self.c2, rect)
        superfice.blit(textod, self.escalarXY(390, 270))
        superfice.blit(textod2, self.escalarXY(390, 300))
        self.confirmarbotao.desenharBt(superfice)
        self.cancelarbotao.desenharBt(superfice)

    def desenharDesenhoGuia(self, fases, x=0, y=0, escala=30):
        if fases is not None:
            # if escala != self.__janela2.get_rect().h:
            #     self.__janela2=pygame.transform.scale(
            #         self.__janela, (escala, escala))
            inty = 270 + y
            intx = -60 + x
            espaco = 700
            qntdFase = 0
            for fase in fases:
                desenho = fase.desenhoResposta
                aux = auxX = 0
                if desenho.colunas <= 3:
                    auxX = 60
                if desenho.linhas < 4:
                    aux = 60
                self.contornoFase[qntdFase].definirPosicao(
                    (intx + (espaco * qntdFase) + 230, inty - 20))
                self.contornoFase[qntdFase].desenharBt(self.janela)
                # desenhando Telhado
                pygame.gfxdraw.filled_trigon(
                    self.janela,
                    self.escalarX(intx + auxX + (espaco * qntdFase) + 265 +
                                  int((escala * desenho.colunas) / 2)),
                    self.escalarY(inty + aux + 50),
                    self.escalarX(intx + auxX + (espaco * qntdFase) + 260),
                    self.escalarY(85 + inty + aux),
                    self.escalarX(intx + auxX + (espaco * qntdFase) + 270 +
                                  escala * desenho.colunas),
                    self.escalarY(85 + inty + aux), Cores.TELHADO)

                for i in range(0, desenho.colunas):
                    for j in range(0, desenho.linhas):
                        if int(desenho.tiles[i][j]) >= 0:
                            pygame.draw.rect(
                                self.janela, get_cor(int(desenho.tiles[i][j])),
                                self.escalar(
                                    (self.ajuste / 2) + intx + auxX +
                                    (espaco * qntdFase) + 85 + (escala * i),
                                    85 + inty + aux + (escala * j), escala,
                                    escala))
                        else:
                            self.janela.blit(
                                self.__janela2,
                                self.escalar(
                                    (self.ajuste / 2) + intx + auxX +
                                    (espaco * qntdFase) + 85 + (escala * i),
                                    85 + inty + aux + (escala * j), escala,
                                    escala))
                contornar(self.janela, (self.ajuste / 2) + intx + auxX +
                          (espaco * qntdFase) + 85,
                          inty + aux + 85,
                          escala * desenho.colunas,
                          escala * desenho.linhas,
                          eX=ESCALAX,
                          eY=ESCALAY)
                qntdFase += 1

    def carregarContornos(self):
        self.contornoFase = list()
        for fase in self.fasespersonalizadas:
            self.contornoFase.append(Sprite("contorno4.png", 1, 2))
Exemplo n.º 13
0
 def display_dealer_score(self, dealer):
     dealerScore = TextBox(self.win, 10, 180, 90, 50, fontSize=30)
     score = dealer.getHandValue()
     dealerScore.setText(score)
     dealerScore.draw()
Exemplo n.º 14
0
        return False

    def round(self, value):
        return self.step * round(value / self.step)

    def getValue(self):
        return self.value


if __name__ == '__main__':
    pygame.init()
    win = pygame.display.set_mode((1000, 600))

    slider = Slider(win, 100, 100, 800, 40, min=0, max=99, step=1)
    output = TextBox(win, 475, 200, 50, 50, fontSize=30)

    run = True
    while run:
        events = pygame.event.get()
        for event in events:
            if event.type == pygame.QUIT:
                pygame.quit()
                run = False
                quit()

        win.fill((255, 255, 255))

        slider.listen(events)
        slider.draw()
Exemplo n.º 15
0
xslider = Slider(root,
                 screen_size.get_width() - 80,
                 100,
                 60,
                 40,
                 min=0,
                 max=20,
                 step=1,
                 colour=(220, 174, 150),
                 handleColour=(255, 255, 255),
                 handleRadius=15,
                 curved=True)
xtextbox = TextBox(root,
                   screen_size.get_width() - 100,
                   150,
                   100,
                   40,
                   fontSize=15,
                   borderColour=(91, 100, 103))
yslider = Slider(root,
                 screen_size.get_width() - 80,
                 0,
                 60,
                 40,
                 min=0,
                 max=20,
                 step=1,
                 colour=(220, 174, 150),
                 handleColour=(255, 255, 255),
                 handleRadius=15,
                 curved=True)
Exemplo n.º 16
0
# creation of stylised images of the AUV (top, side and back view)
# note: images are square and image width is equal to dial diameter
image_width = 2 * DIAL_R

image_1 = create_view('images/zeno_top.bmp', image_width)  # top view
image_2 = create_view('images/zeno_side.bmp', image_width)  # side view
image_3 = create_view('images/zeno_back.bmp', image_width)  # back view

# textbox to write desired position and trim angles
textbox = TextBox(screen,
                  360,
                  Y_VALUE + 35,
                  185,
                  35,
                  font='Calibri',
                  fontSize=20,
                  textColour=YELLOW,
                  radius=10,
                  borderThickness=2,
                  borderColour=LIGHT_GREY,
                  colour=DARK_BLUE,
                  onSubmit=read_textbox)
# button to activate and deactivate control
button1 = Button(
    screen,
    360,
    Y_VALUE,
    90,
    30,
    text='CONTROL',
    font=pg.font.SysFont('Calibri', 15),
Exemplo n.º 17
0
                inactiveColour=(255, 0, 0),
                pressedColour=(0, 255, 0),
                radius=20,
                onClick=main,
                onClickParams=(WIN, WIDTH))
slider = Slider(WIN,
                250,
                180,
                180,
                40,
                min=5,
                max=40,
                step=1,
                handleColour=(255, 0, 0),
                handleRadius=22)
output = TextBox(WIN, 460, 180, 110, 40, fontSize=20)
buttonArray = ButtonArray(
    WIN,
    50,
    150,
    150,
    200,
    (1, 4),
    border=5,
    texts=('A*', 'BFS', 'Dijkstra', 'Github'),
)

# THIS PART TAKES CARE OF THE TITLE THAN SHIFTS THE FONT TO NORMAL TEXT
font = pygame.font.Font('freesansbold.ttf', 56)
text = font.render('PATH VISUALISER', True, (211, 211, 211))
textRect = text.get_rect()
Exemplo n.º 18
0
dt = 1 / framerate
C = 0.999
slider = Slider(screen,
                100,
                100,
                800,
                20,
                min=0.0,
                max=2 * l,
                step=0.01,
                initial=l)
output = TextBox(screen,
                 475,
                 50,
                 50,
                 30,
                 borderColour=(0, 0, 0),
                 borderThickness=1,
                 radius=3,
                 textColour=(0, 0, 0),
                 fontSize=20)
#-----------------------------------------------------------------------
#                               Main Loop
#-----------------------------------------------------------------------
done = False
while not done:
    screen.fill((90, 90, 90))
    #-------------------------------------------------------------------
    #                           Dynamics
    #-------------------------------------------------------------------
    alpha = np.sin(theta) * g / l
    omega += alpha * dt
Exemplo n.º 19
0
    def main(self):

        # Buttons for cards in home screen
        blue = Button(black, 145, 295, 110, 160)
        gray = Button(black, 295, 295, 110, 160)
        green = Button(black, 445, 295, 110, 160)

        # Custom Bet Input
        slider = Slider(self.win, 250, 250, 200, 40, min=1, max=500, step=1, handleRadius=25)
        outputText = TextBox(self.win, 315, 325, 70, 50, fontSize=30)

        # Buttons for Bet Selection
        minButton = Button(white, 190, 400, 100, 50, 'MIN')
        maxButton = Button(white, 410, 400, 100, 50, 'MAX')
        customButton = Button(white, 300, 400, 100, 50, "CUSTOM")

        # Buttons for Game Selection
        hitButton = Button(white, 600, 150, 90, 50, 'HIT')
        standButton = Button(white, 600, 250, 90, 50, 'STAND')
        splitButton = Button(white, 600, 350, 90, 50, 'SPLIT')
        doubleButton = Button(white, 600, 450, 90, 50, 'DOUBLE')

        back = ''
        state = 0

        # Game Class
        blackjack = Blackjack()
        user = blackjack.user
        dealer = blackjack.dealer

        run = True
        while run:
            events = pygame.event.get()
            for event in events:
                pos = pygame.mouse.get_pos()
                if event.type == pygame.QUIT:
                    run = False

                self.checkHover(blue, gray, green, minButton, maxButton, customButton, hitButton, standButton, splitButton, doubleButton, pos)

                if event.type == pygame.MOUSEBUTTONDOWN:
                    if state == 0:
                        if blue.isOver(pos):
                            back = pygame.transform.scale(blueCard, (80, 110))
                        elif gray.isOver(pos):
                            back = pygame.transform.scale(grayCard, (80, 110))
                        elif green.isOver(pos):
                            back = pygame.transform.scale(greenCard, (80, 110))
                        else:
                            break
                        state = 1
                        self.fade()
                        blackjack.deckOfCards.shuffle()
                    elif state == 1:
                        bet = 0
                        if minButton.isOver(pos):
                            bet = 1
                        elif maxButton.isOver(pos):
                            bet = 500
                        elif customButton.isOver(pos):
                            bet = slider.getValue()
                        else:
                            break
                        state = 2
                        blackjack.place_bet(bet)
                        blackjack.deal_start_cards()
                        self.display_first_cards(user, dealer, back, blackjack)
                    elif state == 2:
                        if hitButton.isOver(pos):
                            blackjack.hit()
                        elif standButton.isOver(pos):
                            blackjack.stand()
                        elif doubleButton.isOver(pos):
                            blackjack.double()
                        elif splitButton.isOver(pos):
                            pass
                        else:
                            break

            if state == 0:
                self.display_homescreen(blue, gray, green)
            elif state == 1:
                slider.listen(events)
                blackjack.set_status('user')
                self.display_betting(user.balance, slider, outputText, minButton, maxButton, customButton, back)
            elif state == 2:
                self.display_game(blackjack, user, dealer, back, hitButton, standButton, splitButton, doubleButton)
                self.display_status(blackjack)

            stat = blackjack.get_status()
            if stat == 'user':
                blackjack.check_blackjack()
            elif stat == 'dealer':
                self.display_status(blackjack)
                self.dealer_turn(blackjack)
            elif stat == 'reset' or stat == 'over' or stat == 'dealerbust' or stat == 'won' or stat == 'lost':
                state = 1
                self.display_status(blackjack)
                pygame.display.update()
                blackjack.reset_game()
                pygame.time.delay(2500)

            pygame.display.update()