/**
* 播放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里存储的是角色动画的素材
安卓游戏开发之播放角色动画
最新推荐文章于 2021-05-25 16:20:19 发布