IT之家2月10日消息|arkui开发框架中canvas组件的使用( 三 )
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<20-w/2?nx=20-w/2:nx>(this.windowWidth-w/2-20)?nx=(this.windowWidth-w/2-20):0;ny<0?ny=0:ny>(this.windowHeight-h/2)?ny=(this.windowHeight–h/2):0;this.hero.x=nx;this.hero.y=ny;this.hero.count=2;
【IT之家2月10日消息|arkui开发框架中canvas组件的使用】注:本示例引用了部分开源资源 , 感兴趣的开发者可参考此开源资源 , 结合文中的实现思路补全代码 。
- visu微软Visual Studio Code Java 2月更新发布
- 芯片|OPPO新机官宣:2月24日,全球发布,亮点“首发天玑9000”
- 本文转自:安阳新闻网资料图安阳融媒记者 牛思明记者2月17日从市工信部门获悉|猎鹰PDFRE消防无人机系统获省首台(套)重大技术装备认定
- 涡轮增压器|贝斯特:东方财富证券于2月16日调研我司
- 出行服务|萝卜快跑:抠门且布局高效
- 惠普游戏家族五款新品齐发 12代酷睿加持升级体验
- K50 电竞版今日开售
- 一加10Pro手机于1月10日正式发布|一加10pro发布会只带来pro版一款手机
- 2月16晚|小米的高端化之路仍待提高
- 比亚迪又换logo啦!2022年2月17日晚间|比亚迪又换logo了!网友:感觉自己也能去当设计师了