更新日志
v2.1.32 (2024-12-16)
- Changes
- 优化 Event Dispatch,仅分发给当前有 Listener 的节点
- Fix
- Action 遍历时访问野指针问题
v2.1.26 (2024-12-05)
- Feature
Timer
增加bind
函数,绑定定时器到 nodeCanvas
增加clear
函数
- Fix
- 移除已弃用的
Button
ToggleButton
和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