Egret学习笔记 (Egret打飞机-2.开始游戏)
打开 Egret Wing,新建一个Egret游戏项目,然后删掉默认生成的createGameScene方法里面的东西
然后新建一个BeginScene.ts的文件,作为我们的游戏的第一个场景
1 class BeginScene extends egret.DisplayObjectContainer { 2 public constructor() { 3 super(); 4 this.addEventListener(egret.Event.ADDED_TO_STAGE, this.Init, this) 5 } 6 7 public Init() { 8 let begin = new egret.TextField(); 9 begin.text = "Click Begin" 10 begin.size = 50; 11 12 this.addChild(begin) 13 begin.x = (GameConfig.SceneW - begin.width) / 2; 14 begin.y = GameConfig.SceneH/2; 15 } 16 }
然后我们再Main.ts里面的createGameScene方法把这个场景添加到里面
/** * 创建游戏场景 * Create a game scene */ private createGameScene() { /** * 添加开始场景 */ this.beginScene = new BeginScene(); this.beginScene.width = GameConfig.SceneW; this.beginScene.width = GameConfig.SceneH; this.addChild(this.beginScene) }
然后点击Wing的调试按钮,这时候不出意外的话,模拟器中间上就会显示出Click Begin的字,(如果使用Chrome调试的话,那么最好切换到手机模式)
光秃秃的几个字看起来也有点尴尬,我们再来给当前场景弄一个背景层
再在src下新建一个文件 BgContent.ts 然后编写如下代码
/** * 背景 */ class BgContent extends egret.DisplayObjectContainer { public constructor() { super(); this.addEventListener(egret.Event.ADDED_TO_STAGE, this.Init, this) } public Init(): void { var shp: egret.Shape = new egret.Shape(); shp.graphics.beginFill(0x000000, 1); shp.graphics.drawRect(0, 0, GameConfig.SceneW, GameConfig.SceneH); shp.graphics.endFill(); this.addChild(shp); } }
这个背景层就是一个黑色的背景,如果需要自己加图片或者其他的样式,就直接在Init里面写自己的逻辑就行了
加上背景之后,我们再次把这个背景层添加到Main.ts里面
/** * 创建游戏场景 * Create a game scene */ private createGameScene() { /** * 添加背景层 */ var bg = new BgContent(); bg.name = "bg"; this.addChildAt(bg, 0) /** * 添加开始场景 */ this.beginScene = new BeginScene(); this.beginScene.width = GameConfig.SceneW; this.beginScene.width = GameConfig.SceneH; this.addChild(this.beginScene) }
添加到场景的,egret给我们提供了addChildAt和addChild两个方法,前面一个是可以设置容器对象的深度,可以控制对象渲染的层级,比如显示到前面或者后面,后面一个方法,我的理解就是(先添加就先渲染,后添加就后渲染,后添加的就显示在前面)
然后再次点击调试按钮,运行我们的代码
然后开始界面就做好了。
好了,我也要睡觉去了,眼睛都有点疼了
分类:
Egret学习笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端