- 博客(183)
- 资源 (38)
- 收藏
- 关注
原创 ogre 种草
ogre 种草ogre中来创建一个草地。class TutorialApplication : public BaseApplication{public: TutorialApplication(void); virtual ~TutorialApplication(void); CEGUI::MouseButton convertButton(OIS::Mouse
2015-07-30 10:45:50 694
原创 Ogre立方体查询
Ogre立方体查询ogre还有一个立方体查询。//---------------------------------------------------------------------------TutorialApplication::TutorialApplication(void):mRenderer(0),mSelectionBox(0),mSelecting(false)
2015-07-29 14:35:41 604
原创 ogre射线数组的拣选
ogre射线数组的拣选先来看代码。bool TutorialApplication::mousePressed(const OIS::MouseEvent &arg, OIS::MouseButtonID id){ CEGUI::GUIContext& context = CEGUI::System::getSingleton().getDefaultGUIContext(); co
2015-07-29 09:24:40 658
原创 ogre屏幕拾取
ogre屏幕拾取ogre的屏幕拾取,主要通过发射一条射线,然后检测碰撞来完成。CEGUI::GUIContext& context = CEGUI::System::getSingleton().getDefaultGUIContext(); context.injectMouseButtonDown(convertButton(id)); if (id == OIS::MB_Left
2015-07-28 15:42:33 800
原创 ogre接入cegui
ogre接入ceguiogre可以很方便的使用cegui来绘制界面。首先,resources_d.cfg加入资源路径。[Imagesets]FileSystem=../../Media/imagesets[Fonts]FileSystem=../../Media/fonts[Schemes]FileSystem=../../Media/schemes[LookNFeel]
2015-07-28 13:27:09 1046
原创 Ogre播放动画
Ogre播放动画ogre播放动画很简单,1、得到动画状态,2、设置enable为true,3、调用addtime先来看代码:class TutorialApplication : public BaseApplication{public: TutorialApplication(void); virtual ~TutorialApplication(void);
2015-07-27 10:50:00 725
原创 Ogre切换摄像头
Ogre切换摄像头先看代码class TutorialApplication : public BaseApplication{public: TutorialApplication(void); virtual ~TutorialApplication(void);protected: virtual void createScene(void); vi
2015-07-23 16:40:13 542
原创 Ogre按键消息
Ogre按键消息现在来看ogre的按键消息。class TutorialApplication : public BaseApplication{public: TutorialApplication(void); virtual ~TutorialApplication(void);protected: virtual void createScene(v
2015-07-23 16:04:06 533
原创 ogre 开始界面
ogre开始界面来摆个pose代码如下void TutorialApplication::createScene(void){ // Create your scene here :) mSceneMgr->setAmbientLight(Ogre::ColourValue(1,1,1));//设置环境光 //创建一个节点 Ogre::Entity *ent2
2015-07-23 14:45:29 507
原创 ogre 天空与雾
ogre天空与雾接上章,我们来添加天空与雾。void TutorialApplication::createScene(void){ // Create your scene here :) // 设置相机的位置,因为地形一般都比较大,所以设置得远一点 mCamera->setPosition(Ogre::Vector3(1683,50,2116)); mCamera->
2015-07-23 14:30:25 604
原创 ogre 创建地形
ogre 创建地形先来看代码:void TutorialApplication::createScene(void){ // Create your scene here :) // 设置相机的位置,因为地形一般都比较大,所以设置得远一点 mCamera->setPosition(Ogre::Vector3(1683,50,2116)); mCamera->lookAt(
2015-07-23 14:06:46 526
原创 ogre 光源
ogre 光源我们接着研究ogre的光源与影子。void TutorialApplication::createCamera(){ mCamera = mSceneMgr->createCamera("PlayerCam"); mCamera->setPosition(Ogre::Vector3(0,300,500)); mCamera->lookAt(Ogre::Vector3(
2015-07-22 11:26:26 655
原创 ogre 入门教程
ogre 入门教程先来看第一个ogre程序。void TutorialApplication::createScene(void){ // Create your scene here :) mSceneMgr->setAmbientLight(Ogre::ColourValue(0.5, 0.5, 0.5)); Ogre::Entity*ogreHead =mS
2015-07-22 09:43:55 1934
原创 webpy 之svn 自助注册系统
webpy 之svn 自助注册系统服务器装了visual svn server,注册svn账号比较麻烦,于是想搞一个网站,让他们自己注册。--templates--tool--webindex.html欢迎使用自助工具注册svnformtest.html$def with (form) 注册svn$:form.render()tool ht
2015-07-20 16:43:20 782
原创 webpy使用说明(二)
webpy使用说明(二)除了get,浏览器与服务器常见的通信还有post. 来看一个post的例子。import web,osrender = web.template.render('templates/')urls = ('/','index')login = form.Form( form.Textbox('username'), form.Password('pass
2015-07-20 16:36:59 1163 1
原创 webpy使用说明(一)
webpy使用说明(一)webpy其实是html的一个翻译器,它将python语句翻译成html语句。 先来看一个简单的index.py。import web,osurls = ('/','index')class index: def GET(self): return 'Hello,World'if __name__ == "__main__":
2015-07-20 16:28:46 3396
原创 自制语法分析器
自制语法分析器代码如下:#include "stdio.h"#include "stdlib.h"#include "token.h"#define LINE_BUF_SIZE (1024)static Token st_look_ahead_token;static int st_look_ahead_token_exists;static void my_get_tok
2015-03-11 11:49:11 1070
原创 自制词法分析
自制词法分析要#ifndef TOKEN_H_INCLUDED#define TOKEN_H_INCLUDEDtypedef enum { BAD_TOKEN, NUMBER_TOKEN, ADD_OPERATOR_TOKEN, SUB_OPERATOR_TOKEN, MUL_OPERATOR_TOKEN, DIV_OPERATOR_TOKEN, END_OF_LINE
2015-03-10 15:27:46 607
原创 flex 和 bison 的计算机
lex 和 yacc 的计算机lex源代码%{ #include #include #include "simple.tab.h" %}%%"+" {return ADD;} "-" {return SUB;} "*" {return MUL;} "/" {return DIV;} "\n" {return CR; }
2015-03-03 16:51:35 564
原创 lex和yacc格式入门
lex和yacc格式入门lex文件%{ #include #include "simple.tab.h" %}%%("hi"|"oi")"\n" { return HI; }("tchau"|"bye")"\n" { return BYE; }%%int main(void) { yyparse(); retur
2015-03-02 15:16:29 1099
原创 lex 和 yacc 入门
lex 和 yacc 入门lex 和 yacc 是词法分析和语法分析工具,windows下对应的是win_flex.exe和win_bison.exe。下载地址:点击打开链接。然后打开vs2012,来新建一个win32控制台程序,命名为learnLexAndYacc。将下载的文件复制到当前文档根目录。导入编译规则选择后点确定不使用预编
2015-03-02 15:08:22 720
原创 编译过程
编译过程当我们的源代码如下:#include int main(int argc, char **argv){ printf("Hello World! via %x/n", printf); return 0;}编译后的exe文件是什么?hello: file format elf32-i386 Disassembly of section
2015-03-02 14:34:47 515
原创 rpc 的使用
rpc 的使用rpc就是将本地的方法放到了服务器端,使得网络通信如同调用方法般简单。import RemoteCallMethod_pb2import functoolsimport ProtobufHelperfrom socket import AF_INET,SOCK_STREAM,socketclass RemoteCallClient: buffsize
2015-01-13 16:43:59 696
原创 protobuf 的使用
protobuf 的使用先看protopackage tutorial;message Person { required string name = 1; required int32 id = 2; optional string email = 3; enum PhoneType { MOBILE = 0; HOME = 1; WORK = 2; } m
2015-01-13 11:34:59 1125
原创 windows下python protobuf 安装
首先从google上下载protobuf-2.5.0.zip和protoc-2.5.0-win32.zip,然后把protoc-2.5.0-win32.zip里的protoc.exe放到protobuf-2.5.0\src\下。切换到protobuf-2.5.0\python 执行指令 python setup.py build, python setup.py test, python
2015-01-13 11:25:27 11349 2
原创 gevent 创建tcp 服务器
最近学习写游戏服务器了,看了下,决定用gevent来写,比较简单,效率也还不错。'''Created on 2015-1-12@author: Administrator'''from gevent.server import StreamServerfrom tool import addressbook_pb2BUFSIZE=1024def handle(socket,
2015-01-13 11:15:09 4233
原创 粒子编辑器
粒子编辑器先上图从根本上说,粒子编辑器没有什么复杂的。我们修改滑动条时,也会修改粒子对象的相应属性。void EditorMainWindow::changeTangentialAccelerationVariance(double tangentialAccelerationVariance){ if (_currentParticle) { _currentPar
2014-12-18 16:50:57 665
原创 Premultiplied Alpha
Premultiplied Alphaalpha预乘,与通常颜色表示方法(r,g,b,a)的差别在与它表示为(ar,ag,ab,a)。为什么要这么做呢?因为在颜色混合时,预乘的效果比分开表示更好。比如(1,1,1,1)与(0,0,0,0)混合后,(0.5,0.5,0.5,0.5)在分开表示方法时,这表示一个灰色。而预乘表示一个半透的白色。而分开表示方法到预乘的转换,首先是纹理的颜色值进行转
2014-12-15 11:47:19 3038
原创 tolua绑定
tolua绑定研究了下tolua绑定,发现c++类的继承转换为lua后,依然起作用。但对于构造函数是无效的。所以必须在pkg中强制声明构造函数。接下来的问题就是.h自动生成.pkg的问题了。1、找到类的作用域;如果没有构造函数,如果有父类,自动参照父类声明一个。如果没有父类,自动声明一个默认的。2、去掉类中private,protect作用域内容。3、去掉public中变量
2014-12-04 17:25:44 618
原创 auto culling
auto culling自动剪裁,也就是把超出屏幕的quad自动移出渲染队列。我们的渲染关键是两个,一个是quad队列,一个是cmd队列。void Renderer::renderBatch() { _drawnBatches = _drawnVertices = 0; if(_numQuads <= 0 || _batchedQuadCommands.empty())
2014-12-01 12:36:43 813
原创 游戏引擎加入lua
游戏引擎加入lua为了让游戏实现热更新,决定引入lua来开发游戏。游戏的主框架是c++,lua调用c++直接用tolua++就行了。lua的解析为了加快速度,我决定使用luajit,当然也可以实用luaC来做。#pragma once#include "base/Singleton.h"#include "string"extern "C" {#include "external/
2014-11-29 17:17:37 5564
sqlite 3.71 for windows
2012-04-01
winsock select 模型源码
2012-03-30
IOCP Tcp服务器入门源码
2012-03-29
VS2008 与 IE8 不兼容的补丁
2012-03-27
lua加密工具.zip
2014-07-25
ios 新浪微博 sdk 使用demo
2013-04-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人