• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

fPinho

Problema em um jogo

10 mensagens neste tópico

Boa noite, desde já agradeço a todos os que me tentem ajudar, sou novato nisto    :-[ :biggrin:

Bem, é o seguinte: Eu ando a fazer um jogo em que consiste  escrever o mais rápido possivel [numa textbox2]  um determinado texto [Que está noutra textbox1 ao lado], até aqui nenhum problema.  O problema começa quando envolve vidas, ou seja, tenho 3 vidas, sempre que o texto da Textbox2 esteja errado ao da textbox1 então perco uma vida.

O problema é que não consigo fazer com que a vida desapareça..[a vida é uma Picturebox..tenho 3, logo picturebox1 , 2 e 3].

Penso que tenho que fazer com o case, mas não o sei fazer..andei a a tentar e a tentar e não consegui..caso me consigam ajudar agradecia.., deixo aqui o que fiz até agora.. :-[

-----------------------

Tudo começa num botão [ Chamado Analisar ] quando clicado, este verifica se o que está dentro da textbox2 está igual ao da textbox1, caso esteja então aparece um form[Ganhou], caso contrário aparecerá outro form [Perdeu].

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        If Trim(TextBox1.Text) = Trim(TextBox2.Text) Then

            Form6.Show()

            TextBox1.Clear()

            seguinte += 1

            TextBox2.Text = Texto(nivel + seguinte - 2)

        Else

            Form7.Show()

            Select Case vidas(2)

                Case vidas(0)

                    PictureBox3.Visible = False

                Case vidas(1)

                    PictureBox5.Visible = False

                Case vidas(2)

                    PictureBox6.Visible = False

            End Select

        End If

    End Sub

End Class

-----------------------------

Toda a ajuda é bem vinda, obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenhu o mesmo problema embora o jogo seja diferente

bom post xD

fpinho FTW .  :D:P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Huh, pois, isso declarei em cima de tudo - dim vidas(2) as byte :x

Tenho 3 pictureboxs que servem como vidas..como o número "0" conta como "1" ..logo vidas(2) - foi o meu raciocinio :x

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas assim crias um array e acho que não é isso que queres! Tenta assim:

Private vidas As Byte

No form load e no botão que inicia um novo jogo:

vidas = 2

No evento do botão:

        Select Case vidas

                Case 0

                    PictureBox3.Visible = False

                Case 1

                    PictureBox5.Visible = False

                Case 2

                    PictureBox6.Visible = False

            End Select

          vidas -= 1 ' decrementa uma vida

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, tava a fazer mal..

Mas está-me a dar um erro..eu corro o programa, as vidas são eliminadas sempre que erro mas à terceira vez quando carrego em analisar, dá-me um erro, que tem haver com  " vidas -= 1 ", aquilo diz-me :

"Operação aritmética resultou numa capacidade excedida"

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim claro! O byte não suporta números negativos daí o erro. Quando as vidas forem 0 deves fazer qualquer coisa, tipo:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        If Trim(TextBox1.Text) = Trim(TextBox2.Text) Then

            Form6.Show()

            TextBox1.Clear()

            seguinte += 1

            TextBox2.Text = Texto(nivel + seguinte - 2)

        Else

            Form7.Show()

          If vidas = 0 then

                  MessageBox.Show("Jogo terminado ...")

                  Exit Sub

          Else

                vidas -= 1 ' decrementa uma vida

          End If

          Select Case vidas

                Case 0

                    PictureBox3.Visible = False

                Case 1

                    PictureBox5.Visible = False

                Case 2

                    PictureBox6.Visible = False

            End Select

          End If

         

Atenção: Este código não foi testado, por isso se correr mal diz qualquer coisa para eu vá testar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas amigo,

Bem, surgiu outro problema..

Quando se chega à ultima vida, supostamente esta tem de desaparecer e apenas a caixa de " O jogo terminou " deverá aparecer..

Se me podesses ajudar, ou seja, Quando chegasse à ultima vida [qualqer picturebox] esta seria eliminada [ O que não está acontecer ] e aparecia apenas a mensagem do " Jogo terminado ".

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        If Trim(TextBox1.Text) = Trim(TextBox2.Text) Then

            Form6.Show()

            TextBox1.Clear()

            seguinte += 1

            TextBox2.Text = Texto(nivel + seguinte - 2)

        Else

            Form7.Show()

            If vidas = 0 Then

                MessageBox.Show("Jogo terminado ...")

                Exit Sub

            Else

                vidas -= 1

            End If

            Select Case vidas

                Case 0

                    PictureBox3.Visible = False

                Case 1

                    PictureBox5.Visible = False

                Case 2

                    PictureBox6.Visible = False

            End Select

        End If

Muito obrigado por me estares ajudar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem teoricamente não se tem 0 vidas mas sim 1 vida quando se está a acabar. Podes colocar o vidas = 3 e apenas alterar o select case para 1,2,3.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora