历史版本

更新日志

v2.1.32 (2024-12-16)

exe    7z    exe (Win7)    7z (Win7)

  • Changes
    • 优化 Event Dispatch,仅分发给当前有 Listener 的节点
  • Fix
    • Action 遍历时访问野指针问题

v2.1.26 (2024-12-05)

exe    7z    exe (Win7)    7z (Win7)

  • Feature
    • Timer 增加 bind 函数,绑定定时器到 node
    • Canvas 增加 clear 函数
  • Fix
    • 移除已弃用的 Button ToggleButtonMenu
    • 修复 Sprite 设置和之前相同的图片时,重置裁剪不生效的问题

v2.1.22 (2024-11-16)

exe    7z    exe (Win7)    7z (Win7)

  • Fix
    • removeFromTarget 更改为 removeSelfInNextUpdate 以便安全的自我删除

v2.1.21 (2024-11-05)

exe    7z    exe (Win7)    7z (Win7)

  • Feature
    • 支持显示 Node body shape,方便调试

v2.1.20 (2024-11-03)

exe    7z    exe (Win7)    7z (Win7)

  • Feature
    • 添加 Node body shape,支持判断节点相交关系
    • 调整 Shape 和 ShapeNode 构造方式

v2.1.19 (2023-03-26)

exe    7z    exe (Win7)    7z (Win7)

  • Feature
    • 支持 LCtrl/RCtrl/LShift/RShift/LAlt/RAlt 键值

v2.1.16 (2023-03-12)

exe    7z    exe (Win7)    7z (Win7)

  • Fix
    -修复节点渲染顺序的 BUG


v2.1.15 (2022-11-12)

exe    7z    exe (Win7)    7z (Win7)

  • Fix
    -修复 Node::removeChildren 导致程序中断的BUG


v2.1.14 (2022-10-24)

exe    7z    exe (Win7)    7z (Win7)

  • Feature
    • 支持自定义鼠标指针


v2.1.12 (2022-10-23)

exe    7z    exe (Win7)    7z (Win7)

  • Refactor
    • 新的 Logo
    • 使用 ASCII 字符串
    • 添加 UniqueName


v2.1.5 (2022-10-22)

exe    7z    exe (Win7)    7z (Win7)

  • Fix

    • Sprite 加载无裁剪矩形的 KeyFrame 时显示问题
  • Feature

    • 添加 ButtonListenerToggleButtonListener
  • Refactor

    • 重构 Node 属性字段但无功能变化
    • 重构 Listener 但无功能变化
    • 重构 ButtonToggleButton 并且已弃用


v2.1.3 (2022-10-14)

exe    7z    exe (Win7)    7z (Win7)

  • Feature

    • 添加 CanvasCanvasBrush
  • Refactor

    • Image::preload 改名 Image::load
    • 重构 Renderer 文字渲染


v2.1.1 (2022-10-12)

exe    7z    exe (Win7)    7z (Win7)

  • Feature

    • 添加 DrawingStyle
    • 添加 TextStyle
    • 添加 TextLayout,保存绘图无关的文本布局
    • 添加 Color::Transparent
  • Refactor

    • 重构 Text,封装 TextLayoutDrawingStyle
    • 重构 ShapeNode,封装 ShapeDrawingStyle


v2.1.0 (2022-10-11)

exe    7z    exe (Win7)    7z (Win7)

  • Refactor

    • 重构 Image 类,支持设备资源重加载时自动重载
    • 重构 Animation 帧动画,添加 KeyFrameFrameSequence
  • Feature

    • 支持设置垂直同步
    • 支持设置帧率
    • ShapeNode 添加工厂方法


v2.0.33 (2022-10-10)

exe    7z    exe (Win7)    7z (Win7)

  • Refactor

    • 重构 Shape 类,支持创建任意形状
    • 重构 math Rect 类,由 leftTop 和 rightButtom 两点描述
  • Feature

    • 添加 ShapeMaker 构造复杂形状
    • 添加 ShapeNode


v2.0.31 (2022-10-02)

exe    7z    exe (Win7)    7z (Win7)

  • Feature

    • 支持重载 Node::containsPoint 以便实现自定义形状 Button
  • Fix

    • 游戏暂停时按钮不生效


