Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

AndersonDutra

Montando Ficha de RPG

Recommended Posts

Como falei a algum tempo atrás, estou fazendo um jogo de RPG em VB, e agora estou montando a ficha de personagem.

Teria que fazer mais ou menos assim:

 

Físico

Força O O O O O

 

Destreza O O O O O

 

Vigor O O O O O

 

Cada "O" representa um optionButton, e o que tenho que fazer seria assim:

 

Tenho 5 pontos para distribuir, cada vez que eu clicar em option ele conta um e fica como value=true , e se ele ja tiver cinco pontos ele não deixa ativar mais nenhum option, Alguém tem uma idéia!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma variável global, onde cada vez que o usuário clicar no option, incremente essa variável, e antes de executar o seu código quando o option é marcado como true, verifique qual o valor da variável, assim terá controle de quantos options foram marcados pelo usuário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

já joguei RPG algumas vezes, Tormenta, bem bacana.

mas voltando ao assunto... ehehe

 

esses options, seria p/ distribuir pontos certo?

Não seria mais interessante utilizar CheckBox?

Pq com option só poderá selecionar uma opção, que não é o caso, ele poderá selecionar até 5. Com option, se ele marcar um, os outros serão desmarcados.

Aproveitando a dica do camarada ae, dá uma olhada no exemplo.

 

Option Explicit

Dim Pontos    As Integer

Dim PontosMax As Integer 'maximo de pontos a utilizar

 

Private Function Pontuacao(Adicionar As Integer) As Integer

  'função para veficar a pontuação

  Pontuacao = 1 'definir o padrão como 1 (pode selecionar)

  'verificar se precisa subtrair pontos, para não ficar valor negativo

  If Adicionar = False And Pontos = 0 Then

    Pontos = 0

    Pontuacao = 0

    Exit Function

  End If

  'verifica se está marcando opção

  If Adicionar = 1 Then

    'faz o teste para saber se irá exceder o limite

    If Pontos + 1 > PontosMax Then

      MsgBox "Já foram utilizados os " & PontosMax & " pontos.", vbInformation

      Pontuacao = 0 'desmarcar a opção

    Else

      Pontos = Pontos + 1 'incrementa os pontos utilizados

    End If

  Else

    'verificar se precisa subtrair caso esteja desmarcando, para não ficar valor negativo

    If Pontos - 1 < 0 Then

      Pontos = 0

    Else

      Pontos = Pontos - 1 'subtrai os pontos utilizados, caso esteja desmarcando

    End If

  End If

End Function

 

Private Sub Check1_Click()

  'Me.ActiveContro é o mesmo que utilizar o controle ativo no formulário

  'para não ficar informando o nome a cada chamada da função

  '=='

  'aqui verifica se ele pode selecionar opção, caso contrário,

  'o programa adiciona 1 e desmarca a opção, que automaticamente, voltará para o limite máximo

  If Pontuacao(Me.ActiveControl.Value) = 0 Then

    Pontos = Pontos + 1

    Me.ActiveControl.Value = 0

  End If

End Sub

 

Private Sub Form_Load()

  Pontos = 0

  PontosMax = 5

End Sub

Se for utilizar CheckBox, para cada Click, cole o código do Check1 do exemplo acima.

 

Fiz as pressas pq to no trampo, mas funfou aqui, se tiver algum problema só postar.

 

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu mesmo cara!!!!! Brigadão

Só tenho que adaptar algumas coisinhas, aí fica beleza!!!

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.