Autore Topic: Errore durante esecuzione gioco  (Letto 462 volte)

Offline alx

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Next
  • Sistema operativo:
    Windows XP
Errore durante esecuzione gioco
« il: 16 Gennaio 2013, 23:04:39 CET »
0
Salve a tutti , ho avuto un problema durante lo sviluppo di un gioco per dispositivi Android.
In poche parole il gioco consiste nel distruggere gli alieni con il tocco , ma durante il passaggio dal menù iniziale al gioco l'app termina.
Non è un problema di Intent , riporto il Log Cat :
Codice: [Seleziona]
FATAL EXCEPTION: main
java.lang.NullPointerException
at com.example.gameexample.GameView.onDraw(GameView.java:42)

Ho capito dov'è l'errore ma non riesco a risolverlo!

In allegato c'è il .rar del progetto.

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Errore durante esecuzione gioco
« Risposta #1 il: 17 Gennaio 2013, 11:15:26 CET »
0
Codice (Java): [Seleziona]
public class GameView extends View {

  int x = 0 ; // non serve
  int y = 0 ; // non serve
  int i = 0 ; // perche'? per l'amor di Dio perche'?! sui cicli for crea al volo i,
                 // non far riferimento ad un membro di classe per queste operazioni o, come vedrai sull'onTouchEvent,
                 // rischi di incorrere in sviste
  int touched = 0 ; // non andrebbe messo sul singolo alieno il fatto che l'ho toccato?
  Alien[] enemies = new Alien[10] ; // NB: crea un array in grado di accogliere 10 Alien, ma non inizializza i 10 Alien!

  //...

  public GameView(Context context) {
    super(context);
    // carica l'array di alieni, altrimenti enemies è un array di 10 null...
    for (int i = 0 ; i < 10 ; i++ ) {
      enemies[i] = new Alien(bmp, generator.nextInt(500), 0);
    }
  }

  protected void onDraw(Canvas canvas ) {
    super.onDraw(canvas) ;

    Paint paint = new Paint() ;
    paint.setTextSize(20) ;
    paint.setColor(Color.CYAN);

    for ( int i = 0 ; i < 10 ; i++ ) {
//      enemies[i].setBitmap(bmp) ;
//      enemies[i].setX(generator.nextInt(500)) ;
//      enemies[i].setY(0) ;
                       
      canvas.drawBitmap(enemies[i].bmp , enemies[i].x , enemies[i].y , null) ;
//...

Offline alx

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Next
  • Sistema operativo:
    Windows XP
Re:Errore durante esecuzione gioco
« Risposta #2 il: 17 Gennaio 2013, 14:30:26 CET »
0
Riguardo la dichiarazione degli int ne sono consapevole che non servono , è soltanto un errore di distrazione siccome mi sono focalizzato più sull'errore dichiarato dal LogCat .

Per il resto grazie per le dritte , dopotutto è da poco più di 1 settimana che ho iniziato a sviluppare per Android , sono ancora un novellino  :-P