当前位置: 首页 > article >正文

制作一款打飞机游戏63:自动保存

1.编辑器的自动保存实现

  • 目标‌:将自动保存功能扩展到所有编辑器,包括脑编辑器、模式编辑器、敌人编辑器和动画/精灵编辑器。
  • 实现方式‌:
    • 代码复制‌:将关卡编辑器中的自动保存代码复制到其他编辑器中。
    • 标记数据变更‌:在每个编辑器中,当数据发生变化时,将dirty变量设置为true,以触发自动保存。

2. 代码优化与错误修复

  • 优化‌:
    • 避免重复劳动‌:虽然可以通过全局搜索和替换来快速实现自动保存功能,但为了确保不同编辑器间的细微差别不会引发问题,选择手动编辑每个文件。
    • 未来改进‌:提到未来在创建新游戏模板时,将自动保存功能作为内置功能,以减少重复工作。
  • 错误修复‌:
    • 滚动条问题‌:修复了退出精灵编辑器后滚动条位置不正确的问题。
    • 屏幕外敌人处理‌:改进了敌人离开屏幕后的处理逻辑,确保敌人必须在屏幕上出现过才能被删除。

三、功能增强

1. 微调功能

  • 目的‌:为了方便微调精灵的属性值(如位置、大小等),添加了“微调”功能,允许用户通过左右箭头键来增减数值。

2. 复制功能

  • 目的‌:为了方便用户复制精灵,添加了“复制”按钮,允许用户快速创建精灵的副本。

四、代码重构与逻辑优化

  • 碰撞检测重构‌:
    • 问题‌:原有的碰撞检测逻辑使用数字索引来引用精灵数组,这限制了自定义碰撞对象的可能性。
    • 解决方案‌:将碰撞属性从数字索引改为对象引用,允许碰撞检测功能更加灵活,能够处理屏幕边界等自定义对象。

function export(auto)sortsched()local s=arrname.."=split2d\""for i=1,#data doif i>1 thens..="|"endfor j=1,#data[i] doif j>1 thens..=","ends..=data[i][j]endends..="\""printh(s,file,true)if auto thenadd(msg,{txt="autosave",t=60}) elseadd(msg,{txt="exported!",t=120})end--debug[1]="exported!"
end

http://www.lryc.cn/news/2392726.html

相关文章:

  • 使用animation.css库快速实现CSS3旋转动画效果
  • 基于NetWork的类FNAF游戏DEMO框架
  • 湖北理元理律师事务所:债务优化中的生活保障实践
  • golang连接sm3认证加密(app)
  • 【Zephyr 系列 2】用 Zephyr 玩转 Arduino UNO / MEGA,实现串口通信与 CLI 命令交互
  • AIS常见问题解答(AIS知识补充)
  • 基于Matlab实现指纹识别系统
  • Windows10下搭建sftp服务器(附:详细搭建过程、CMD连接测试、连接失败问题分析解决等)
  • Vue3中Element-Plus中el-input及el-select 边框样式
  • vue + ant-design + xlsx 实现Excel自定义模板导入功能
  • SAP saml2 元数据 HTTP 错误
  • 知识课堂|sCMOS相机可编程快门模式解析
  • 数据结构之栈:原理与常用方法
  • 在React框架中使用Braft Editor集成Table表格的详细教程
  • 跳动的爱心
  • gbase8s数据库+mybatis问题记录
  • 实现安卓端与苹果端互通的方案多种多样,以下是一些主要的方案
  • SpringBoot开发——Spring Boot异常处理全攻略:五大方案实战对比
  • React-props
  • 【C++篇】list模拟实现
  • Oracle exist
  • 带sdf 的post sim 小结
  • 【面试】喜茶Java面试题目
  • 深入浅出:Spring IOCDI
  • PlankAssembly 笔记 DeepWiki 正交视图三维重建
  • 某验4无感探针-js逆向
  • js中common.js和ECMAScript.js区别
  • C语言操作Kafka
  • STM32架构解析
  • 在线政治采购系统架构构建指南