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 28-04-2004, 16:32   #1
NetTitus
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 443
Acquisizione caratteri da tastiera sotto linux

Salve a tutti!!

Ho un problema nell'acquisizione singola dei tasti premuti da tastiera con il C++ (G++ in ambiente linux).

Mi spiego, in Windows esiste una funzione fgetch() che "legge" un
carattere alla volta senza aspettare che premi invio.

In linux non esiste (non sono riuscito a trovare) una funzione simile che faccia al mio caso (infatti cin inserisce nello stream fino a quando premo invio ).

Cosa posso fare ??


Saluti
NetTitus è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2004, 16:36   #2
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
stdin è line-buffered, devi renderla char-buffered (ed opzionalmente non bloccante). v. man termios, in particolare tcsetattr.
Ho postato del codice su questo argomento diverso tempo fa; se non riesci a trovarlo ti do una mano.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2004, 16:43   #3
NetTitus
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 443
Grazie per l'aiuto che mi stai dando .

Ho trovato questo a riguardo

tcsetattr() sets the parameters associated with the termi-
nal (unless support is required from the underlying hard-
ware that is not available) from the termios structure
referred to by termios_p. optional_actions specifies when
the changes take effect:

Ma non ho capito bene cosa devo fare (mi sembra un po' complesso)

Saluti
NetTitus è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2004, 16:53   #4
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Codice:
struct termios new_tty;
struct termios old_tty;
tcgetattr(fileno(stdin), &old_tty);
new_tty = old_tty;
new_tty.c_lflag &= ~ICANON;
// Decommenta questa riga se vuoi togliere l'eco dei caratteri
// new_tty.c_lflag &= ~ECHO;
new_tty.c_cc[VMIN] = 1;
new_tty.c_cc[VTIME] = 0;
tcsetattr(fileno(stdin), TCSAFLUSH, &new_tty);
Ora stdin legge un carattere alla volta, ma è sempre bloccante. Se vuoi vedere quanti caratteri ci sono da leggere, esegui
Codice:
int cnt;
ioctl(fileno(stdin), FIONREAD, &cnt);
Per leggere un carattere, puoi usare una normale read (ricorda che se non ci sono caratteri in ingresso, è bloccante):
Codice:
char ch;
read(fileno(stdin), &ch, 1);
Ricorda ti ripristinare old_tty prima di terminare il programma.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2004, 17:43   #5
NetTitus
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 443
Grazie mille!!

Pero' ho un'altro problema : l'attesa di un carattere.

Es.
Pensa se devi creare un flipper che comandicon la tastiera in Linux se e' bloccante non riesci e gestire altri eventi che devi gestire continuamente (pensa al movimento della pallina) .

Esiste un modo in linux per gestire cio' ??

Come si puo' creare un'interfaccia ad eventi se c'e' una funzione bloccante ??

Saluti !
NetTitus è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2004, 17:54   #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
http://forum.hwupgrade.it/showthread...ighlight=getch

Scommetto che eri un utente Borland
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2004, 18:03   #7
NetTitus
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 443
Esatto !!

Eh la borland fa funzioni veramente efficenti e semplici per il programmatore.

Avresti dell'altro materiale a riguardo ??

Grazie mille per l'aiuto che mi hai dato finora.

Mi piacerebbe specializzarmi di piu' con il C++ in linux con compilatori freeware potenti.

Saluti!
NetTitus è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2004, 18:13   #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
Mi sembra che ci sia già abbastanza materiale...hai guardato nei link ?
Codice:
   #include <curses.h>
   
   int main(){
     WINDOW *w;
     int c;
   
     w = initscr();
   
     cbreak();          /* no line buffering */
     nodelay(w, TRUE);  /* make getch call non blocking */
   
     while(1){
       if((c = getch()) != ERR) break;   /* if(kbhit()) break; */
     }
   
     endwin();
     return 0;
   }
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2004, 20:32   #9
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da NetTitus
Pero' ho un'altro problema : l'attesa di un carattere.

Es.
Pensa se devi creare un flipper che comandicon la tastiera in Linux se e' bloccante non riesci e gestire altri eventi che devi gestire continuamente (pensa al movimento della pallina) .

Esiste un modo in linux per gestire cio' ??
Secondo te la ioctl che te la ho postata a fare?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è 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...
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...
HBO ha cancellato la produzione della se...
OpenAI ha pensato a una partnership (o a...
Starlink Mobile: SpaceX potrebbe lanciar...
Volkswagen trasforma lo stabilimento di ...
Meta AI più reattivo e imparziale...
In Cina la prima GPU discreta al mondo c...
Vertiv CoolCenter, il sistema di raffred...
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: 09:03.


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