更新日志
v2.1.32 (2024-12-16)
- Changes
- 优化 Event Dispatch,仅分发给当前有 Listener 的节点
- Fix
- Action 遍历时访问野指针问题
v2.1.26 (2024-12-05)
- Feature
Timer增加bind函数,绑定定时器到 nodeCanvas增加clear函数
- Fix
- 移除已弃用的
ButtonToggleButton和Menu - 修复 Sprite 设置和之前相同的图片时,重置裁剪不生效的问题
- 移除已弃用的
v2.1.22 (2024-11-16)
- Fix
removeFromTarget更改为removeSelfInNextUpdate以便安全的自我删除
v2.1.21 (2024-11-05)
- Feature
- 支持显示 Node body shape,方便调试
v2.1.20 (2024-11-03)
- Feature
- 添加 Node body shape,支持判断节点相交关系
- 调整 Shape 和 ShapeNode 构造方式
v2.1.19 (2023-03-26)
- Feature
- 支持 LCtrl/RCtrl/LShift/RShift/LAlt/RAlt 键值
v2.1.16 (2023-03-12)
- Fix
-修复节点渲染顺序的 BUG
v2.1.15 (2022-11-12)
- Fix
-修复 Node::removeChildren 导致程序中断的BUG
v2.1.14 (2022-10-24)
- Feature
- 支持自定义鼠标指针
v2.1.12 (2022-10-23)
- Refactor
- 新的 Logo
- 使用 ASCII 字符串
- 添加 UniqueName
v2.1.5 (2022-10-22)
Fix
Sprite加载无裁剪矩形的KeyFrame时显示问题
Feature
- 添加
ButtonListener和ToggleButtonListener
- 添加
Refactor
- 重构
Node属性字段但无功能变化 - 重构
Listener但无功能变化 - 重构
Button和ToggleButton并且已弃用
- 重构
v2.1.3 (2022-10-14)
Feature
- 添加
Canvas和CanvasBrush
- 添加
Refactor
Image::preload改名Image::load- 重构
Renderer文字渲染
v2.1.1 (2022-10-12)
Feature
- 添加
DrawingStyle - 添加
TextStyle - 添加
TextLayout,保存绘图无关的文本布局 - 添加
Color::Transparent
- 添加
Refactor
- 重构
Text,封装TextLayout和DrawingStyle - 重构
ShapeNode,封装Shape和DrawingStyle
- 重构
v2.1.0 (2022-10-11)
Refactor
- 重构
Image类,支持设备资源重加载时自动重载 - 重构
Animation帧动画,添加KeyFrame和FrameSequence
- 重构
Feature
- 支持设置垂直同步
- 支持设置帧率
- 为
ShapeNode添加工厂方法
v2.0.33 (2022-10-10)
Refactor
- 重构
Shape类,支持创建任意形状 - 重构
math Rect类,由 leftTop 和 rightButtom 两点描述
- 重构
Feature
- 添加
ShapeMaker构造复杂形状 - 添加
ShapeNode类
- 添加
v2.0.31 (2022-10-02)
Feature
- 支持重载
Node::containsPoint以便实现自定义形状Button
- 支持重载
Fix
- 游戏暂停时按钮不生效
v2.0.28 (2022-02-19)
Improve
- 支持VS2022
Fix
- 游戏暂停时按钮不生效
v2.0.24 (2021-05-06)
Feature
Sprite支持设置插值模式
Improve
- 为Win7提供单独安装包
Fix
- 修复
ToggleButton显示bug
- 修复
v2.0.0 (2020-1-28)
Easy2D v2.0.0 正式版发布。
v2.0.0-beta7 (2018-5-27)
New Features
- 增加
Create模版函数,创建自动回收的对象 Text增加文字描边、下划线、删除线、行间距、对齐方式等样式- 增加
Collision类处理碰撞 - 增加从程序资源加载图片和音乐的功能
- 增加
insert、replace、format等字符串相关操作 Renderer::showFps方法显示 FPS- 增加
Shape形状类,用于绘制几何图形 Color封装为结构体,并增加 Alpha 值Renderer类增加三种线条相交样式- 增加
NodeProperty结构体,可以直接获取和设置节点的所有属性 - 增加
TextRenderer文字渲染器 - 增加
VoiceCallback音乐回调对象 - 增加
Exception和SystemException异常 Window类增加info、warning、error三个弹窗方法- 增加
Animate精灵动作,原Animation表示帧动画序列 - 增加
Spawn同步动作 - 增加
JumpTo和JumpBy跳跃动作 - 增加
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重做- 判断节点是否碰撞及点是否在节点内时,不再判断其子节点
- 增加
WARN和WARN_IF用于显示 Runtime 警告 Action动作命名精简Collider、Action、Shape、Transition命名规则的类型名置后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 - 修复了暂停游戏后,
Action和Timer执行混乱的BUG - 修复无效的倒转动作
Removed
- 移除了
TimerManager类 - 移除了
MusicManager类 - 移除了
ASSERT宏 - 移除了
ActionTwo动作 - 移除了
Node::onCollide和Scene::onCollide函数 - 移除了
Node::onEnter和Node::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
