遊戲中我們經常會用到圓形旋轉消失(或者出現)的功能,如下圖所示:這在U3D中比較簡單,只要勾選下image屬性即可,layaair中則要麻煩些。
處理思路是遮罩+扇形顯示。主要代碼如下:
export default class RotateShade extends Laya.Script {
static img:Laya.Sprite;
private sp: Laya.Sprite;
private graphicsImg():void{
this.sp = new Laya.Sprite();
// Laya.stage.addChild(this.sp);
//畫圓
this.sp.graphics.drawPie(-170,-210,300,-90,-90,"#ff0000");
this.sp.pos(RotateShade.img.x,RotateShade.img.y);
//實現img顯示對象的遮罩效果
RotateShade.img.mask = this.sp;
}
onStart()
{
this.graphicsImg();
}
private Angle:number=-90;
onUpdate(){
console.log(this.Angle);
if(this.Angle<270)
{
this.Angle+=1;
this.sp.graphics.drawPie(-170,-210,300,-90,this.Angle,"#ff0000");
}
}
}
最終效果如圖:
工程鏈接:https://download.csdn.net/download/tel17610887670/11560799
----------------------------2019/8/15夜晚更新--------------------------
實際項目中,發現不能重新繪製,所以每次都需要將img的mask置空,然後刪掉sp,重新繪製