Vielen Dank für deine HIlfe. Jedoch glaube ich nicht, dass das mit dem Array funktionieren würde. Da ich die Werte kombiniert in der Update Methode brauche.
Ich will auf dem Screen 10 verschiedene Fische zeichnen, die sich unabhängig bewegen. Für das braucht jeder seine x und y koordinaten, den Speed und in welchem Bitmap Bild er gerade ist. Im Update wird dann die neue Position berechnet, auf kollisionen gecheckt und dann wird der Fisch gezeichnet.
Die Variablen vom Fisch sollten dann an die drawingfish methode zurückgegeben werden, so das diese nach 40 Millisekunden die Update methode mit den neuen Variablen wieder aufrufen kann. Dabei sollten die Variablen nicht von den vorher definierten Lokalvariablen überschrieben werden.
Ich könnte 40 verschiede Variablen definieren, aber ich glaube da gibt es eine elegantere Möglichkeit.
1public void drawingfish(Canvas canvas) { //Wird all 40 Millisekunden aufgerufen
2 int xfish=(screenwidth+10);
3 int yfish=(heightfish/2) + (int)(Math.random() * ((screenheight - heightfish) + 1));
4 int fishspeed=5;
5 int currentFramefish=0;
6
7 updatefish(canvas, xfish, yfish, fishspeed, currentFramefish);
8 }
9
10 public void drawingfishtwo(Canvas canvas) { Wird all 40 Millisekunden aufgerufen
11 int xfish=(screenwidth+10);
12 int yfish=(heightfish/2) + (int)(Math.random() * ((screenheight - heightfish) + 1));
13 int fishspeed=3;
14 int currentFramefish=0;
15
16 updatefish(canvas, xfish, yfish, fishspeed, currentFramefish);
17 }
18
19 //8 mehr von diesen drawingfish methoden
20
21
22 private void updatefish(Canvas canvas, int xfish, int yfish, int fishspeed, int currentFramefish) {
23 currentFramefish = ++currentFramefish % 4;
24 xfish=xfish-fishspeed;
25
26 if (xfish<-widthfish) {
27 xfish=(screenwidth+10);
28 yfish=(heightfish/2) + (int)(Math.random() * ((screenheight - heightfish) + 1));
29 }
30
31 Rect checkdelf = new Rect (x+screenheight/5,(int) (y+(screenheight/7)+(screenheight/8)*Math.tan(Ingame.jetzt)),x+(screenheight/4),(int) (y+(screenheight/5)+(screenheight/8)*Math.tan(Ingame.jetzt))); //Change dividie number if dolphin the fish doesnt catch
32 Rect checkfish = new Rect (xfish,yfish+(screenheight/25),xfish+(screenheight/20),yfish+(screenheight/20));
33 if (checkdelf.intersect(checkfish)) {
34 xfish=(screenwidth+10);
35 yfish=(heightfish/2) + (int)(Math.random() * ((screenheight - heightfish) + 1));
36 Ingame.score=Ingame.score+1;
37 }
38 int srcXfish = currentFramefish * widthfish;
39 Rect srcfish = new Rect (srcXfish,0, srcXfish + widthfish, heightfish);
40 Rect dstfish = new Rect (xfish, yfish, xfish+(screenheight/10), yfish+(screenheight/10));
41 canvas.drawBitmap(bfish, srcfish, dstfish, null);
42 return;
43 }
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.