java - have trouble with my 2d android game -


hey guys im kind of noob dont hard me. i'm working on 2d game android have trouble it. finished, want collectible coins in game, , want them spawn randomly on obstacles. finished main code of coins, hovering on obstacles , can collect them, have no idea how can let them randomly spawn: hope can me here code: coin class:

enter code herepublic class coin  extends gameobject{ private bitmap spritesheet; private double dya; private boolean playing; private long starttime; private animation animation = new animation(); private int num = 0; private obsticals obsticals;  public coin(bitmap res, int w, int h, int numframes) {     x = gamepanel.width + 20;     y = gamepanel.height - gamepanel.height / 4 - 200;     dy = 0;     dx = +gamepanel.movespeed;     height = h;     width = w;       bitmap[] image = new bitmap[numframes];     spritesheet = res;      (int = 0; < image.length; i++)     {         image[i] = bitmap.createbitmap(spritesheet, i*width, 0, width, height);     }     animation.setframes(image);     animation.setdelay(100);  } public void update() {         if (y <= 50) {             reseto();         }         x += dx;         long elapsed = (system.nanotime() - starttime) / 1000000;         if (elapsed > 10000) {             dx = dx - 1;             starttime = system.nanotime();             system.out.println(dx);             num = num + 30;         }         if (dx <= -25) {             dx = -24;         }         if (num >= 200) {             num = 200;         }  } public void draw(canvas canvas) {     canvas.drawbitmap(animation.getimage(),x,y,null);   } public void reseto(){     x = gamepanel.width + 20;     y = gamepanel.height - gamepanel.height / 4 - 200;     dy = 0;     dx = +gamepanel.movespeed;     num = 0;  } public void coincollected(){     reseto(); }   } 

here gamepanel code:

