Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Abbiamo giocato a lungo a Battlefield 6, abbiamo provato tutte le modalità multiplayer, Redsec, e le numerose personalizzazioni. In sintesi, ci siamo concentrati su ogni aspetto del titolo per comprendere al meglio uno degli FPS più ambiziosi della storia dei videogiochi e, dopo quasi due mesi, abbiamo tirato le somme. In questo articolo, condividiamo con voi tutto ciò che è Battlefield 6, un gioco che, a nostro avviso, rappresenta esattamente ciò che questo genere attendeva da tempo
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-06-2004, 11:55   #1
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
[c++ win32] contatore in tempo reale

ho un dialogbox che ha una sua specifica funzione (BOOL CALLBACK DlgProc ecc...) dove ho un edittext (un form) dove devo inserire un contatore in tempo reale (del tipo 00:01, 00:02 ecc)

il contatore è questo:
Codice:
void wait ( int seconds )
{
  clock_t endwait;
  endwait = clock () + seconds * CLK_TCK ;
  while (clock() < endwait) {}
}

char tempoz[10];
void contatore()
{
    int tempo=0;
    while(true)
    {
        wait(1); //aspetta un secondo
        tempo=tempo++;
        itoa(tempo, tempoz, 10);  //trasformo l'int in array
        SetDlgItemText(hwnd,IDC_TEMPO, tempoz); //inserisco il tempo nella edittext
        break;
    }
}
ora, il contatore funziona benissimo, il problema è dove metterlo nella funzione della dialogbox: infatti il ciclo mi ferma tutta la funzione stessa. Quindi mi chiedevo se c'è un modo di eseguire due funzioni contemporaneamente (può essere una soluzione) o qualsiasi altra cosa
grazie
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2004, 12:35   #2
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
a me sembra un ottima idea usare i thread
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2004, 12:48   #3
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
Quote:
Originariamente inviato da Luc@s
a me sembra un ottima idea usare i thread
hum cioè?
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2004, 12:52   #4
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
dirami dal prog un thread a cui deleghi il compito di contare .........
Se su win32 giusto???
Allora have a look
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2004, 16:52   #5
ri
Senior Member
 
L'Avatar di ri
 
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
non è tutto _tremendamente_ più semplice usando un timer?
nell'InitIstance del dialogo lo fai partire con un SetTimer a 1000ms e poi gestisci l'evento OnTimer controllando l'ID che hai assegnato al tuo timer
ri è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2004, 18:47   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2004, 10:45   #7
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
cito quello che ho scritto
Quote:
dove ho un edittext dove devo inserire un contatore in tempo reale (del tipo 00:01, 00:02 ecc)
io devo visualizzare il timer il una edittext!
la funzione SetTimer non ritorna i secondi a cui è arrivata in un dato istante, giusto?
c'è la funzione QueryPerformanceCounter che però ha come argomento un LARGE_INTEGER e siccome uso itoa per trasformare l'int in char per poi mandarlo alla edittext, non saprei proprio come fare

comunque, questo forse mi risolve un problema, ma ne volevo fare anche uno che va avanti
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2004, 12:33   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Memorizza la data di sistema in secondi all'inzio del conteggio...
Usa SetTimer per settare un altro timer ogni decimo di secondo...
Controlla la data di sistema attuale e fai la differenza da quella precedente... A questo punto metti il risultato nella editbox...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2004, 13:00   #9
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
ma in questo caso devo fare un loop, ogni volta mi deve controllare la data di sistema e fare la differenza...
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2004, 13:06   #10
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
il fatto è che il problema pare essere risolto con il createthread, ma si crea un altro problema, cioè la funzione contatore non passa niente alla funzione della dialogbox, e quindi non posso inviare il numero all'editbox della dialogbox stessa

Ultima modifica di kk3z : 28-06-2004 alle 14:36.
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2004, 15:01   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Che intendi per niente ? Al thread un parametro lo puoi passare
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2004, 15:20   #12
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
eccheglipasso?
potrei passagli un handle, se sapessi cos'è un LPVOID...
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2004, 15:26   #13
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
LPVOID è un void *...

LP nei tipi di Windows significa long pointer... Quando c'è una C significa contante...

Quindi gli puoi passare qualsiasi puntatore... Ad esempio il puntatore alla editbox... L'importante è poi farci un cast al tipo originale per poter usare il puntatore per scrivere il valore nella editbox con SetWindowText...

Ultima modifica di cionci : 28-06-2004 alle 15:28.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2004, 15:33   #14
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
ecco stavo provando proprio questo, gli passo l'handle all'editbox (l'handle è un puntatore no?), che però mi trasforma in LPVOID a quanto pare, e quindi poi non posso fare SetWindowText(p, tempoz)
infatti mi dice invalid conversion
spiegami meglio il cast al tipo originale
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2004, 16:08   #15
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980






























bastava che dichiaravo l'handle fuori dalla funzione
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2004, 16:45   #16
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da kk3z
bastava che dichiaravo l'handle fuori dalla funzione
Non so se stai programmando ad oggetti o no... Nel caso che tu stia programmando ad oggetti è una pratica piuttosto brutta...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2004, 16:57   #17
ri
Senior Member
 
L'Avatar di ri
 
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
mi spieghi la difficoltà di sta roba?
Allegati
File Type: zip timer.zip (11.0 KB, 29 visite)
ri è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2004, 17:02   #18
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Mi sa che non usa MFC
Comunque anche io avrei fatto come te...anche se avrei messo il timer a 1/10 di secondo...per evitare errori... Non c'è garanzia che la procedura del timer venga eseguita entro un certo lasso di tempo...e ad un certo punto potrebbe capitare che il contatore salti di due secondi...

Ultima modifica di cionci : 28-06-2004 alle 17:06.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2004, 17:44   #19
ri
Senior Member
 
L'Avatar di ri
 
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
si hai ragione, ma basta cambiare appunto i millisecondi di passaggio e il codice è già apposto
quello che non capisco invece è perchè si sta complicando la vita coi thread... o meglio, con i thread fatti a mano
ri è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2004, 20:10   #20
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
NON sto usando MFC e soprattutto NON ho visual c++
vedi un altro modo di farlo con le API? il loop nella funzione della dialogbox non posso farla...
anche quello che mi aveva proposto cionci
Quote:
Memorizza la data di sistema in secondi all'inzio del conteggio...
Usa SetTimer per settare un altro timer ogni decimo di secondo...
Controlla la data di sistema attuale e fai la differenza da quella precedente... A questo punto metti il risultato nella editbox...
ha bisogno di un loop, quindi nulla...

non vedo altri modi
kk3z è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando Due mesi di Battlefield 6: dalla campagna al bat...
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
La previsione di CATL: barche elettriche...
Stangata in arrivo: PC e notebook coster...
Lian Li si è inventata il primo a...
Amazon in raptus sconti: ogni 24 ore nov...
44 idee regalo sotto i 50€: con le offer...
Super Sconti Amazon Haul: ribassi fino a...
Cloudflare ha bloccato 416 miliardi di r...
Prezzo mai visto: POCO F7 12/256GB in su...
Svuotano tutto: super sconto su due scop...
Warner-Netflix, l'accordo riaccende le s...
6 robot al prezzo del Black Friday e non...
Russia, i cani randagi diventano hotspot...
Ogni giorno sconti nuovi: oggi iPhone 17...
Non solo Mac: anche alcuni futuri iPhone...
La costruzione del telescopio spaziale N...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 13:09.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v