arkui开发框架中canvas组件的使用( 三 )
文章图片
文章图片
1.首先列出游戏所用到的图片
privateimgList:Array=["xx.png","xx.png"…];
2.将图片渲染到canvas画布上
letimg:ImageBitmap=newImageBitmap("图片路径(如common/images)/"+this.imgList[数组下标]);this.ctx.drawImage(img,150/*x坐标*/,150/*y坐标*/,600/*宽*/,600/*高*/)
3.绘制背景图片和战机向下移动的效果
this.ctx.drawImage(this.bg,0,this.bgY);this.ctx.drawImage(this.bg,0,this.bgY-480);this.bgY++==480&&(this.bgY=0);
4.使用Math.round函数随机获取敌机图片并渲染到画布上 , 并且改变敌机y轴坐标 , 使它向下运动 。
Efight=Math.round(Math.random()*7);//前七张为敌机图片 。letimg:ImageBitmap=newImageBitmap("common/img"+this.imgList[Efight]);this.ctx.drawImage(img,0,this.Eheight+50);//渲染敌机
5.在页面每隔120s出现一排子弹 , 之后减小或增大(x,y)轴的坐标达到子弹射出效果 。
leti=0;setInterval(()=>{this.ctx.drawImage(this.bulImg1,image.x–10–(i*10),image.x+(i*10))this.ctx.drawImage(this.bulimg2,this.bulImg1,image.x–(i*10),iimage.x+(i*10))this.ctx.drawImage(this.bulimg3,image.x+10+(i*10),image.x+(i*10))i++;},120)
6.使用onTouch方法获取战机移动位置 , 获取拖动的坐标后重新设置战机的图片坐标 , 使战机实现拖动效果 。
.onTouch((event)=>{varoffsetX=event.localX||event.touches[0].localX;varoffsetY=event.localY||event.touches[0].localY;varw=this.heroImg[0].width,h=this.heroImg[0].height;varnx=offsetX-w/2,ny=offsetY-h/2;nx(this.windowWidth-w/2-20)?nx=(this.windowWidth-w/2-20):0;ny(this.windowHeight-h/2)?ny=(this.windowHeight–h/2):0;this.hero.x=nx;this.hero.y=ny;this.hero.count=2;
注:本示例引用了部分开源资源 , 感兴趣的开发者可参考此开源资源 , 结合文中的实现思路补全代码 。
- 索尼开发ai车手可击败人类顶尖车手获冠军
- 以色列将建立独立自主的量子计算能力:开发本国首台量子计算机
- 美光终止英睿达内存及线下开发
- 伦敦大学学院开发新型太阳能电池 提高转换效率/比硅光伏薄1000倍
- 2022年APP软件开发公司一个APP需要多少钱?
- 巫师3|《巫师3》多位主创成立新工作室(将开发3A级CRPG大作,游戏插画公布)
- sk海力士开发首款内存半导体技术gddr6-aim
- 迅雷公开发售8000份数字藏品 推出迅雷链企业数字藏品服务平台
- 小米手机怎么取消开发者模式(小米开发者模式开关设置教程)
- iphone12开发者选项怎么找不到(iphone12进入开发者选项方法一览)