QLGame 2D Engine编写 (win7环境搭建)

广州麒麟网络工作室,计划制作一款2d game engine,基于opengl(es)平台,暂时支持android,以后考虑支持linux,ios!

开发环境:

os:win7 64bit

design tool:vs2012 eclipse ndk-r9d

开发原理:

采用c++开发,可以方便的移植到android,ios平台!目前正在一步一步的开发之中,源码将放到github上!

开发讲解:

首先在win平台下,进行opengl编程,然后相应的在android平台下用opengles进行实现!

开发目的

目前的cocos2d-x已经很优秀了,写这个引擎的目的,想更加的了解如何构建,而且更加易用,尤其是对C++有兴趣的朋友,可以与我一起开发!

我的qq:1357098586 欢迎大家与我联系一起开发!

win平台下环境搭建:

1.win平台下的采用glut库3.7.6版本开发,解压后有如下文件,glut.h,glut32.dll,glut32.lib,虽然文件名包含着32,但是在64位机器上也是可以运行的!

详解:c++中需要使用头文件glut.h,链接文件glut32.lib,以及等程序打包后出来exe,需要把glut32.dll放在exe的同一个目录下,否则会运行失败!

在vs中进行如下配置即可,在配置属性的C/C++ -》 常规 -》附加库目录,附加glut的文件夹即可

同样的,在链接器-》常规-》附加库目录,附加glut的文件夹即可!

2.在vs2012中,新建一个空工程,然后在解决方案资源管理中,单击源文件,添加一个c++文件,然后清除其中的代码,输入如下代码:

#include <glut.h>

//显示回调函数
void renderScreen(void){
//把整个窗口清理为当前清理颜色:南瓜橙
glClear(GL_COLOR_BUFFER_BIT);
glFlush();
}
int main(int argc, char* argv[])
{
//初始化glut
glutInit(&argc,argv);
//单缓冲区
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGBA);
//创建窗口,窗口名字为WindowDemo
glutCreateWindow("WindowDemo");
//设置窗口大小
glutReshapeWindow(800,600);
//设置显示回调函数
glutDisplayFunc(renderScreen);
glutMainLoop();
return 0;
}

        详解:#include <glut.h>  在c++中 包含头文件有两种方式,一种是尖括号,一种是双引号,这两张方式决定了,告诉编译器将在什么地方查找头文件,

如果头文件是用双引号括起来的,则会首先从包含此指令的源文件的所在的目录进行查找,如果找不到,在到标准库目录进行搜索!

如果是尖括号括起来的,则只会从标准库目录进行搜索,这个库目录包括,我们在项目的属性中设置的c++包含目录!

1. 包含了#include <glut.h>就意味可以使用了glut.h头文件中定义的类以及方法了!也就是我们的opengl方法

2.int main(int argc,char* argv[])是入口文件,一个项目中,只允许有一个入口函数,它决定了程序从哪儿开始执行!

3.glutInit()开始初始化

4.glutInitDisplayMode(GLUT_SINGLE|GLUT_RGBA);//设置显示模式

5.glutCreateWindow()创建窗口

6.glutReshapeWindow()设置窗口大小

7.glutDisplayFunc(renderScreen);渲染函数 renderScreen是一个方法,这个在每一帧都会被调用

8.glutMainLoop();进入消息循环

9.return 0;结束消息循环,程序正常退出!

运行程序,首先会弹出cmd窗口,然后弹出一个windows窗口程序,但是cmd窗口是不必要的,该怎么办呢?

在项目属性页中, 点击链接器-》系统-》子系统  设置为窗口 (/SUBSYSTEM:WINDOWS)

点击链接器-》高级-》入口点 输入:mainCRTStartup

然后编译运行,就只有一个windows窗口程序了,不过是黑色的!

续:由于2d  gameengine,是需要显示在plane上的,下一节将采用在plane上显示一个贴图,进行平移旋转缩放,本文有出错的地方欢迎指正!

