Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-04-2007, 17:00   #1
australopiteci
Member
 
Iscritto dal: Feb 2005
Messaggi: 127
[C] getch che non blocca

Salve a tutti, non capisco per quale motivo questa getch sia non bloccante e tutti i valori vadano a finire sul case default. Ora incollo la parte del codice interessata.

Codice:
while (in_esecuzione)
	{	
	
	
		//pos_nave.x += SPOSTAMENTO_NAVE; /*sposta a sinistra la nave*/
		pos_nave.vita +=1;
	
		
		/*invia il dato alla funzione controllo  i dati che indicano la nuova posizione della nave*/
		scrivi_su_buffer(pos_nave); 
		
		//fflush(stdin);
		
		/* input da tastiera*/
		fflush(stdin);
			switch(c = getch())
			{	
				 

				case TASTO_USCITA:
					/*scrivi sul buffer (accedendo tramite l'opportuno mutex e verificando se vi
					siano posizioni disponibili per la scrittura)relativo alla comunicazione con
					controllo i dati che indicano che il giocatore ha scelto di uscire dal
					gioco*/
					pos_niente.tipo = USCITA;
				

					 
					in_esecuzione = false;/*esci dal ciclo esterno e quindi fai finire il thread*/
									
					break;

				/*se si preme la freccia sinistra la nave si sposta a sinistra*/	
				case SINISTRA:
					
					/*se la nave è in una posizione dello schermo dove può stare*/
					if(pos_nave.x > DISTANZA_DAI_LATI)
						pos_nave.x -= SPOSTAMENTO_NAVE; /*sposta a sinistra la nave*/
						
						scrivi_su_buffer(pos_nave); 

					break;
				/*se si preme la freccia destra la nave si sposta a destra*/
				case DESTRA:
					/*se la nave è in una posizione dello schermo dove può stare*/
					if(pos_nave.x < MAXX-DISTANZA_DAI_LATI)
						pos_nave.x += SPOSTAMENTO_NAVE;/*sposta a destra la nave*/
						
					scrivi_su_buffer(pos_nave); 

					break;
				default:
				sleep(1);
				pos_nave.x -= SPOSTAMENTO_NAVE;
				 
			}

	}
Ho provato anche ad usare fflush ma il problema rimane..
__________________
the AUSTRALOPITECI
australopiteci è offline   Rispondi citando il messaggio o parte di esso
Old 11-04-2007, 17:16   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da australopiteci Guarda i messaggi
Salve a tutti, non capisco per quale motivo questa getch sia non bloccante e tutti i valori vadano a finire sul case default.
getch() è bloccante. Inoltre fflush(stdin) non serve a nulla e come ho già detto molte altre volte, lo standard prevede che fflush sia usato con stream di output (con stream di input il comportamento non è predefinito, ma con certi compilatori funziona).

Piuttosto le costanti SINISTRA/DESTRA sono per le frecce della tastiera??? I tasti "speciali" (Fxx, frecce, page up/down, ecc...) vengono ottenuti tramite una sequenza di 2 codici, il cui primo valore è 0 oppure 224 e il secondo un codice particolare. Quindi serve una sequenza di 2 getch() per usare tali tasti.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 11-04-2007, 17:49   #3
australopiteci
Member
 
Iscritto dal: Feb 2005
Messaggi: 127
si esatto sono le frecce direzionali. Il fatto è che pero' va sempre nel case di default senza premere nessun tasto. Sto debuggando e mi sa proprio che la getch ritorna un -1 quindi c'è un errore ma mi sembra giustissimo il codice...
__________________
the AUSTRALOPITECI
australopiteci è offline   Rispondi citando il messaggio o parte di esso
Old 11-04-2007, 19:38   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da australopiteci Guarda i messaggi
si esatto sono le frecce direzionali.
Ripeto che per i tasti speciali c'è una sequenza particolare composta da 2 codici, quindi un modo corretto di gestire tali tasti è il seguente:
Codice:
#include <stdio.h>
#include <conio.h>

int main (void)
{
    int ch, end = 0;

    while (!end)
    {
        ch = getch ();

        switch (ch)
        {
            case 0x00:
            case 0xE0:
                ch = getch ();

                switch (ch)
                {
                    case 0x4B:
                        printf ("Freccia sinistra\n");
                        break;
                    case 0x4D:
                        printf ("Freccia destra\n");
                        break;
                }
                break;

            case 0x1B:    /* ESC */
                printf ("ESC\n");
                end = 1;
                break;
        }
    }

    return 0;
}
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
GTA VI, il multiplayer potrebbe debuttar...
Aggiornamento KB5002914 rompe Excel: ecc...
Processo Huawei a Brooklyn: l'FBI mostra...
WhatsApp introduce nuovi temi per le cha...
NVIDIA, Google e Emerald AI uniscono le ...
iPhone 18 Pro Max, il test sulla vapor c...
Fine estate in giardino: le proposte sco...
Batterie allo stato solido dietro l'ango...
Gears of War: E-Day raggiunge la fase Go...
GTA 6 avrà un'edizione fisica, ma...
Pangram arriva su Gmail per identificare...
ASUS ProArt Display OLED: quattro nuovi ...
Saldi Autunnali Mammotion: fino a 369 € ...
La BEI annuncia un nuovo Consiglio di es...
Il board di Meta ordina la rimozione di ...
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:52.


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