v2.0.28 (2022-02-19)

exe    7z    exe (Win7)    7z (Win7)

  • Improve

    • 支持VS2022
  • Fix

    • 游戏暂停时按钮不生效


v2.0.24 (2021-05-06)

exe    7z    exe (Win7)    7z (Win7)

  • Feature

    • Sprite支持设置插值模式
  • Improve

    • 为Win7提供单独安装包
  • Fix

    • 修复ToggleButton显示bug


v2.0.0 (2020-1-28)

exe    7z

Easy2D v2.0.0 正式版发布。


v2.0.0-beta7 (2018-5-27)

  • New Features

    • 增加 Create 模版函数,创建自动回收的对象
    • Text 增加文字描边、下划线、删除线、行间距、对齐方式等样式
    • 增加 Collision 类处理碰撞
    • 增加从程序资源加载图片和音乐的功能
    • 增加 insertreplaceformat 等字符串相关操作
    • Renderer::showFps 方法显示 FPS
    • 增加 Shape 形状类,用于绘制几何图形
    • Color 封装为结构体,并增加 Alpha 值
    • Renderer 类增加三种线条相交样式
    • 增加 NodeProperty 结构体,可以直接获取和设置节点的所有属性
    • 增加 TextRenderer 文字渲染器
    • 增加 VoiceCallback 音乐回调对象
    • 增加 ExceptionSystemException 异常
    • Window 类增加 infowarningerror三个弹窗方法
    • 增加 Animate 精灵动作,原 Animation 表示帧动画序列
    • 增加 Spawn 同步动作
    • 增加 JumpToJumpBy 跳跃动作
    • 增加 BoxTransition 盒状过渡动画
    • 增加 Shape::Style 枚举,用于设置 Shape 样式
    • 增加 Text::Style 结构体,用于设置 Text 样式
    • 增加 LineJoin 枚举,用于设置相交线样式
    • 增加 Direction 枚举,用于描述方向
    • 增加 Collider::Type 枚举,用于设置碰撞体类型
    • 增加 Function 伪函数类
    • 增加 Rect 抽象矩形类
    • 增加 Player 音乐播放器
    • 增加 Music::setFuncOnEnd 设置播放结束时的执行回调函数
    • 增加 Path::add 方法,用于添加资源路径
    • 增加 Path::exists 方法,用于检测文件夹或文件是否存在
    • 增加 Path::extractResource 方法,提取资源文件
  • Changes

    • Game::init 方法不再设置窗口标题和大小
    • Game::start 方法可设置参数使游戏结束时自动回收资源
    • 不再默认关闭控制台,允许手动关闭
    • ObjectManager 更名为 GC
    • 不再支持 new 创建对象的自动回收内存
    • Shape 形状类更名为 Collider 碰撞体
    • Timer 定时器类重做
    • Music 音乐类重做
    • Action 方法重命名
    • Listener 监听器重做
    • 部分枚举改为强枚举类型
    • Transition 场景切换动画使用 D2D1Layer 重做
    • 判断节点是否碰撞及点是否在节点内时,不再判断其子节点
    • 增加 WARNWARN_IF 用于显示 Runtime 警告
    • Action 动作命名精简
    • ColliderActionShapeTransition 命名规则的类型名置后
    • Path::createFolder 方法支持一次性创建多级文件夹
    • 不再允许 String 隐式转换成 const wchar_t * 类型
    • Image 使用 Rect 类型的参数进行图片裁剪
    • Window::createMutex 整合到 Game::init 方法中
    • Node::onFixedUpdate 改为 protected 方法
    • String 可强制转换为 const wchar_t*const char* 类型
  • Fixed

    • 修复了游戏结束时无法完全回收资源的问题
    • Game::init 初始化失败时,自动回收过程中产生的资源
    • 修复了未开始游戏时,执行 Game::resume 导致黑屏的BUG
    • 修复了暂停游戏后,ActionTimer 执行混乱的BUG
    • 修复无效的倒转动作
  • Removed

    • 移除了 TimerManager
    • 移除了 MusicManager
    • 移除了 ASSERT
    • 移除了 ActionTwo 动作
    • 移除了 Node::onCollideScene::onCollide 函数
    • 移除了 Node::onEnterNode::onExit 函数
    • 移除了所有可变参数的方法