QLGame 2D Engine编写环境搭建的更多相关文章

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

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

  2. QLGame 2d Engine源码地址

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

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

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

  4. QLGame 2d Engine SpriteBatch类创建

    GitHub地址:https://github.com/wsgzxl/QLGame2dEngine 今天说五个问题: 1.前面说到的 颜色不对的问题,是因为FreeImage读取出来的数据格式与Ope ...

  5. android Jni NDK开发环境搭建及其简单实例的编写

    android  Jni  NDK开发环境搭建及其简单实例的编写 由于工作需要,需要采用开发想要的JNI,由于之前没有接触过安卓的开发,所以更加网上的帖子,学习了下.遇到了些问题,然后总结下学习过程中 ...

  6. centos LNMP第一部分环境搭建 LAMP LNMP安装先后顺序 php安装 安装nginx 编写nginx启动脚本 懒汉模式 mv /usr/php/{p.conf.default,p.conf} php运行方式SAPI介绍 第二十三节课

    centos  LNMP第一部分环境搭建 LAMP安装先后顺序  LNMP安装先后顺序 php安装 安装nginx  编写nginx启动脚本   懒汉模式  mv   /usr/local/php/{ ...

  7. PaaS平台– Google App Engine的开源实现AppScale环境搭建

    搭建好开发环境介绍: 硬件平台:HP Z800 工作站  内存:24GB      硬盘:1TB 虚拟化环境:XenServer 6.2.0 VM1:Ubuntu 12.04 amd64 server ...

  8. Mybatis环境搭建中的案例分析 及 如果自己编写DAO接口的实现类

    Mybatis环境搭建中的案例分析public static void main (String[] args) throws Exception { //读配置文件 //第一个: 使用类加载器,只能 ...

  9. 0021SpringMVC环境搭建及入门程序编写

    环境搭建: 1.创建项目 创建maven项目,勾选上Create from archetype,然后选中webapp再点击下一步,如下图: 解决项目创建过慢问题: 在创建maven项目过程中加入一组键 ...

随机推荐

  1. ubuntu系统安装redis

    Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串string,链表list,集 合set和有序集合zset.支持在服务器 ...

  2. Fragment碎片频繁来回切换的时候报java.lang.IllegalStateException: No activity

    出现这个问题的原因是因为使用的transcation.replace(fragmentTwo);的方式进行碎片切换的. 解决方案是使用add和show.hide方法组合实现碎片的切换(应该是显示.隐藏 ...

  3. C#创建自定义配置节点

    转载:http://www.educity.cn/develop/495003.html 在.Net应用程序中我们经常看到VS为我们生成的项目工程中都会含有app.config或者web.connfi ...

  4. 搭建showslow:前端性能跑分及优化工具

    综述:showslow是一个开源的工具,集成并通过Yahoo yslow.google page speed.dynaTrace AJAX等工具监测网站各项性能指标,然后通过图表和排名展示出来. 1. ...

  5. 03_MySQL中文乱码处理_01_MySQl数据库字符集知识

    [MySql数据库常见字符集介绍] 在互联网环境中,使用MySql时常用的字符集有: [如何选择合适的字符集] 1.如果处理各种各样的文字,发布到不同语言的国家地区,应选Unicode字符集,对MyS ...

  6. ubuntu netbeans compile ygopro client with google protobuf lib

    environment: ubuntu 16.04 netbeans 8.2 ygopro Fluorohydride with Irrlicht Game Engine 问题1: google pr ...

  7. 实例:图形绘制[OpenCV 笔记15]

    DrawShapes.cxx # include "DrawShapes_utils.h" #define WINDOW_NAME1 "Painting 1" ...

  8. python 自动化之路 day 面向对象基础

    1.面向對象基础概述 面向过程: 根据业务逻辑从上到下垒代码(如果程序修改,对于依赖的过程都需要进行修改.) 函数式: 将某功能代码封装到函数中,如后便无需重复编写,仅需要调用函数即可 面向对象: 世 ...

  9. Javascript执行环境、作用域链

    执行环境 可以把执行环境想象为一个圆圈,里面包含了一些变量.函数. 执行环境定义了变量或函数的有权访问的其他数据,决定了它们各自的行为.还有一个顶部执行环境.在浏览器中,顶部执行环境既为window, ...

  10. CSS 高级

    1.CSS 盒模型(Box Model) 所有 HTML 元素都可以看作是盒子,在 CSS 中,“Box Model”这一术语主要是在布局时使用. CSS 盒模型(Box Model)规定了处理元素内 ...