public class gamepanel extends surfaceview implements surfaceholder.callback {

public static final int width = 856; public static final int height = 480; public static int movespeed = -15;  //other classes private mainthread thread; private background bg; private busch busch; private ground ground; private player player; private obsticals obsticals; private sun sun; private coin coin; private coinsymbol coinsymbol;  private random rand = new random();  public boolean sliden = false;  private int coincounter = 0;  //sharedpreferences coins sharedpreferences coinprefs; sharedpreferences.editor coinprefseditor;  // sharedpreferences highscore sharedpreferences prefs; sharedpreferences.editor prefseditor; int highscore; int highstring; final string key1 = "key1";  public enum state{     menu,     ingame,     gameover; }; private state state = state.menu;  public gamepanel(context context) {      super(context);     //add callback surfaceholder intercept events     getholder().addcallback(this);      coinprefs = context.getsharedpreferences("coinprefsdatei", context.mode_private);     coinprefseditor = coinprefs.edit();      prefs = context.getsharedpreferences("prefsdatei", context.mode_private);     prefseditor = prefs.edit();      thread = new mainthread(getholder(), this);      //make gamepanel focusable can handle events     setfocusable(true); } public void gameover(){     state = state.gameover; } public   void newgame(){     movespeed = -15; } @override public void surfacechanged(surfaceholder holder, int format, int width, int height) { }  @override public void surfacedestroyed(surfaceholder holder) {     boolean retry = true;     while (retry) {         try {             thread.setrunning(false);             thread.join();          } catch (interruptedexception e) {             e.printstacktrace();         }         retry = false;     }  }  @override public void surfacecreated(surfaceholder holder) {     //checkt highscore     loadscore();     loadcoins();     //malt alle bilder     sun = new sun(bitmapfactory.decoderesource(getresources(), r.drawable.sonne));     bg = new background(bitmapfactory.decoderesource(getresources(), r.drawable.baum));     busch = new busch(bitmapfactory.decoderesource(getresources(), r.drawable.applandschaft));     ground = new ground(bitmapfactory.decoderesource(getresources(), r.drawable.weg));     coinsymbol = new coinsymbol(bitmapfactory.decoderesource(getresources(), r.drawable.coinsymbol));     //breite, höhe, frames     player = new player(bitmapfactory.decoderesource(getresources(), r.drawable.test), 115, 120, 8);     obsticals = new obsticals(bitmapfactory.decoderesource(getresources(), r.drawable.hindernisnew), 75, 150, 1);     coin = new coin(bitmapfactory.decoderesource(getresources(), r.drawable.coin), 40, 40, 4);     //we can safely start game loop     thread.setrunning(true);     thread.start();  } public void savehighscore(){     highscore = player.getscore();     prefseditor.putint(key1,highscore);     prefseditor.commit(); } public void loadscore(){     highstring = prefs.getint(key1,0); } public void loadcoins() { coincounter = coinprefs.getint(key1,0); } public void savecoins() {     coinprefseditor.putint(key1,coincounter);     coinprefseditor.commit(); }  @override public boolean ontouchevent(motionevent event) {     if(event.getaction()==motionevent.action_down){         if(state == state.menu){             state = state.ingame;          }         if(!player.getplaying() && state == state.ingame)         {             player.setplaying(true);          }         else if (state == state.ingame)         {             player.setup(true);         }         else if (state == state.gameover)         {             player.resetscore();             player.resetp();             player.setplaying(true);             state = state.ingame;             obsticals.reseto();             coin.reseto();             //newgame();         }         return true;      }     if(event.getaction()==motionevent.action_up)     {         player.setup(false);         return true;     }      return super.ontouchevent(event); }  public void update() {     if (player.getplaying() == true && state == state.ingame) {         bg.update();         busch.update();         player.update();         ground.update();         obsticals.update();         coin.update();         collisionboolen(player, obsticals);         collectcoin(player, coin);    }     }  public boolean collisionboolen(gameobject player, gameobject obsticals) {     if(rect.intersects(player.getrectangle(),obsticals.getrectangle()))     {         checkscore();         savecoins();         state = state.gameover;         ground.restartground();         return true;       }     return false; } public boolean collectcoin(gameobject player, gameobject coin) {     if(rect.intersects(player.getrectangle(),coin.getrectangle()))     {         coidcollectet();         coincounter += 1;         return true;     }     return false; } public void coidcollectet(){coin.coincollected();} public void stopplay(){     player.setplaying(false);  } public void checkscore(){     if (player.score > highstring)     {         savehighscore();         loadscore();     }else {         loadscore();     } } public void startmusik(){  }  @override public void draw(canvas canvas) {     final float scalefactorx = getwidth() / (width*1.f);     final float scalefactory = getheight() / (height*1.f);     if (canvas != null && state == state.ingame) {         final int savedstate = canvas.save();          canvas.scale(scalefactorx, scalefactory);         sun.draw(canvas);         paint paint = new paint();         paint.setcolor(color.black);         paint.settextsize(50);         paint.settextalign(paint.align.right);         canvas.drawtext(""+coincounter, width - 50 , 50 , paint);         bg.draw(canvas);         coinsymbol.draw(canvas);         busch.draw(canvas);         ground.draw(canvas);         player.draw(canvas);         obsticals.draw(canvas);         coin.draw(canvas);         canvas.restoretocount(savedstate);       }else if (canvas != null && state == state.menu){          canvas.scale(scalefactorx, scalefactory);         sun.draw(canvas);         bg.draw(canvas);         coinsymbol.draw(canvas);         busch.draw(canvas);         ground.draw(canvas);         paint paint = new paint();         paint.setcolor(color.black);         paint.settextsize(100);         paint.settextalign(paint.align.center);         canvas.drawtext("start game", width / 2  , height / 2 , paint);         paint.setcolor(color.black);         paint.settextsize(50);         canvas.drawtext("touch start!", width / 2  , height / 2 + 100 , paint);         paint.settextalign(paint.align.right);         canvas.drawtext(""+coincounter, width - 50  , 50 , paint);         paint.settextalign(paint.align.center);         paint.settextsize(20);         canvas.drawtext("highscore = "+highstring, width / 2  , height / 2 + 150 , paint);       }else if (canvas != null && state == state.gameover){      canvas.scale(scalefactorx, scalefactory);         canvas.drawcolor(color.black);         sun.draw(canvas);         bg.draw(canvas);         coinsymbol.draw(canvas);         busch.draw(canvas);         ground.draw(canvas);         paint paint = new paint();         paint.setcolor(color.black);         paint.settextsize(100);         paint.settextalign(paint.align.center);         canvas.drawtext("game over", width / 2  , height / 2 , paint);         paint.settextsize(50);         canvas.drawtext("touch restart!", width / 2  , height / 2 + 100 , paint);         paint.settextalign(paint.align.right);         canvas.drawtext(""+coincounter, width -50  , 50 , paint);         paint.settextalign(paint.align.center);         paint.settextsize(20);         canvas.drawtext("highscore = "+highstring, width / 2  , height / 2 + 150 , paint);         } } } 

i hope can me!

here function spawn ball random position. hope can adapt needs :

public void spawn() {     /**      * spawns ball @ random position      */     random random = new random();      radius = random.nextfloat() * 100f + 50f;      float velocity_x = random.nextfloat() * 70.0f + 40.0f;     float position_y = random.nextfloat() * (screen_height - 120 - radius);      position = new vector(screen_width, position_y);     paused_velocity = velocity = new vector(-velocity_x, 0.0f);  } 

source : virajmahesh | github : falling balls


Comments

Popular posts from this blog

wordpress - (T_ENDFOREACH) php error -

Export Excel workseet into txt file using vba - (text and numbers with formulas) -

Using django-mptt to get only the categories that have items -