direct2d专题

C++系列——Direct2D进行图片处理

C++系列——Direct2D图片处理 01 前言 图片处理工具多如牛毛了,自不必说。主要是应对需要批量处理的场景,所以不如手搓。已经试过直接用C#封装好的库System.Drawing,挺好的,就是过了一段时间感觉这速度有点受不了。于是转用C++,结合GDI+又手搓了一个。因为部分代码与C#版本类似(C#底层用的还是GDI),很快也搞好了。 嗯~~ 这下舒服了。随着效率的提高,我以为可以快乐

关于Direct2D

㈠ 关于Direct2D     Direct2D是一个硬件加速的,提供立即模式的二维图形API。它提供了二维的几何体,位图,文本的高性能,高质量的渲染。十分方便的是,Direct2D与GDI,GDI+和D3D都是可以交互的。一项技术总是有其受众面,看看微软本身怎么说的: 大型企业级本机应用程序开发人员。创建供下游开发人员使用的控件工具包和库的开发人员。需要对二维图形进行服务器端呈现的开发

使用 devc++ 开发 easyx 实现 Direct2D 交互

代码为 codebus 另一先生的 文案 EasyX 的三种绘图抗锯齿方法 - CodeBus 这里移植到 devc++  移植操作如下:  调用dev++ 的链接库方式: project -> project option -> 如图所示 稍作修改的代码。  #include <graphics.h>#include <d2d1.h>#include <wincodec.h>#

7.Direct2D 捕鱼游戏开发-窗口对象DemoApp.h的说明

环境: 编辑器:VS2015 系统:win10 专业版 碰撞:aabb obb盒模型(obb采用分离轴进行判断) 渲染:direct2d 相关概念说明: 渲染循环(绘制各个精灵):周期的对游戏进行渲染 物理引擎循环(碰撞判断,向量计算的处理):周期的更新物理世界里面的刚体等对象的位置   假设我们使用的并不是一套框架(物理引擎采用的另一个人写的类库,渲染引擎又是一个人写的) 一

13.Direct2D 捕鱼游戏开发-编写场景2结构frame2.h

环境: 编辑器:VS2015 系统:win10 专业版 碰撞:aabb obb盒模型(obb采用分离轴进行判断) 渲染:direct2d 界面截图: 这是我们的frame2.h所控制的场景再看到这里的时候我们可以先看看场景的主要元素有些什么,首先精灵(sprite.h)是少不了的 然后是场景对象(action.h)再然后是我们的事件映射(createBefore.h)然后就是文字

10.Direct2D 捕鱼游戏开发-鱼类fish.h的封装

环境: 编辑器:VS2015 系统:win10 专业版 碰撞:aabb obb盒模型(obb采用分离轴进行判断) 渲染:direct2d 相关知识说明: 鱼的游动:可以是一个连续的帧动画(我们这里采用的就是一个数组来储存每一帧的动画) 鱼的曲线游动:我们让鱼一直像前移动然后在移动的时候修改鱼的面向角度这样鱼就会有一个非常完美的曲线游动了又因为我们的鱼在修改每一帧的显示位置(根据储存帧

3.Direct2D 捕鱼游戏开发-显示对象DisplayObject.h的封装

环境: 编辑器:VS2015 系统:win10 专业版 碰撞:aabb obb盒模型(obb采用分离轴进行判断) 渲染:direct2d 坐标系的概念: 全局坐标系(世界坐标系):这里我们将窗口的左上点作为世界坐标系的原点(0,0)向左表示x轴正方向,向下表示y轴正方向 局部坐标系(相对坐标系):相对于一个显示目标的坐标系由于变换涉及到复杂的向量知识;我们这里只说平移变换的坐标系(即

15.Direct2D 捕鱼游戏开发-金币对象gold.h的封装

环境: 编辑器:VS2015 系统:win10 专业版 碰撞:aabb obb盒模型(obb采用分离轴进行判断) 渲染:direct2d 金币对象: 主要是让鱼在死亡的时候有一个收取金币的动画 我们的动画是二阶一个贝塞尔曲线 二阶贝塞尔曲线: 这里我们需要三个点来确定这个曲线的流程 开始点,结束点,中间点。 开始点和结束点都非常容易确认 (鱼死亡的位置为结束点,金币显示数量的位

8.Direct2D 捕鱼游戏开发-消息映射和流程触发结构 createBefore.h

环境: 编辑器:VS2015 系统:win10 专业版 碰撞:aabb obb盒模型(obb采用分离轴进行判断) 渲染:direct2d 封装思路: 当代码在写好的时候我们又需要再窗口创建之前进行一些操作但是又不能修改demoapp那么这样的一个接口(api)就出来了 createBefore名字空间提供方法: createWindowBefore 窗口创建之前调用 create

12.Direct2D 捕鱼游戏开发-编写场景0结构frame0.h

环境: 编辑器:VS2015 系统:win10 专业版 碰撞:aabb obb盒模型(obb采用分离轴进行判断) 渲染:direct2d 再说代码之前我们先看看我们的界面截图: 我们先冷静分析这个界面的相关元素 首先这里应该有一个场景对象(action.h)来渲染各种精灵对象(sprite.h)然后当面点击开始游戏的时候我们的场景进行了切换所以这里还应该有一个消息映射(creat

16.Direct2D 捕鱼游戏开发-检查对象colVec.h的封装

环境: 编辑器:VS2015 系统:win10 专业版 碰撞:aabb obb盒模型(obb采用分离轴进行判断) 渲染:direct2d 检测对象说明: 我们这个检测对象只是提供一个对碰撞检测的方法和一些算法的方法并不提供实体什么的物理算法具体的物理算法我们是根据不同游戏进行不同的处理(但是碰撞检测是都是一样的) 相关概念: 向量:有方向的数量(向量A(x1,y1),原点B(0,0

14.Direct2D 捕鱼游戏开发-编写场景1结构frame1.h

环境: 编辑器:VS2015 系统:win10 专业版 碰撞:aabb obb盒模型(obb采用分离轴进行判断) 渲染:direct2d 场景截图: 这个场景就比较复杂了 我们先分析一波 首先点击需要发射炮弹,炮弹还要判断是否和鱼碰撞,鱼还要游动,然后还有金币的获取所以这个场景需要的对象有(消息映射,碰撞检测,鱼对象,创建鱼的对象,金币对象,炮弹对象)差不多就是这些了 下面看主要方

Direct2D (38) : RenderTarget.DrawTextLayout() 与 IDWriteTextLayout

为什么80%的码农都做不了架构师?>>>    使用 RenderTarget.DrawTextLayout() 方法主要是设置 IDWriteTextLayout 接口; 构建 IDWriteTextLayout 接口需要 IDWriteTextFormat 接口。 IDWriteTextLayout 接口是经过完全分析和格式化后的文本块。 {RenderTarget.Draw