安卓游戏开发之播放角色动画

	/**
	 * 播放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里存储的是角色动画的素材
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值