天天看點

安卓遊戲開發之播放角色動畫

/**
	 * 播放bitmap變量中存貯的素材中的動畫
	 * @param canvas 畫布
	 * @param holder
	 * @param paint 筆
	 * @param scale 是否翻轉
	 * @param w 每幀的寬度
	 * @param h 每幀的高度 如隻有一排可設定為1
	 */
	protected void playAnimation(Integer w,Integer h,Canvas canvas, SurfaceHolder holder, Paint paint,boolean scale){
		int frameW = bitmap.getWidth()/w; //獲得每一幀的寬
		int frameH = bitmap.getHeight()/h; //獲得每一幀的高
		int col = bitmap.getWidth()/frameW; //獲得位圖列數
		int x = cureentFrame%col * frameW;
		int y = cureentFrame /col * frameH;
		paint.setAlpha(255);//不透明
		canvas.save();
		//paint.setColor(Color.RED);//設定畫筆顔色
		//設定每幀可見區域為角色一樣大小
		canvas.clipRect(bmpX,bmpY,bmpX+bitmap.getWidth()/w,bmpY+bitmap.getHeight()/h);
		if(scale){
			//如果向左移動則設定角色翻轉
			canvas.scale(-1,1,bmpX-x+bitmap.getWidth()/w,bmpY-y+bitmap.getHeight()/h);
		}
		canvas.drawBitmap(bitmap, bmpX-x,bmpY-y, paint);
		canvas.restore();
	}
           

傳入需要參數 即可   bitmap裡存儲的是角色動畫的素材

繼續閱讀