作者:知言布布,网络小白,浪漫理工男。现授权转载其创作的飞行射击游戏实际开发笔记。在此还特别声明,笔者在学习和开发游戏过程中使用的图片素材均来自网络。正文如下:背景介绍Egret实战开发,记录日常学习进度,欢迎和我一起学习交流~大家好,今天写这篇文章记录学习Egret游戏开发。笔者目前处于学习Egret引擎的初级阶段,很多地方的解释可能不够详细和正确,我的仅供参考。本文也有不足或不明确的地方,可以在评论中指出。之后我会继续更新Egret引擎的学习教程。想了解白鹭引擎的朋友记得关注哦。我会用很多图让大家直观的学习,少走弯路,以后学习代码和引擎库。希望小伙伴们看了我的讲解后,去磕头,吸取教训,互相学习。效果1.背景从上往下移动classBGextendsegret.Sprite{publicbg:egret.Bitmap[]=[];publicfg:egret.Bitmap;//前台公共vy:number;//背景移动速度publicGame:MainGame;//前一个指针publicconstructor(game:MainGame){super();this.game=游戏;for(leti=0;i<2;i++){this.bg[i]=Main.createBitmapByName("bg11_jpg");this.addChild(this.bg[i]);//图片的定位this.bg[i].y=0-i*this.bg[i].height;}这个.vy=10;//背景移动速度}publicupdate(){for(leti=0;i<2;i++){//图像向下移动this.bg[i].y+=this.维;//当图片移动到屏幕底部时,必须放在最上面if(this.bg[i].y>800){//如果有几张图片,则移动到几张图片的高度this.bg[i].y-=2*this.bg[i].height;}}}}飞行射击游戏是一款单屏游戏,类似于跑酷,无法停止镜头。背景向下移动,让玩家感觉飞机在向前飞行。后台实现:BG.ts应用:因为是2张图片。构造一个数组publicbg:egret.Bitmap[]=[];1前景publicfg:egret.Bitmap;//前台公共vy:number;//背景移动速度publicGame:MainGame;//上指针链类型对象管理前台随机生成3张图片publicresetFG(){//随机0~20ladder,1,2letid=Math.floor(Math.random()*3);switch(id){案例0:this.fg.texture=RES.getRes("bg12_png");if(Math.random()*100<50){//50%泛化是左还是右this.fg.scaleX=-1;这个.fg.x=480;}else{this.fg.scaleX=1;这个.fg.x=0;}休息;案例1:this.fg.texture=RES.getRes("bg13_png");=480-Math.random()*184;这个.fg.scaleX=1;休息;情况2:this.fg.texture=RES.getRes("bg13_png");this.fg.x=Math.random()*184;这个.fg.scaleX=-1;休息;}this.fg.y=-500-Math.random()*100;}使用Id随机生成前景图片,使用状态机将id作为随机生成显示。下面是一个细节,随机翻转,使用scaleX来避免同样的情况。resetFG()方法会被执行多次,所有reset方法都没有默认值。只要是reset方法,都需要重新赋值。如果未分配,将保留最后一个值。二。角色控制角色飞行器有3张图,因为是2D游戏,用小细节来实现3D效果,应用:轨迹遵循原则:实际速度V,如果手指快速移动,为80像素,但最大速度飞机的高度是30。实际行走是橙色三角形的斜边。先求C,vy=v*a/c;vx=v*b/c;publictouchMove()更新当前值移动时,oxoy最后一次点击保持不变,所以改变了当前位置。ny随时跟随手写笔获取最新位置。触摸三个方法,oxoynxny变化,玩家可以移动,ox记录开始,nx记录玩家变化。所以在update方法中,就有trackfollowing的核心代码。求c边a,b为横纵轴移动距离,c为实际移动距离。根据速度的vxvy再根据fi的值。只要大于2就往左飞,一直递减。用于显示拖动飞行器的偏转效果。至此,第一个文本的效果就展示出来了。
