Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VB6] problema logico con un operzione (D&D)

    Quesito estremamente difficile da spiegare, farò ricorso alla mia abilità d scrittore (bomba!) per cercare di spiegarmi.

    ho 3 campi di testo:

    - Punti Vita Massimi del giocatore(campo1)
    - Valori da togliere o aggiungere ovvero danni o ricoveri(campo2)
    - Punti Vita Temporanei Giocatore(campo3)

    e due tasti (+ e -)

    Io voglio che scrivendo un valore nel campo dei danni e skiacciando - (per esempio) mi si sottraggano i danni ai punti vita max e mi dia i punti vita temp nel terzo campo e che il secondo si svuoti.
    Fin qui nessun problema.
    Ora abbiamo un dato nel campo1 che dovrà rimanere FISSO in quanto i punti vita max non variano a seconda dei danni o dei ricoveri(e qui basta che una volta inserito non lo si tocchi), il campo2 vuoto, e i punti vita temporanei dopo il primo danno subito.

    Ok, viene fatto un altro danno al personaggio bisogna sottrarre ora i danni ai punti temporanei.

    Questo è il punto che non riesco a fare.
    Qualcuno può aiutarmi?

    Spero di essere stato chiaro, vi saluto ^^
    Flash Developer for Rich Media
    PHP, jQuery Developer

  2. #2
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Prova un po' questo codice :

    codice:
    Option Explicit
    Dim nPVM As Integer
    Dim nP   As Integer
    Dim nPVT As Integer
    
    Private Sub Command2_Click()
        ' Togli, è il bottone con il meno
        If Not IsNumeric(Text2.Text) Then Exit Sub
        nP = nP + CInt(Text2.Text)
        Call Calcola
    End Sub
    
    Private Sub Command1_Click()
        ' Aggiungi, è il bottone con il più
        If Not IsNumeric(Text2.Text) Then Exit Sub
        nP = nP - CInt(Text2.Text)
        Call Calcola
    End Sub
    
    Private Sub Form_Load()
        Text1.Text = 100
        Text2.Text = ""
        Text3.Text = ""
        nPVM = CInt(Text1.Text)
    End Sub
    
    Private Sub Calcola()
        Text2.Text = ""
        nPVT = nPVM - nP
        Text3.Text = nPVT
    End Sub

    Ciao,
    Ciao, Brainjar

  3. #3
    Ottimo, funziona!
    però cavolo, mi sono dimenticato di una cosa:
    PVT non dovrà mai essere maggiore di PVM

    ALT! C'è un problemino nel tuo codice. Se poi io vado a modificare i PVM all'avvio del programma per qualche motivo lui mi farà le operazioni sempre su 100, perkè all'inizio gli dici di essere 100, mentre quello deve stabilirlo l'utente all'inizio.

    Poi un altra cosa, strano fenomeno: in certi campi di testo nn posso mettere + di due cifre, e non vedo nessun codice strano in qst!!!!
    Che cavolo è successo?
    Flash Developer for Rich Media
    PHP, jQuery Developer

  4. #4
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Per la prima richiesta basta che nel codice di 'Calcola' metti un
    test :
    codice:
    Private Sub Calcola()
        Text2.Text = ""
        nPVT = nPVM - nP
        ' Test 
        If nPVT > nPVM Then nPVT = nPVM 
        
        Text3.Text = nPVT
    End Sub
    Per il secondo problema, setta MaxLenght dei TextBox a 0 (Zero).

    Ciao,

    PS: Ciao a tutti, vado a casa.
    Ciao, Brainjar

  5. #5
    UP!

    Rileggete il mio vekkio mex, l'ho modificato mentre stavi rispondendo ^^

    Sentite, date un occhiata a questo , è troppo sballata la sezione PF >_<
    Flash Developer for Rich Media
    PHP, jQuery Developer

  6. #6
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Non ci hai specificato come assegni il valore iniziale a
    Punti Vita Massimi.

    Il codice nel form_load è solo un espediente per far partire
    la textbox con un valore.

    Per cui, logicamente, devi essere tu a sostituire il codice :

    Text1.Text = 100

    con quello che realmente impieghi per l'impostazione.

    Ricorda, comunque, che devi gestire il tutto con le variabili
    interne (nPVT, mPVM, nP).

    Il mio era un semplice esempio di impostazione.

    Un po' come quando vai a scuola guida.
    Se tu, una volta presa la patente, devi andare con la macchina fino
    a Budapest, non è che ti aspetti che l'istruttore, alla prima guida,
    ti porta fin li, giusto ?

    Ciao,
    Ciao, Brainjar

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.