v2.0.0-beta6 (2018-3-13)

  • New Features

    • 添加 Listener 类和 Input::add 函数,用于监听用户输入
    • Data 类储存数据方法增加字段属性
  • Changes

    • File 类更名为 Path
    • 空场景运行时不再创建默认场景
    • 所有节点都包含一个默认形状(矩形)
    • 节点发生碰撞时默认不再触发 onCollide 函数
  • Fixed

    • 判断点与节点、节点与节点的关系时,也同时判断子节点
    • 修复了VS2012对 std::function 支持不完全造成的问题
    • 修复了 String 字符串操作时的一些问题
  • Removed

    • 移除了 String::append 函数


v2.0.0-beta5 (2018-3-6)

  • New Features

    • String类支持ANSI到Unicode的默认转化
    • Data::saveBool和Data::getBool函数用于储存和取出bool类型的值
    • 单实例进程,防止同一个游戏打开多个窗口
    • Timer 类更新,使操作更简易
    • Action 类新增 Name 属性
  • Changes

    • 取消 VS2010 的支持
    • 所有API的float类型参数均改为double
  • Fixed

    • 定时器修改节点属性时闪屏的问题


v2.0.0-beta4 (2018-2-11)

  • 新增 支持 XAudio2 音效播放
  • 新增 支持 XInput 获取用户输入
  • 新增 Node::onUpdate 函数
  • 更新 命名上的一些更改
  • 修复 修复了一些 BUG


v2.0.0-beta3 (2017-12-16)

  • 新增 VS2010以上版本支持
  • 新增 字符串操作
  • 新增 EApp单例模式重做
  • 修复 修复了一些BUG


v2.0.0-beta2 (2017-11-09)

  • 新增 EButtonToggle开关按钮类;
  • 新增 EMenu菜单类;
  • 新增 监听器增加吞噬消息功能;
  • 新增 ENode::setDefaultPivot函数,用于设置节点的默认中心点;
  • 更新 EButton的监听方法;
  • 更新 更新了判断点是否在节点内的算法;
  • 更新 中心点默认位置改为(0,0);
  • 修复 EFont某些情况下崩溃的bug;
  • 修复 EButton没有获取启用和禁用状态的函数的bug;
  • 修复 EButton不显示禁用状态的bug;
  • 修复 所有回调函数不检测空引用就执行的bug;
  • 修复 EFileUtils中参数类型与EString不兼容的问题;
  • 修复 子节点与父节点相对位置错误的bug;
  • 修复 修复了其他的一些小bug。


v2.0.0-beta(2017-11-05)

  • 基于 Direct2D 重做的 Easy2D v2.0.0 测试版发布!


v1.1.3(2017-10-10)

  • 更新 使用了更精准的 std::chrono 进行计时
  • 修复 定时器的时间同步问题
  • 修复 开始游戏后黑屏闪烁的问题
  • 修复 加入批量节点后的子节点移动问题


v1.1.2(2017-10-9)

  • 新增 新增 Timer::addTimer 重载函数,默认时间间隔为20毫秒
  • 新增 新增 Sprite::runAction 函数,实际效果与addAction相同
  • 修复 批量节点的移动问题
  • 修复 Sprite 进行碰撞判断时的bug


v1.1.1(2017-10-8)

  • 新增 Image::load 函数实现图片的预加载
  • 新增 Math类和random函数,可以获取任意范围内的随机数
  • 新增 对监听器、定时器和动画加入了等待和唤醒机制
  • 新增 BatchSprite::addAction函数,使所有精灵同时执行同一个动画
  • 新增 Sprite暂停、继续、停止动画
  • 新增 Action::getTarget函数,获取执行该动作的目标
  • 更新 重整了场景切换时的流程,应重写Scene::init函数对场景进行初始化
  • 更新 使用图片缓存机制防止重复加载同一图片
  • 更新 获取鼠标消息改为MouseMsg::getMsg
  • 更新 Object不再自动释放,除非调用autoRelease函数将其加入释放管理池中
  • 更新 取消安全宏,改用inline函数代替
  • 更新 tstring宏改为类型定义TString
  • 更新 动作初始化的时机改为第一次运行时
  • 修复 App::free 和 App::destory 函数造成内存泄漏的bug函数造成内存泄漏的bug
  • 修复 BatchNode清空所有节点时,未销毁子节点的bug
  • 修复 创建窗口时重置AppName的bug
  • 修复 重置动画时的一些bug
  • 修复 Image裁剪图片范围越界导致图片不显示的bug
  • 修复 ActionManager在动作执行时添加动作崩溃的bug
  • 修复 Sprite未设置图片时崩溃的bug
  • 修复 Action在拷贝和逆向拷贝时导致错误的BUG
  • 修复 消除了不存在pdb的警告,并大幅缩小了静态库大小
  • 修复 其他小幅优化和改动


