Android游戏开发学习①弹跳小球实现方法

2019-12-10 20:00:03于海丽
  • bmpBack=BitmapFactory.decodeResource(r, R.drawable.back);   bmpWood=BitmapFactory.decodeResource(r, R.drawable.wood);  
  • }   public void initMovables() {  
  • Random r=new Random();   for(int i=0;i<ballNumber;i++) {  
  • int index=r.nextInt(32);   Bitmap tempBitmap=null;  
  • if(i<ballNumber/2) { //如果是初始化前一半球,就从大球中随机找一个   tempBitmap=bitmapArray[3+index%3];  
  • } else { //如果是初始化前一半球,就从小球中随机找一个   tempBitmap=bitmapArray[index%3];  
  • }   //创建Movable对象  
  • Movable m=new Movable(0, 70-tempBitmap.getHeight(), tempBitmap.getWidth()/2, tempBitmap);   alMovable.add(m); //加入列表中  
  • }   }  
  • public void doDraw(Canvas canvas) { //绘制程序中需要的图片等信息   canvas.drawBitmap(bmpBack, 0, 0,null);  
  • canvas.drawBitmap(bmpWood, 0, 60,null);   for (Movable m : alMovable) { //遍历绘制每个Movable对象  
  • m.drawSelf(canvas);   }  
  • Paint p=new Paint();   p.setColor(Color.BLUE);  
  • p.setTextSize(18);   p.setAntiAlias(true); //设置抗锯齿  
  • canvas.drawText(fps, 30, 30, p); //画出帧速率字符串   }  
  • @Override  public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {  
  • }   @Override 
  • public void surfaceCreated(SurfaceHolder arg0) {   if(!dt.isAlive()) {  
  • dt.start();   }  
  • }   @Override 
  • public void surfaceDestroyed(SurfaceHolder arg0) {   dt.flag=false;  
  • dt=null;   }