# Applet stürzt ab



## Rumpel (13. Jul 2007)

hi leute 
ich habe ein problem und zwar stürtzt mein applet ab, beim benutzen und ich weiß nicht wieso ich habe eine vermutung, das es  was mit dem löschen des arrays zutun hat. also die fehlermeldung spuckt er mir aus
Exception in thread "Thread-3" java.lang.NullPointerException
	at a1.run(a1.java:83)
	at java.lang.Thread.run(Unknown Source)
ich denke es liegt an dieser stelle des qc
	
	
	
	





```
for (int k=0; k<komet.length; k++){
				
				if (komet[k] != null){
					komet[k].moveKometen(1);
					if(komet[k].getY_pos() > 300){
						komet[k] =null;
					}
					for(int i=0; i<shots.length; i++){
					if (shots[i]!=null)	{
					
					if(kolli.SchussKollision(komet[k].getX_pos(), komet[k].getX_pos()+komet[k].getBreite(), komet[k].getY_pos()+komet[k].getHoehe(),shots[i].getYpos(),shots[i].getXpos())) 
					{
						komet[k].respawn(40, 0, 30, 10);
						shots[i]=null;
					}
					}
					}
				}
				
				
				if(komet[k] == null){
					  komet[k]= Player.generateKometen();
			            break;
					
				
				}
			}
```
hätte auch noch mehr qc im angebot, aber ich denke das es was mit dem oben erwähnten qc zutun hat, aber wenn ihr wollt könnte ich auch den kompletten qc posten, was aber ne zumutung ist das alles zulesen. naja danke im vorraus 
mfg Rumpel


----------



## André Uhres (13. Jul 2007)

Du hast wahrscheinlich eine der Variablen *komet*, *shots* und *kolli* 
entweder nicht initialisiert oder irgendwo wieder ungewollt auf null gesetzt.


----------



## Rumpel (13. Jul 2007)

danke schonmal 
in zeile 83 wird diese methode auf gerufen    
	
	
	
	





```
public boolean SchussKollision (int x1Komet,int x2Komet, int yKomet, int ySchuss, int xSchuss){ 
         if(xSchuss>x1Komet&&xSchuss<x2Komet&&ySchuss==yKomet){ 
              return true; 
         }  
         return false;
    }
```
 und wenn ich mich nicht irre ist der fehler das sie return false wieder gibt richtig?
mfg Rumpel


----------



## Leroy42 (13. Jul 2007)

Rumpel hat gesagt.:
			
		

> in zeile 83 wird diese methode auf gerufen



Der Fehler passiert nicht *in* der Methode sondern bei *Aufruf* derselben.

Und es sieht ganz danach aus, daß André mit seiner Vermutung
recht hatte.


----------



## André Uhres (13. Jul 2007)

Mach einfach mal vor dem Aufruf "if(kolli.SchussKollision(..." diese Zeile hin:

```
System.out.println("komet[k]: "+komet[k]+"  komet: "+komet+"  shots: "+shots+"  kolli: "+kolli);
```
dann siehst du, für welche Variable "null" ausgegeben wird :wink:
Ich tippe auf *kolli*, denn die anderen werden ja schon vorher benutzt!
EDIT: könnte allerdings auch *komet[k]* sein, wenn dies vorher aufgerufen wurde:

```
komet[k] =null;
```


----------

