GitHub地址:https://github.com/wsgzxl/QLGame2dEngine

今天说五个问题:

1.前面说到的 颜色不对的问题,是因为FreeImage读取出来的数据格式与OpenGL显示需要的顺序不一致,所以有些颜色不对,已经在TextureManager类TextureManager::FIBitmap2GLBitmap方法进行了处理!

2.对PNG透明图片的渲染采用的是用

glEnable(GL_BLEND);

glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);

注意这两句必须写在glBegin()方法之前,否则无效!

3.如何实现坐标系的对应,也就是我们习惯使用的2D坐标系,左上角(0,0)右下角(窗口的长,窗口的宽)

glOrtho,这个函数是显示2D视图的,这个方法有六个参数

(左,右,前,后,近,远)

举个例子 如果是800*600的窗口,那么可以写成(0,800,600,0,-100,100)

其实,写成(0,800,0,600,-100,100)也可以实现opengl中的一个单位长度对应屏幕一个像素,而因为2D的Y,是越往下,值越大,而3D的Y,是越往下,值越小,所以,将600和0交换之后,就完美实现了和2D游戏一样的坐标系了!

4.SpriteBatch暂时只支持设置位置坐标,还不支持设定旋转和缩放方法,以后会提供!

5.提供了帧率控制,帧率的显示是显示在控制台窗口中的!

QLGame 2d Engine SpriteBatch类创建的更多相关文章

  1. QLGame 2D Engine编写环境搭建

    QLGame 2D Engine编写 (win7环境搭建) 广州麒麟网络工作室,计划制作一款2d game engine,基于opengl(es)平台,暂时支持android,以后考虑支持linux, ...

  2. QLGame 2d Engine Android端环境搭建(通过jni读取assets目录的文件)

    QLGame 2d Engine win端已经实现了一个动物的动画了,初步的东西已经完成,考虑在Android端也实现这些基本的东西,这样跨平台的引擎也就实现了! 要在Android下编程,首先要实现 ...

  3. QLGame 2d Engine源码地址

    QLGame 2d Engine源码地址已经提交到github上,地址为:https://github.com/wsgzxl/QLGame2dEngine

  4. QLGame 2d Engine 搭建2d游戏原理

    大家好,2d引擎基于opengl(es) 3d技术,是因为这样比之前的ddraw有很多好处! 1.坐标采用浮点数,可以进行曲线移动 2.如果在ddraw的对图片进行缩放和旋转的时候,是基于点像素的操作 ...

  5. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  6. 对于python,一切事物都是对象,对象基于类创建

    新建列表.新建string字符串 li1 = [1, 2, 3, 4] li2 = list([1, 2, 3]) s1 = "abc" s2 = str("abc&qu ...

  7. XML文件操作类--创建XML文件

    这个类是在微软XML操作类库上进行的封装,只是为了更加简单使用,包括XML类创建节点的示例. using System; using System.Collections; using System. ...

  8. Android(java)学习笔记62:继承Thread类创建线程类

    package cn.itcast_02; /* * 该类要重写run()方法,为什么呢? * 不是类中的所有代码都需要被线程执行的. * 而这个时候,为了区分哪些代码能够被线程执行,java提供了T ...

  9. JS 中 Class - 类创建

    Class - 类创建 Class类实现了在JavaScript中声明一个新的类, 并通过构造函数实例化这个类的机制.通过使用Class.create()方法, 你实际上声明了一个新的类, 并定义了一 ...

随机推荐

  1. 数据结构与算法JavaScript 读书笔记

    由于自己在对数组操作这块比较薄弱,然后经高人指点,需要好好的攻读一下这本书籍,原本想这个书名就比较高深,这下不好玩了.不过看着看着突然觉得讲的东西都比较基础.不过很多东西,平时还是没有注意到,故写出读 ...

  2. NHibernate中的IQueryable和IQueryover

    今天在做一个小项目时,用到了NHibernate,使用了模糊查询(Like),在后台用IQueryable去接收Session.Query<T>()的查询结果. 代码如下: /// < ...

  3. javaweb 中的乱码问题

    一.post 方式 首先我们看下面一段代码,在该HTML中我们指定的编码为“UTF-8”,如图所示. 在该代码中,我们将表单数据提交给ParamServlet 处理 servlet 会将接收到的数据打 ...

  4. mac最常用终端命令

    1分钟,快速复习下: pwd (显示当前所在路径) ls -l  (列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等) touch `filename`(创建文件) open `file ...

  5. Bzoj 3831 [Poi2014]Little Bird

    3831: [Poi2014]Little Bird Time Limit: 20 Sec Memory Limit: 128 MB Submit: 310 Solved: 186 [Submit][ ...

  6. 常用数据结构[OpenCV 笔记12]

    Point 二维坐标系下的整数点, 定义如下 typedef Point_<int> Point2i; typedef Point2i Point; typedef Point_<f ...

  7. MasterCard信用卡测试卡号-creditcard-1

    MasterCard信用卡测试卡号-creditcard-1 510510510510510051111111111111185454545454545454550000000000000455555 ...

  8. variable-precision SWAR算法:计算Hamming Weight

    variable-precision SWAR算法:计算Hamming Weight 转自我的Github 最近看书看到了一个计算Hamming Weight的算法,觉得挺巧妙的,纪录一下. Hamm ...

  9. js点击 密码输入框密码显示隐藏

    很多密码框都有个眼睛标记,点击能显示密码.原理就是点击切换password为text等显示 下面上代码 <!DOCTYPE html> <html> <head> ...

  10. Jquery操作单选按钮(Radio)的取值赋值实现代码

    1.获取选中值,三种方法都可以: $('input:radio:checked').val(); $("input[type='radio']:checked").val(); $ ...