|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
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 22:32. |
|
|
|
|
|
#2 |
|
Junior Member
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);
}
}
}
}
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)){
|
|
|
|
|
|
#3 |
|
Member
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
|
|
|
|
|
|
#4 |
|
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! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:30.



