v1.1.0(2017-09-27)

  • 新增 批精灵BatchSprite,可以同时管理多个精灵的属性
  • 新增 矩形节点RectNode,可以方便的判断矩形碰撞和其他矩形操作
  • 新增 文本类、图片类、精灵类、按钮类现在都继承自RectNode
  • 修复 图片默认透明度为 0 的BUG
  • 修复 执行缩放动画时的BUG
  • 修复 帧动画和其他动画一起使用时动画混乱的BUG
  • 修复 按钮设置了不同大小的图片时,范围判断不准确的BUG
  • 新增 精灵类Sprite,可以执行动作Action、判断两精灵碰撞等
  • 新增 动作类Action,实现了 14 种动作,所有动作都可以暂停、继续和停止
  • 新增 动画管理器ActionManager,用于管理所有当前存在的动作
  • 新增 图片类新增透明度设置函数setOpacity
  • 更新 App 类的大部分函数都改为了静态方法,但仍保留get方法以保证兼容性
  • 修复 图片类按比例拉伸函数名改为setScale
  • 修复 其他细节上的优化


v1.0.4(2017-09-20)

  • 新增 App 类增加setAppName和getAppName函数,用于设置你游戏的唯一标识
  • 新增 FileUtils 增加了int、double、string类型的数据存取功能
  • 新增 MusicUtils 现在可以设置游戏内的音量大小了
  • 更新 重新整理了函数的命名,新的命名规则
  • 更新 去除了 MouseMsg 的getMsg函数
  • 修复 MusicUtils 无法循环播放音乐的 BUG
  • 修复 Image 裁剪图片和拉伸图片时的 BUG


v1.0.3(2017-09-18)

  • 新增 Scene 类新增onEnter和onExit函数,重写这两个函数,它们将在场景载入和退出时自动调用
  • 新增 App 类enterScene函数增加第二个参数,用于设置场景切换是否可逆。参数为 false 时,不可调用backScene函数返回
  • 新增 App 类新增clearScene函数,清空所有已保存的场景
  • 新增 Layer 图层类可以设置是否阻塞消息向下传递
  • 更新 删除鼠标监听函数名由delListener改为deleteListener
  • 修复 防止了持续按键响应
  • 修复 现在 Shape 可以选择ROUND、SOLID、FILL三种填充类型
  • 修复 重合按钮显示不正常的 BUG
  • 修复 字体类中存在已久的 BUG,曾导致游戏一开始就崩溃


v1.0.2(2017-09-13)

  • 增加 鼠标消息监听(MouseMsg::addListener)
  • 增加 按钮在鼠标移入、移出、按下、抬起时的回调函数-
  • 更新 设置按钮回调函数名由setOnMouseClicked改为setClickedCallback
  • 更新 为 TextButton 和 ImageButton 增加了更简便的构造函数
  • 修复 Image 加载空图片时崩溃的 BUG
  • 修复 FreePool 允许重复添加对象导致崩溃的 BUG


v1.0.1(2017-09-10)

  • 更新 Application 类更名为 App
  • 更新 MouseMsg 鼠标消息检测的相关函数名改动
  • 增加 现在低版本编译器下会报错
  • 增加 现在创建窗口时自动在屏幕居中
  • 修复 加载游戏阶段显示黑窗口的 BUG
  • 修复 修改窗口大小时的一个 BUG
  • 修复 FreePool 有时造成内存泄漏的 BUG