Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Pannello QD-OLED da 32 pollici con risoluzione 4K, frequenza di aggiornamento a 240Hz e tempi di risposta rapidissimi: il Gigabyte MO32U24 evolve il progetto del suo predecessore MO32U e alza ulteriormente l'asticella delle prestazioni. È ancora una volta un monitor indirizzato ai giocatori più esigenti
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-04-2010, 20:35   #1
Ida88
Junior Member
 
Iscritto dal: Mar 2010
Messaggi: 8
[java]Aggiornare la grafica

Buonasera!sto realizzando un videogioco! precisamente sto facendo il gioco snake,quello che è presente sui cellulari nokia,(o almeno cerco di fare qualcosa di simile!). Ma ho un problema. Sostanzialmante il mio gioco è composto da uno snake che si muove liberamente in uno spazio b-dimensionale, e può mangiare o il cibo o il bonus. Tra le classi del mio gioco c'è il pannello:
public Pannello_Principale(World mondo) {
super();
}


Il mio problema è proprio qui nella paintComponent. Ho questo frammento di codice:

for (int i = 0; i < mondo.getDimensioneX(); i++) {
for (int j = 0; j < mondo.getDimensioneY(); j++) {
if (mondo.getElementoOccupato(new Coordinate(i,j))) { //funzione che data la posizione (i,j), restituisce true, se c'è un oggetto
Oggetto o = mondo.GetOggetto(new Coordinate(i,j));//funzione che restituisce l'oggetto in posizione (i,j)
if (o.getTipo().equals(Tipo.BONUS)){ // se il tipo dell'oggetto è bonus allora disegna un cerchio verde
g.setColor(Color.GREEN);
g.fillOval(i*20, j*20, 15, 15);
}
if (o.getTipo().equals(Tipo.CIBO)){// se il tipo è cibo allora disegna il cerchi magenta
g.setColor(Color.MAGENTA);
g.fillOval(i*20, j*20, 10, 10);
}
}
}
}

Il mio problema, è che se il bonus non è presente,java solleva l'eccezione java.lang.NullPointerException, perchè non trova nessun oggetto
di quel tipo. Potreste suggerirmi qualcosa per risolvere il problema?
Spero di essere stata chiara!
Grazie anticipatamente

Ultima modifica di Ida88 : 08-04-2010 alle 21:32.
Ida88 è offline   Rispondi citando il messaggio o parte di esso
Old 09-04-2010, 08:47   #2
Micromani
Junior Member
 
L'Avatar di Micromani
 
Iscritto dal: Apr 2010
Messaggi: 5
Codice:
public Pannello_Principale(World mondo) {
		super();
}

Il mio problema è proprio qui nella paintComponent. Ho questo frammento di codice:

for (int i = 0; i < mondo.getDimensioneX(); i++) {
	for (int j = 0; j < mondo.getDimensioneY(); j++) {
		if (mondo.getElementoOccupato(new Coordinate(i,j))) { //funzione che data la posizione (i,j), restituisce true, se c'è un oggetto
			Oggetto o = mondo.GetOggetto(new Coordinate(i,j));//funzione che restituisce l'oggetto in posizione (i,j)
			if (o.getTipo().equals(Tipo.BONUS)){ // se il tipo dell'oggetto è bonus allora disegna un cerchio verde
				g.setColor(Color.GREEN);
				g.fillOval(i*20, j*20, 15, 15);
			}
			if (o.getTipo().equals(Tipo.CIBO)){// se il tipo è cibo allora disegna il cerchi magenta
				g.setColor(Color.MAGENTA);
				g.fillOval(i*20, j*20, 10, 10);
			}
		}
	}
}
Usa CODE come tag per i codici.

Se hai un puntamento a un null vuol dire che ti manca qualche inizializzazione.
Se il bonus non è presente, suppongo che l'errore te lo dia alla riga:

Codice:
if (o.getTipo().equals(Tipo.BONUS)){
Guarda in debug, come risultano le variabili?
Micromani è offline   Rispondi citando il messaggio o parte di esso
Old 09-04-2010, 11:11   #3
pequeno
Member
 
L'Avatar di pequeno
 
Iscritto dal: Jul 2005
Città: Potenza
Messaggi: 126
Ciao, non rispondo alla tua domanda, ma mi interessa l'argomento. Stai seguendo della documentazione specifica per videogame in java? Se si, che risorse stai utilizzando?
__________________
Un'interfaccia per domarli, un package per trovarli tutti, un riferimento per ghermirli e nel framework incatenarli."
Il Signore degli Oggetti
pequeno è offline   Rispondi citando il messaggio o parte di esso
Old 11-04-2010, 14:02   #4
Ida88
Junior Member
 
Iscritto dal: Mar 2010
Messaggi: 8
Ciao! Problema risolto! Facendo dei controlli sul getTipo() mi sono resa conto che restituiva un valore null.
Comunque no, non sto utilizzando nessuna risorsa in particolare!
Ida88 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Prime Day anticipato, le offerte sui rob...
Microsoft: l'obbligo dell'account online...
Prime Day anticipato, i migliori Roboroc...
'Case distrutte dai razzi di Musk': il l...
Meno 50% dal picco: Bitcoin a $64.394 e ...
MOVA, guida all'acquisto dei tagliaerba ...
Come potrebbero essere le CPU Intel Rapt...
DJI Osmo 360 Combo Essenziale a 395€: 1 ...
Teste di bambola e foto finte: cos&igrav...
Haier rilancia con due TV da tenere d'oc...
Easy Anti-Cheat sul kernel Linux: Epic G...
Amazon Fire TV Stick 4K Select a 24,99€:...
Una teoria matematica cambia i datacente...
Prime Day in anticipo, giorno 1: tutte l...
Agenti IA che si coordinano tra loro: Go...
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: 11:08.


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