Game?Life?

Love Family && Love Career = Love Life
 
 

常用链接

  • 我的随笔
  • 我的评论
  • 我参与的随笔

留言簿(3)

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类

  • 技术随笔(7) (rss)
  • 生活随笔(5) (rss)

随笔档案

  • 2011年1月 (1)
  • 2010年1月 (1)
  • 2009年10月 (1)
  • 2009年9月 (1)
  • 2009年8月 (3)
  • 2008年11月 (1)
  • 2008年10月 (1)
  • 2008年9月 (1)
  • 2008年5月 (2)
  • 2008年4月 (1)
  • 2008年3月 (5)

文章分类

  • CEGUI(2) (rss)
  • guichan(1) (rss)

文章档案

  • 2011年3月 (1)
  • 2011年1月 (3)
  • 2010年12月 (1)
  • 2010年11月 (1)
  • 2010年2月 (3)
  • 2009年8月 (7)
  • 2008年8月 (4)

C++技术blog

  • my life & my work
  • 微妙的平衡cppblog
  • 站在大世界

C++技术网站

  • codeguru
  • codeproject
  • codersource
  • cplusplus
  • cppreference
  • devx
  • dotnetsky
  • morningspace
  • programmersheaven
  • STL中文站

Script 相关

  • AngelCode Scripting Library

Unix and Linux 技术

  • Android SDK文档
  • chinaunix
  • distrowatch
  • fedora
  • fedora中文用户
  • Linux宝库
  • Linux宝库doc
  • Linux联盟
  • qpsoft's Blog
  • ubuntu官方网站
  • ubuntu中文
  • ubuntu中文论坛
  • unix-center

开源库

  • Accelerate your team with online workspaces
  • ACE
  • Anti-Grain Geometry
  • apocalyx
  • ClamAV™
  • cppunit
  • cppunit-wiki
  • D-Collide
  • DevIL
  • Etwork
  • freeimage
  • freetype
  • GLFW project
  • GNE
  • guichan
  • HawkSoftware
  • Kirix Labs
  • libevent
  • MicroPather
  • Minizip
  • mysql++
  • OGRE中文
  • OpenMP
  • opennel
  • Physics Simulation Forum
  • POCO C++ Libraries
  • PostgreSQL中文
  • RakNet
  • The Mesa 3D Graphics Library
  • The ZipArchive Library
  • thefreecountry.com
  • TinyXml
  • wxWidgets

开源软件

  • blender官网
  • Code::Blocks
  • The open source, cross platform, free C++ IDE.
  • CVS版本控制
  • DialogBlocks
  • Editable Terrain Manager
  • elvishray
  • gimp
  • jabber
  • Lilith3D
  • mangos
  • mediacoder声音处理
  • OGRE_DCC_Tools
  • Open source GPL virus scanner
  • subversion官网
  • subversion中文
  • tortoiseCVS
  • tortoiseSVN官网
  • Webmin
  • WinSCP
  • WoW Model Viewer
  • wxDev-C++
  • 几种Linux发行版的镜像

开源游戏引擎

  • allegro
  • ambrose3d
  • APOCALYX 3D Engine
  • ascent
  • Box2D Physics Engine
  • ClanLib
  • crystalspace3d
  • eAthena
  • 网络游戏服务器
  • fifengine
  • g3d
  • game pathfinding library
  • genesis3d
  • hge engine
  • Home of Construct
  • indielib game engine
  • IndieZen
  • irrlicht engine
  • lightfeather
  • nebula device
  • ODE
  • OGE
  • OGRE
  • openscenegraph
  • Original Nuclex Engine
  • panda3d
  • Scirra Home of Construct
  • SDL
  • Tokamak Physics Engine
  • Worldforge(MMORPG Framework)
  • Yake Engine

其他技术及工具

  • python
  • 大家论坛
  • 看雪学院
  • 软件安全论坛
  • 云帆论坛
  • 编程,文学,人生
  • 中国网络安全论坛
  • 中国网络安全门户

游戏开发bolg

  • creatorchen's blog
  • IrrLicht引擎研究
  • kevinlynx's cppblog
  • kevinlynx's csdn blog
  • PeakGao
  • ShowLong的编程专栏
  • 大宝(sodme)的专栏
  • 计算机三维图形技术及应用(3D-CG)
  • 三无之徒
  • 网络游戏开发博客
  • 燕良@游戏开发
  • 杨粼波's blog
  • 叶蔚的游戏开发网站
  • 游戏开发技术圈

游戏开发相关网站

  • World of Warcraft hacks, cheats, bots, exploits, guides, emulators, addons
  • ai-code
  • aigamedev
  • Amit’s Game Programming Information
  • AspireDev Forums
  • Bullet Physics Wiki
  • chinagamedev
  • GameAI
  • gamedev
  • GameRes游戏开发资源网
  • GLUT
  • gpwiki
  • graphixer
  • HelloCpp游戏开发
  • HGE中文社区
  • HGE中文社区首页
  • Home of the open source PopCap Games Framework
  • IRRLICHT3D中国
  • lighthouse3d
  • mmoforge
  • MMORPG development forums and free game servers
  • MMOwned - World of Warcraft Exploits, Hacks, Bots and Guides
  • PhysDev论坛
  • PopCap Developer Program
  • Relish Games
  • Stencyl
  • Virtual Terrain Project
  • 草根网游戏开发
  • 独立开发人
  • 服务器开发
  • 开源CG动画网
  • 网络游戏研发网
  • 网络游戏研发网
  • 虚拟现实中国社区
  • 游戏大观
  • 游戏圈
  • 中国游戏论坛
  • 重要开源游戏列表

搜索

  •  

最新评论

  • 1. re: MySQL查询所有的用户
  • 学习了
  • --飞飞龙
  • 2. re: guichan+hge中文显示支持
  • 评论内容较长,点击标题查看
  • --xdczju
  • 3. re: CodeBlocks 8.02已经发布
  • 好想法。
  • --xiciliu@hotmail.com
  • 4. re: 又熬夜了
  • 还是独立些好,哈哈。
  • --lovedday

阅读排行榜

  • 1. MySQL查询所有的用户(11459)
  • 2. CodeBlocks使用简介(7710)
  • 3. gdb调试器命令详解[转载](2742)
  • 4. 【转载】Ubuntu游戏集合(2202)
  • 5. Ubuntu之开机检测硬盘(1162)

评论排行榜

  • 1. CodeBlocks 8.02已经发布(1)
  • 2. 又熬夜了(1)
  • 3. MySQL查询所有的用户(1)
  • 4. 新的开始(0)
  • 5. CodeBlocks使用简介(0)

Powered by: 博客园
模板提供:沪江博客
C++博客 | 首页 | 发新随笔 | 发新文章 | 联系 | 聚合 | 管理

2011年1月27日

MySQL查询所有的用户
MySQL查询所有的用户
-------
在mysql里进mysql库
mysql>use mysql;
然后select user表
mysql>select * from user; 
或者
select   *   from   mysql.user;
posted @ 2011-01-27 16:51 阿炳 阅读(11459) | 评论 (1) | 编辑 收藏
 

2010年1月28日

UE3 D3DDrv编译错误
我用vs2008编译UE3工程,前面几个都好好的就是到了D3DDrv这个库时,出现编译错误,如下:
development\src\d3ddrv\src\D3DStats.h(27) : error
C2785: 'T InitialStatValue(void)' and 'FD3DCounter InitialStatValue(void)' have
different return types
development\src\d3ddrv\src\D3DStats.h(27) : error
C3637: 'InitialStatValue' : a friend function definition cannot be a
specialization of a function template
development\src\d3ddrv\src\D3DStats.h(27) : error
C2912: explicit specialization; 'FD3DCounter InitialStatValue(void)' is not a
specialization of a function template
最后在一个国外的论坛找到解决方法:
class FD3DCounter
{

template <class FD3DCounter> friend FD3DCounter InitialStatValue(FD3DCounter()) {    
return FD3DCounter();    
}
    // Constructor.
public:

DWORD            RenderCycles,
        WaitCycles,
        Pixels;

FD3DCounter():
        RenderCycles(0),
        WaitCycles(0),
        Pixels(0)
    {}
};
注意这个时候还要改友元函数。
把
template
<class T> T InitialStatValue(int FD3DCounter&) { return 0; }

改为
template <class T> friend T InitialStatValue(T()) { return T(); }
这样编译可以用过。
看来真的要好好复习下C++模板了。

posted @ 2010-01-28 16:41 阿炳 阅读(997) | 评论 (0) | 编辑 收藏
 

2009年10月22日

[转]对话框隐藏地几种办法
出处:http://www.qqgb.com/Program/VC/VCJM/Program_55005.html
有很多应用程序要求一起动就隐藏起来,这些程序多作为后台程序运行,希望不影响其他窗口,往往只在托盘区显示一个图标。这些程序通常都是对话框程序,而对 话框在初始化的过程上与SDI、MDI的初始化是不同的,对话框只需要DoModule或者是CreateDialog等等对话框函数调用一次便 可,SDI、MDI则要好几步才行。这样看来,对话框在使用方法上面是隐藏了不少细节的,其中就没有SDI、MDI所要求的 ShowWindow(nCmdShow)这一步。因此对话框要想一运行就隐藏,并不是很直接的。有一些方法可以做到这一点,下面我们就来看看几种方案。

1.定时器
最直观,又是最无奈的一个方法就是使用定时器。既然我们在对话框开始显示之前不能用ShowWindow(SW_HIDE)将其隐藏,那就给一个时间让它显示,完了我们在隐藏它。

方法:

1.在OnInitDialog()函数里设置定时器:(WINDOWS API里面响应消息WM_IN99vDIALOG)

SetTimer(1, 1, NULL);

2.添加处理WM_TIMER的消息处理函数OnTimer,添加代码:

if(nIDEvent == 1)

{

DeleteTimer(1);

ShowWindow(SW_HIDE);

}

这种方法的缺点是显而易见的,使用定时器,使得程序的稳定性似乎打一个折扣;窗口是要先显示出来的,那么效果就是窗口闪了一下消失。

2.改变对话框显示状况
在对话框初始化时改变其显示属性可以让它隐藏起来。方法是调用SetWindowPlacement函数:


BOOL CDialogExDlg::OnInitDialog()

{

CDialog::OnInitDialog();

//DO something


WINDOWPLACEMENT wp;

wp.length=sizeof(WINDOWPLACEMENT);

wp.flags=WPF_RESTORETOMAXIMIZED;

wp.showCmd=SW_HIDE;

SetWindowPlacement(&wp);

return TRUE;

}



在需要显示时(通常是响应热键或者托盘图标的鼠标消息):


WINDOWPLACEMENT wp;

wp.length=sizeof(WINDOWPLACEMENT);

wp.flags=WPF_RESTORETOMAXIMIZED;

wp.showCmd=SW_SHOW;

SetWindowPlacement(&wp);


这样的效果很不理想:窗口显示在屏幕的左上角,并且是只有标题栏,要正常显示,还需加上如下代码:

定义一个成员变量CRect rect;

在OnInitDialog()里面:

GetWindowRect(&rect);

在需要显示的地方:

SetWindowPos(&wndNoTopMost, wndRc.left, wndRc.top, wndRc.right, wndRc.bottom, SWP_SHOWWINDOW);

CenterWindow();

即使这样,效果还是很差。

这种方法还有一个弊端是当程序开始运行并且隐藏起来后,原来激活的窗口变成了非激活状态了,而当对话框显示出来后,对话框自身也是非激活状态的。


3.不绘制窗口
当对话框显示时将要响应消息WM_PAINT绘制客户区,相应消息WM_NCPAINT绘制窗口边框。我们在窗口第一次自绘自身时隐藏窗口,可以收到比较良好的效果。由于窗口是先画窗口边框,所以我们仅需处理WM_NCPAINT即可。代码如下:

添加WM_NCPAINT处理函数。

void CMyDialog::OnNcPaint()

{

static int i = 2;

if(i > 0)

{

i --;

ShowWindow(SW_HIDE);

}

else

CDialog::OnNcPaint();

}

这里有个问题:为什么要定义静态变量i而且设其值为2呢?

我们只要窗口隐藏第一次,所以定义这个变量可以判断是否时首次显示窗口。当程序开始运行时,系统发送 (SendMessage)WM_NCPAINT消息,此时程序的窗口边框应该被显示,但是此时我们没有作任何显示的操作,而是将窗口隐 藏,ShowWindow(SW_HIDE)将把窗口的WS_VISIBLE属性去掉,继续执行,程序将检查WS_VISIBLE属性,如果没有则显示窗 口,所以又发送了一个WM_NCPAINT消息。所以我们要处理两次WM_NCPAINT消息。

在需要窗口显示时,调用ShowWindow(SW_SHOW)即可。

程序执行的结果是,原来处于激活状态的窗口可能会闪动两下,然后仍然处于激活状态。这种处理方式比上面的方式要优越得多。


4.将对话框作为子窗口
这种方法是采用SDI框架,主窗口始终隐藏,对话框作为主窗口的成员变量,在CMainFrame::OnCreate()里面加入下代码:

if(!dlg.Create(IDD_MYDIALOG, this))

{

return –1;

}

dlg.ShowWindow(SW_HIDE);

在要显示对话框的地方用dlg.ShowWindow(SW_SHOW);即可。注意,主窗口一定要隐藏,否则对话框可能会闪现一下。

隐藏状态栏窗口
上面介绍了几种检查对话框的方法,大家如果试过的话可能已经注意到系统状态栏里在程序启动时会有程序的图标闪过,在隐藏对话框的时候这个也是要隐藏的,方法很简单:

在OnInitDialog()函数里面加上ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);即可。在要显示窗口的地方加上代码ModifyStyleEx(WS_EX_TOOLWINDOW, WS_EX_APPWINDOW);即将窗口的扩展样式改回来。


以上是我的一点经验总结,有错误或不完善的地方还望大家提出指正。欢迎大家与我联系。

posted @ 2009-10-22 10:12 阿炳 阅读(541) | 评论 (0) | 编辑 收藏
 

2009年9月15日

非unicode项目使用GDIplus
    最进发现用GDI+做的界面很漂亮,而且支持的图片格式也很丰富,所以就想把原来的老项目也添加一些GDI+的东西,但是原来的项目已经很庞大,做任何伤筋动骨的修改都很难,而且看上去没有任何设计可言,特别是添加unicode支持非常困难,曾经一度想过重写,因为现在太多东西不支持unicode,就算现在不改,将来也是大问题。但是限于时间紧迫,修改整个工程的想法就放弃了。
    但是向一个非unicode项目添加GDI+,还是很麻烦,因为GDI+只支持unicode,在网上找了好多资料,对于unicode与非unicode混合编程,都没有一个完美的解决办法,最后没办法,我就把所有与GDI+交互的代码中字符参数和变量全部用宽字符集,当与原来的系统交互在转换回去。
    现在GDI+和老项目总算是可以融合了,但感觉方法太拙劣,不知谁有更好的方法。
posted @ 2009-09-15 16:23 阿炳 阅读(584) | 评论 (0) | 编辑 收藏
 

2009年8月31日

[转]常见的一些游戏制作的引擎列表
免费和开源引擎
Agar - 一个高级图形应用程序框架,用于2D和3D游戏。
Allegro - 基于 C/C++ 的游戏引擎,支持图形,声音,输入,游戏时钟,浮点,压缩文件以及GUI。
Axiom 引擎 - OGRE的衍生引擎。
Baja 引擎 - 专业品质的图像引擎,用于The Lost Mansion。
Boom - Doom代码的一部分。由TeamTNT开发
Build 引擎 - 一个第一人称射击游戏引擎,用于Duke Nukem 3D。
Bullet - 开源物理引擎,广泛应用在各大游戏主机。
BYOND - “Build Your Own Net Dream”的所写,支持各种类型的游戏,包括MMORPG。
Ca3D-引擎 - 一个比较成熟的引擎,有自己的SDK,世界编辑器等。
Cadabra 3D 引擎 - 用于快速开发3D游戏。
Catmother - 一个基于BSD授权的引擎,只限个人使用,不能做商业用途。是一家游戏公司的开源引擎。
CheapHack - 一个已经过时的TomazQuake衍生引擎。
Crystal Entity Layer - Crystal Space 3D 引擎的扩充
Crystal Space - 3D应用程序的常规框架。
Cube - Cube2 ──> Sauerbraten
DarkPlaces - 高级开源3D引擎之一。
Delta3d - 整合和其他知名免费引擎,最初由美国军方开发。
DGD - 一个面向对象的MUD引擎。
Doom 引擎 - 现在已经免费的引擎,曾用于Doom和Doom II
DXFramework - 一个简单,带有教学性质的2D/3D引擎,基于DirectX和Visual Studio
DX Studio - 一个专业3D引擎,附带编辑器套件,由Worldweaver公司开发。
Eclipse - 一个2D MMORPG编辑器。
Elysium Source - 2D网络游戏引擎,VB6开发。
Engine 001 - 2D 动作类RPG游戏编辑器。
Epee 引擎 -一个2D/3D开放源代码图像引擎,多平台。
Eternity 引擎 - Doom引擎的改进。
Exult - Ultima VII使用的引擎的开源版。
FIFE - 辐射1和2使用引擎的克隆。
Game Blender - Blender的子项目游戏引擎,用于开发游戏。
Game Maker - 面向对象的软游戏开发平台,支持拖放编辑以及其自己的脚本语言。
GQ - 一个Quake引擎,增添了来自TomazQuake和DarkPlaces的许多新特性。
GZDoom - 基于ZDoom的引擎。
Genesis3D - 用于Windows的3D实时渲染引擎
GemRB - Infinity Engine的一个免费的软件实现。
G3DRuby - 用于高级3D图形。
Haaf's Game Engine - 一个使用硬件加速的2D游戏引擎。
Irrlicht 引擎 - 一个多平台高质量的3D图形引擎。
ioquake3 - 一个基于id Tech 3的引擎
Gosu 2D游戏开发库,用于C++。
Jogre - 一个基于Java的网络游戏引擎。
MRPGe - Visual Basic开发的2D RPG游戏引擎,附带内置的脚本支持,可定制化强,正在开发阶段。
M.U.G.E.N - 2D格斗游戏引擎。
Multiverse Network - 网络游戏开发平台,包含服务端、客户端,以及一些开发工具(对个人免费)
Nebula Device - 由德国的游戏开发工作室开发的实时渲染3D引擎。
NeL 引擎 - 用于开发网络游戏的引擎。
OctLight - Java游戏引擎,基于OpenGL。
Open Dynamics Engine - 物理引擎
Open Game Engine - 一个开源引擎,包含开发游戏所需的各种组件。
OGRE Engine - 一个非常流行的面向对象图形渲染引擎,亦称OGRE3D。
Online RPG Maker - 一个2D网络游戏引擎,以脚本方式编辑。
Panda3D 引擎 - 基于Python的快速开发游戏引擎。
PlayerWorlds - 一个简洁且广泛使用的2D网络游戏引擎。
PLIB - 包含3D、音效、GUI、窗口管理。支持Linux/Windows/MacOSX。
ProQuake - 更动过的Quake引擎。
Pygame - python游戏引擎,作品见PyWeek
毁灭公爵II引擎 - Quake II的引擎。
毁灭公爵III引擎 - Quake III的引擎。
Reality Factory - 一个开源引擎,面向非程序员开发,基于Genesis3d图形引擎。
Raydium - Maniadrive 使用
RealmForge - 用于微软 .NET Framework的引擎,Visual3D.NET的原始版本。
Sauerbraten - 一个基于Cube引擎的优化版。
Sonic Robo Blast 2 - 深度修改的Doom Legacy引擎
Soya 3D - 基于Python的开源3D引擎
Stratagus - 一个多平台即时战略游戏引擎。
Telejano - Quake引擎的修改版。
Tenebrae - Quake引擎的修改版。
Toi - 一个正在开发的3D游戏引擎,可用于单机和网络游戏开发。
Tomb4 - The engine used to play custom Tomb Raider games built using TRLE (Tomb Raider Level Editor)
vbGORE - 用Visual Basic 6开发的网络游戏引擎(通过3D函数表达2D图形)
Well of Souls - 基于脚本化编辑的2D引擎,附带可视化世界编辑器。
Yake - 组件化,面向对象化的的引擎。
Zak 引擎 - 为业余和专业游戏开发者开发的2D引擎,基于DirectX 8.1和9。 支持脚本、贴图地图、音效、粒子系统等。

商业引擎
Arcane 引擎 - Wolfpack Studios为《Shadowbane》开发的引擎
Aurora 引擎 - 为RPG研发的引擎。
Beyond Virtual - 一个面向对象化的实时渲染3D引擎,表现优秀。
Blade3D - 基于Microsoft XNA的新一代引擎。
BRender - 一个即时渲染3D引擎,用于电脑游戏,模拟器,绘图工具开发。
C4 Engine - Eric Lengyel开发的下一代电脑游戏引擎
Chrome Engine - 支持DirectX 10的下一代游戏框架,主要用于FPS游戏(Windows, Xbox 360),由Techland开发。
Coldstone game engine - an old game creation suite for Macintosh/Windows to create role-playing or adventure-style games
CryENGINE, CryENGINE2 - CryENGINE是《孤岛惊魂》的游戏引擎。 CryEngine 2 是Crytek为开发《孤岛危机》研发的新一代游戏引擎。
Dagor Engine 3 - A high-tech cross-platform game engine (3D, physics, game logic) with rich toolset for content development
Deep Creator - A 3D game engine
Doom 3 engine - Used by the games Doom 3, Quake 4, Prey and Quake Wars
EAGL (EA Graphics Library) - A cross-platform graphics engine used by Electronic Arts in their EA Sports titles.
Earth-4 Engine - The graphics engine used in Earth 2160
Electron engine - Currently in development by Obsidian Entertainment for their game Neverwinter Nights 2, based on the Aurora engine
euphoria - A real-time motion synthesis engine by NaturalMotion
Explorations - 2d MMO creator
FPSCreator - 3D First Person Shooter creator
Frostbite Engine- Game engine used for the next-gen title Battlefield: Bad Company
Gamebryo - A cross-platform 3D computer graphics engine coded in C++
GFX3D - 目标公司为旗下的数款游戏开发的引擎。
Havok[1] - Very High-tech cross platform (PC, PS3, Xbox 360 etc) middleware Engine.
IMUSE - Specifically designed to synchronize music with visual action
INSANE - Used in LucasArts games
Infinity Engine - Allows the creation of isometric computer role-playing games
Jedi - A game engine developed by LucasArts for Star Wars: Dark Forces and Outlaws
Kaneva Game Platform - A full featured MMOG engine for independent and professional game development
KjAPI - A C++ technology to create games and 3D applications for PC computers
Lithtech - A competing alternative to the Quake, and Unreal engines.
Lithtech Juipter Ex - A new generation Lithtech engine developed by Monolith to create the game F.E.A.R.
Medusa - A C++ 3D game engine developed by Palestar and used in the DarkSpace MMO. It features distributed world simulation, single tool version control and asset realisation, cross-platform compatibility and an integrated client/server network system.
morpheme - A graphically-authorable animation engine by NaturalMotion
Monumental Technology Suite - A MMOG platform, including server and cleint technology and development / live management tools.
Multiverse Network - an MMOG platform, including server, client, and tools. (Free for development and use--revenue sharing upon commercial deployment).
Odyssey Engine - Used to create three dimensional computer role-playing games, used in Star Wars: Knights of the Old Republic
ORE - Online RPG Engine
Quest3D -
www.quest3d.com
Power Render - A general purpose software development kit for games and 3D visualization
RAGE - A game engine created by Rockstar Games use it to power their upcoming video games on the Xbox 360 and PlayStation 3
Reality Engine - 3D game engine by Artificial Studios
RelentENGINE - A next-generation FPS engine supporting massive destroyable city environments and realistic vehicle control, makes extensive use of shader model 3.
RenderWare - A very popular 3D API and graphics rendering engine
Retribution Engine - A game engine to make first person shooter games
Revolution3D - A 3D graphics engine developed by X-Dream Project
RPG Maker XP - A 2D engine to make top-down and isometric-style role-playing games for Windows.
SAGE engine - Used to create real-time strategy games
SCUMM engine - Used in LucasArts graphical adventure games
Serious Engine - The engine by Croteam used in the epic Serious Sam: The First Encounter and the inspirational - The Second Encounter
Shark 3D - A middleware from Spinor for computer, video games and realtime 3D applications
Silent Storm engine - A turn-based strategy game engine
Sith - A game engine developed by Lucasarts for Jedi Knight: Dark Forces II
Slayer - A game engine created by The Collective, Inc. and used in Buffy the Vampire Slayer, Star Wars Episode III: Revenge of the Sith, Indiana Jones and the Emperor's Tomb and Wrath Unleashed
Source engine - A Game Engine developed by Valve Software for Half-Life 2
Torque Game Engine - A modified version of a 3D computer game engine originally developed by Dynamix for the 2001 FPS Tribes 2
Torque Game Engine Advanced - A next-generation 3D game engine support modern GPU hardware and shaders.
TOSHI - A fourth generation cross platform game engine designed by Blue Tongue Entertainment
Truevision3d - A 3D game engine using the DirectX API
Unigine - Cross-platform middleware with great graphics
Unity - An easy-to-use open-ended 3D game/interactive software engine
Unreal engine - One of the most popular game engines for action games
Vengeance engine - A video game engine based on the Unreal Engine 2/2.5
Vicious Engine - Available for Microsoft Windows, Sony PlayStation 2, Microsoft Xbox, and Sony PlayStation Portable
3DGame Studio -
www.3dgamestudio.com
Vision Game Engine - A commercial game engine used in 50+ titles by companies like T2, Atari, Neowiz and Threewave. Available for PC, Xbox, Xbox360 and PS3
Visual3D.NET - 3D platform and visual development environment built upon Microsoft .NET 2.0 and XNA Framework for developing for PC, Xbox 360, and Windows Mobile devices using C#, Visual Basic, J#, C++.NET, JScript.NET, IronPython, and visual scripting.
Virtools - A 3D engine combined with unique high-level development framework, used for game prototyping and rapid developments. Available for Windows, Macintosh, Xbox, PSP
White Engine - Square-Enix's proprietary seventh generation game engine to be used for their PS3 projects.
zerodin engine - 一个MMORPG专用的商业引擎,用于PC,XBOX360等多个平台,目前为止最适合开发MMORPG的商业引擎,引擎前身用于著名的RF online.
Zero - 3D game engine used in Star Wars: The Clone Wars, Star Wars: Battlefront, and Star Wars: Battlefront II
Maz 3D Game Engine - Designed by Students C++ & OpenGL

手机游戏引擎
GledPlay - 一套完整的SDK用于开发手机游戏。
game-editor - 为GP2X开发游戏的开发套件。
PSP
WGAF - Guild Software用于开发Vendetta Online的引擎。
XnGine - 最早的实时3D引擎之一。
posted @ 2009-08-31 09:02 阿炳 阅读(927) | 评论 (0) | 编辑 收藏
 
[转]游戏引擎收藏

物理Engine

novodex
http://www.novodex.com/

ode
http://ode.org/

Tokamak
http://www.adamdawes.com/programming/tokamak/index.html

Newton
http://www.physicsengine.com/

OPCODE
http://www.codercorner.com/Opcode.htm

flade (flash)
#http://www.cove.org/flade/

声音

openal
http://www.openal.org/

openal++
http://alpp.sourceforge.net/
http://sourceforge.net/projects/alpp/

人工智能
http://openai.sourceforge.net/
http://sourceforge.net/projects/openai/

3D Engine

blender
http://www.blendercn.org/
http://www.deathblood.net/main/tutorial/
http://www.blenderart.org/index.html
http://bbs.blendercn.org/viewtopic.php?t=183 FTP
http://www.blendercn.org/download/blenderwiki/ Blender手册(From wiki.blendercn.org)
http://www.blendercn.org/download/tutorials/ 基础视频教程
http://www.blendercn.org/download/blendercn/ Blender中文版
http://www.blendercn.org/download/yafray/ Yafray渲染器
http://www.blendercn.org/download/blenderart/blenderart_mag-1.zip Blenderart杂志
http://www.blendercn.org/download/blenderart/blenderart_mag-2.zip
http://www.blendercn.org/download/blendersc/ Blander源代码编译环境
http://code.google.com/p/wpyre/ 分布式渲染
http://www.softlab.ece.ntua.gr/~jpanta/Graphics/Kerkythea/ 场景编辑器,带材质编辑器

klayGE
http://klayge.sourceforge.net/ 中国人做的引擎.粘土

Axiom
http://axiomengine.sourceforge.net/ c#版的OGRE

CAL3D
http://sourceforge.net/projects/cal3d/ 骨骼动画引擎

OGRE
http://www.ogre3d.org/
http://ofusion.inocentric.com/
http://chronos.digitalsentience.com/

Irrlicht
http://irrlicht.sourceforge.net/ 官方
http://www.irrlicht3d.org/ 作者blog
http://irredit.irrlicht3d.org/ 场景编辑器
http://www.gdtoolkit.8m.net/ toolkit
http://irrlichtnetcp.sourceforge.net/ .net包装
http://irrklang.irrlicht3d.org/ irr配套的声音库和编辑器
http://irrlichtitalia.altervista.org/start/
http://46577.rapidforum.com/area=11
http://flysnow.cnblogs.com/

mesa3d
http://www.mesa3d.org/

Crystal Space 3D SDK
http://www.crystalspace3d.org/

GUI

CEGUI
http://www.cegui.org.uk/

CEGUI#
http://ceguisharp.sourceforge.net/ CEGUI C#版

通信引擎

raknet
http://www.rakkarsoft.com/ 开原的网络引擎,商用收费

enet
http://enet.cubik.org/ udp可靠传输

tnl
http://www.opentnl.org/ torque network library

udt
http://udt.sourceforge.net/

Sockets Lib
http://www.alhem.net/Sockets/

hawk
http://www.hawksoft.com/

linux upnp sdk
http://sourceforge.net/projects/upnp/

脚本

天使脚本引擎,类c
http://www.angelcode.com/

游戏引擎

Truevision3D
http://www.truevision3d.com/ 不开源,支持多种语言

Nebula 2
http://sourceforge.net/projects/nebuladevice
http://nebuladevice.cubik.org/

NeoEngine
http://www.neoengine.org/

Fly3D
#http://www.fly3d.com.br/
http://fabio.policarpo.nom.br/fly3d/

OpenSceneGraph
http://www.physicsengine.com/

RealmForge
http://www.visual3d.net/ 官方
http://sourceforge.net/projects/realmforge 项目地址

clan
#http://www.clanlib.org/

1. Codecreatures http://www.codecult.com
2. Ogre (free) http://ogre.sourceforge.net/
3. Serious Engine http://www.croteam.com/engine_features.shtml
4. Jet 3D (free) http://www.jet3d.com/
5. 6DX http://www.aztica.com/modules/news/
7. Intrinsic Alchemy http://www.intrinsic.com/
7. Q (free) http://www.qubesoft.com/q/overview.php
8. Power Render 4 http://www.egerter.com/powerrender/index.htm
9. Twilight 3DGE 2 http://twilight3d.com/products/3dge/
10. Wild Tangent http://www.wildtangent.com/default....driver_overview
11. Vital Engine http://www.deep-shadows.com/en/ve20_features.html
12. Quazal http://www.quazal.com/products/index.html
13. Renderware http://www.renderware.com/
14. X Ray Engine http://www.stalker-game.com/index.php?t=engine
15. Netimmerse http://www.ndl.com
16. ExNihilo (free) http://www.ploksoftware.org/index.php
17. Plib (free) http://plib.sourceforge.net/index.html
18. Carsten's 3D Engine (free) http://www.ca3d-engine.de/
19. 3D State (free) http://www.3dstate.com/
20. Destiny 3D http://www.destiny3d.com/pages/engine.html
21. Nive 3D (free) http://www.faktiss.net/index.html
22. Shine 3D http://www.nmg.ru/product.asp?lang=en&design=&id={11376C9A-FB6F-11D3-A930-00C0F0494FCA}
23. Game Creation System 3.0 http://www.pieskysoft.com/prod_gcs.html
24. Amp 3D Game Design System http://www.slamsoftware.com/frameset.html
25. Cloak NT http://www.cauldron.sk/tech/cloaknt.htm
26. Panard Vision (free) http://www.panardvision.com/v3/pv_overview.php
27. Shark 3D http://www.shark3d.com/
28. Fly 3D (free) http://www.fly3d.com.br/
29. Vega Prime http://www.multigen.com/products/ru...ime/index.shtml
30. Jamagic http://www.clickteam.com/English/jamagic.php
31. Quake 2 (free) http://www.idsoftware.com/business/...=true&version=6
32. 3D RAD http://www.3drad.com/
33. Dark Basic Pro http://www.darkbasicpro.com/
34. Blitz 3D http://www.blitzbasic.com/
35. Quest3D http://www.quest3d.com awsome engine
36. 3D Gamestudio A5 http://www.conitec.net/a4info.htm good for beginners
37. TrueVision http://francis.dupont.free.fr/coind...ish/truevision/
38. FreeCraft (free) http://freecraft.net/
39. Genesis 3D (free) http://www.genesis3d.com
40. Auran Jet http://www.auran.com/jet/overview.htm
41. Nebula Device (free) http://www.radonlabs.de/
42. Crystal Space (free) http://crystal.sourceforge.net/drupal/index.php
43. Torque http://www.garagegames.com/pg/product/view.php?id=1
44. LithTech http://www.lithtech.com/
45. Quake 3 Arena http://www.idsoftware.com/business/...=true&version=6
46. Vulpine http://www.vulpine.de/
47. Unreal http://udn.epicgames.com/
48. Miracle 3D http://www.miracle3d.da.ru/
49. Cipher http://www.synapticsoup.com/cipher-overview.htm
50. Virtools http://www.virtools.com/ nasty engine, but very expensive
51. Blender (free) http://www.blender.nl
52. Open GVS http://www.opengvs.com/about.htm
53. Adventuremaker http://www.adventuremaker.com/index.html
54. InterAx Game Engine http://www.cognitial.com/interax/index.htm
55. Power Render X http://www.egerter.com/prx/index.htm
56. Aleph One (free) http://source.bungie.org/
57. The Afterburner http://www.angelfire.com/my/demos/home.htm
58. NemoX (free) http://perso.wanadoo.fr/malakoff/index.htm
59. PTL & QDTE (free) http://membres.lycos.fr/frochet/frame.htm
60. 3DE http://www.recent-software.com/
61. SurRender http://www.surrender3d.com/gfx_main.php
62. Multimedia Fusion http://www.clickteam.com/English/mmfusion.php
63. GraalOnline http://www.cyberjoueurs.com/
64. C2 Engine http://www.pocketeers.com/c2.htm
65. Tenebrae http://tenebrae.sourceforge.net/index.php
66. Crytek http://crytek.com/
67. Shockwave3D: http://www.macromedia.com/software/director/
68. Pulse3D : http://www.pulse3D.com
69. Axel : http://www.mindavenue.com
70. anark studio http://www.anark.com
71. architectural /visualization, dedicated to 3ds Max http://www.cubicspace.com
72. architectural /visualization, dedicated to 3ds Max http://www.vr4max.com
73. Vegastrike http://vegastrike.sourceforge.net/ NEW
74. up to date site for nice engines http://www.3dengines.net/
75. dynamyic engine havok http://www.havok.com/
76. a complete black box solution for absolutely any game that can be imagined http://www.nevrax.org/
77. 3D game engine and multiplayer/singleplayer FPS game http://sourceforge.net/projects/cube/
78. toolkit that lets you create quality games without knowing any programming http://www.realityfactory.ca/v3/
79. 3D game engine developed by 3Ddrome http://www.3ddrome.com/engine.php
80. Iehovah realtime destructible dynamic terrains! http://www.iehovah.com/
81. Voxlap the most advanced 6dof voxel engine http://advsys.net/ken/voxlap.htm
82. 3Impact (trial) - http://www.3impact.com/index.htm
83. The Urgh Engine (demo) - http://www.urgh.cjb.net/
84. Fluid Interactive neEngine - http://www.fluidinteractive.com/
85. Reality Factor Pro - http://pro.realityfactory.ca/
86. Cipher Engine - http://www.cipherengine.com/
87. Auran Jet - http://www.auran.com/jet/default.htm
88. 3D Rulers AMP 3D - http://www.4drulers.com/amp.html
89. Power Render - http://www.3dengine.ca/
90. True Vision 3D - http://www.truevision3d.com/html/
91. Aztica - http://www.aztica.com/modules/news/
92. CloakNT - http://www.cauldron.sk/tech/cloaknt.htm
93. Light Speed - http://lightspeed3d.cjb.net/
94. ExoEngine - http://www.exocortex.org/3dengine/
95. Codecult - http://www.codecult.com/
96. Twilight 3D - http://www.twilight3d.com/modules.p...=thread&order=0
97. Squire3d Engine - http://www.squiresoftgames.com/squire3d.html
98. SunSpire 3D Engine - http://www.razor.sk/sunspire.html
99. flexibil engine http://www.3impact.com
100. first time used an it's really flexibel http://www.garagegames.com/

一、底层开发包和工具

1. http://www.mesa3d.org

Mesa 是一个类OpenGL( http://www.opengl.org )的开源实现。

2. http://openil.sourceforge.net

DevIL (即以前的OpenIL)是一个跨平台的图形处理包,支持

BMP、JPG、GIF 等多种图形文件格式。

二、2D 游戏开发包

1. http://www.libsdl.org/

http://www-900.ibm.com/developerWorks/cn/linux/theme/special/

SDL(Simple DirectMedia Layer)是一个跨平台的多媒体和游戏开

发包,提供2D、音频、事件驱动、多线程和定时器等服务,并有大

量的扩充开发包,如TCP/IP 网络、游戏角色、混音等。SDL 是用C

开发的,但也有Perl、PHP、Delphi 等多种语言的版本。

2. http://www.clanlib.org

ClanLib 是一个通用的C++游戏开发包,提供游戏资源操作、网络

对象处理、GUI 主题和游戏脚本等支持。支持Windows 和Linux。

PMT Files – Open Source Game Development

三、3D 引擎和游戏开发包

1. http://crystal.sourceforge.net/

Crystal Space 是一个用C++开发的3D 游戏开发包。有丰富的

功能,支持Direct3D、OpenGL、Glide 等。

2. http://ogre.sourceforge.net/

OGRE 是一个面向对象的3D 引擎,支持DirectX、OpenGL 和

Glide 等。

3. http://hem.passagen.se/opengl/glfw/

GLFW 是一个OpenGL 的应用框架,支持Linux 和Windows。

4. http://apocalyx.sourceforge.net/

Apocalyx 是一个基于OpenGL 的3D 引擎。

5. http://www.faktiss.net/

Nive 是一个C++ 3D 引擎,基于OpenGL 和

DevIL,支持Windows 和Linux/Xwindow。

6. http://plib.sourceforge.net/

Plib 是一个3D 游戏开发包。

7. http://alleg.sourceforge.net/ Allegro 是一个跨平台的C/C++游戏开发包,提供2D、3D、声效、用

户输入、文件、压缩、GUI 等功能。

PMT Files – Open Source Game Development

四、游戏和游戏框架

1. http://www.freecraft.org/

FreeCraft 是一个实时战略游戏(RTS)框架。

2. http://www.worldforge.org/ Worldforge 是一个完整的大型网络RPG 游戏框架。

3. http://arianne.info/

Arianne 是一个大型网络RPG 游戏,同时也是一个游戏框架。

五、其他

1. http://openai.sourceforge.net/ OpenAI 是一个人工智能的工具包,包括神经网络、遗传算

法、有限状态机等。

一、英文网站

1. http://www.flipcode.com/

Daily Game Development News & Resources

2. http://www.gamedev.net/

All Your Game Development Needs

3. http://www.gamedeveloper.net/

4. http://www.gametutorials.com/

Game Programming with Personality, From Start to Finish

5. http://www.cfxweb.net/

Demo & Game Development

6. http://www.gdse.com

The Game Programming and Design Search Engine

7. http://www.2dgame-tutorial.com

8. http://www.gamasutra.com/

CMP - The Art & Science of Making Games

9. http://www.gdmag.com/

CMP - Game Developer Magazine

posted @ 2009-08-31 08:57 阿炳 阅读(1019) | 评论 (0) | 编辑 收藏
 
[转]国内游戏开发

1. http://www.gameres.com/

中文游戏开发技术资料和交流

2. http://www.gpgame.net

金点工作室

3. http://www.codingnow.com

云风工作室

4. http://www.npc6.com/

何苦做游戏,游戏制作的文化

5. www.kaxixi.com/

网页游戏Webgame开发论坛

6. www.ogdev.com/index.htm

盛趣信息技术(上海)有限公司 OGDEV.NET -- 网络游戏研发网

7. www.55rpg.com/

55RPG论坛-专业游戏开发制作论坛

8. www.game798.com/

《游戏艺术工厂》-游戏美术、游戏开发、游戏研发人员最大的网络交流平台

9. gamedev.csdn.net/ bbs.gamedev.csdn.net/Web/

CSDN游戏开发站,竭诚为游戏开发者服务。

10. www.sf.org.cn/

开发视界 - 移动开发社区

11. www.modchina.com/

MOD中国同盟社

12. games.enet.com.cn/zhuanti/school/

enet游戏开发专区

13. www.66rpg.com/

66RPG,业余游戏制作者之家,RPG制作大师专题站

14. www.mgamediy.com/

MGameDiy手机游戏DIY联盟

15. www.j2megame.cn/

手机游戏开发网

16. bbs.99game.org/index.php

99Game 模拟器研究

17. www.diygame.cn/bbs/

独立游戏开发中国站

18. www.vbgamediy.com/

游戏之家 VB游戏开发

19. www.diyrpg.cn/bbs/

DIYRPG Forum 游戏制作 RPG制作大师

20. www.gamfe.com/xz/

西安游戏学院

posted @ 2009-08-31 08:57 阿炳 阅读(710) | 评论 (0) | 编辑 收藏
 

2008年11月12日

【转载】Ubuntu游戏集合
【转载】Ubuntu游戏集合
==================

这个游戏使用了quake3的引擎,所以画面相当好,在ubuntu里面安装非常简单

sudo apt-get install tremulous

这个游戏只有多人版本,进入游戏之后把网络改成internet,然后get newserver,就可以获取网上的服务器了,服务器还比较多。找到人数和ping值都满意的游戏加入之后,按esc修改一下设置,比如分辨率什么的, 我是用的1280X1024,还非常流畅。进入之后好像可以选择两个种族,一个是人类,一个是外星怪物。玩法还是比较简单,就是杀人,然后得钱,买装备, 再杀人。

============================

百战天虫

sudo apt-get install wormux

可爱的小虫子们跑到linux下面了

============================
chromium 雷电,画质一流,和windows版的没有太大区别,个人认为超越了windows版

sudo apt-get install chromium

这个是linux下面类似雷电的一个游戏,非常好玩,强烈推荐

============================

linux下面的泡泡龙

sudo apt-get install frozen-bubble

画面可爱,适合和女朋友一起玩,上面的wormux也是不错的选择

============================

sudo apt-get install tuxkart 跑跑卡丁车, ,效果一般

============================

sudo apt-get install frozen-buble 桌面弹球 2d 游戏,音乐好听(我最喜欢这个游戏)

============================

FooBillard:3D撞球遊戲
安裝方法:(在終端機中鍵入或複製貼上以下指令)
sudo apt-get install foobillard
執行方法:(在終端機中鍵入或複製貼上以下指令)
foobillard

============================

Slune:3D企鵝開車冒險遊戲,動作過關,內容非常豐富,也能玩不同類型的小遊戲,如保齡球等

sudo apt-get install slune

============================

TORCS:3D賽車遊戲,玩起來還不錯

安裝方法:sudo apt-get install torcs

============================

Astromenace:3D直式捲軸空間飛機射擊遊戲,畫面相當精美

http://www.viewizard.com/download/amenace046b.tar.bz2
完成後解壓縮,進入解壓縮後的資料夾,點擊AstroMenace檔案,即可開始遊戲(64位元電腦請點擊AstroMenace64執行)

(注:如果無法遊戲,可開啟Synaptic查詢是否已安裝以下所需相依套件:
libSDL (ver 1.2.6+), libopenal (ver 1.0+), libalut (ver 1.0+), libogg (ver 1.1+), libvorbis (ver 1.1+), libvorbisfile (ver 1.1+), libjpeg (ver 6b+).)

============================

Nexuiz:3D第一人稱槍戰遊戲,畫面非常精緻,很好玩,推薦給喜歡槍戰遊戲的朋友

下載檔案: nexuiz-v222.zip

http://sourceforge.net/project/downloading.php?groupname=nexuiz&filename=nexuiz-v222.zip&use_mirror=osdn

完成後解壓縮,進入解壓縮後的資料夾,點擊nexuiz-linux-glx.sh或nexuiz-linux-sdl.sh檔案,選擇執行,即可開始遊戲

=============================

中國象棋cnchess0.2版
下載檔案 http://www.magiclinux.org/people/yunfan/frogchess/cnchess-0.2.bin.tar.bz2

=============================


大型3D游戏
---------

QUAKE 3
下载:ftp://ftp.idsoftware.com/idstuff/
47M大小。
安装:#chmod u+x linuxq3ademo-1_11-6_x86_gz.sh //添加执行的权限
# ./linuxq3ademo-1_11-6_x86_gz.sh
安装过程中会提示一些问题,选择Y/N作答就可以了,这么简单的英文我就不给大家翻印了,主要是提示是否安装,是否接受许可协议,是否创建快捷方式,是否需要帮助文件等。

============================

DOOM 1、2、3
下载之前先看一看你的配置,DOOM3这样的大型游戏要求您的机器 P4 1.5,内存384MB,至少2.2G的硬盘空间,64M以上显存的显卡(曾经记得为了一款超级烂的《江湖》而升级计算机的情景)
下载地址:ftp://ftp.idsoftware.com/idstuff/ (下载人数过多,尽量在一些非高峰期下载)
安装和QUAKE3类似

============================

虚幻竞技场2004(UT2004)
下载:
http://www.unrealtournament.com/ut2004/downloads.php
选择LINUX的DEMO版本下载,大小275MB
安装一样

============================

Invasion Battle of Survival:

2D模擬策略遊戲,玩法類似紅色警戒,滿豐富的,地圖也很多
遊戲畫面: http://bos.seul.org/screenshots.shtml
[ 安裝方式 ]
下載遊戲引擎:
http://prdownloads.sourceforge.net/stratagus/stratagus-2.2.2-linux.tar.gz?download

下載BOS遊戲資料庫:

http://bos.seul.org/files/bos_2_0_1.tar.gz

安裝遊戲所需套件:
sudo apt-get install lua50

下載完以上兩個檔案後解壓縮,開啟終端機,進入stratagus-2.2.2資料夾.例如:小弟要進入放置於桌面的stratagus-2.2.2資料夾,使用此指令:
cd ~/Desktop/stratagus-2.2.2
接下來將BOS遊戲資料庫連結到stratagus引擎.例如:如果小弟將data.bos資料夾放至於桌面,則使用此指令開始遊戲:
./stratagus -d ~/Desktop/data.bos
享受遊戲吧~^^

============================

《Nexuiz》 官方网站 http://www.alientrap.org/nexuiz/

这是一款免费的跨平台的FPS游戏。一个完全夸越互联网的3D死亡竞赛游戏。游戏的目的就是利用完美的武器平衡和快节奏让死亡竞赛回归本源,远离现 在射击游戏日趋真实的趋势。你可以连接到主服务器与世界各地的玩家游戏。它使用DarkPlaces游戏引擎即Quake1引擎的改良版本,最多支持64 人同时在线,并且拥有HDR效果。在2005年5月31日推出1.0版本,现在通用的是于2007年1月26日更新的2.2.3版本。Nexuiz标志是 汉字的“力”字。

============================

《America’s Army》 官方网站 http://www.americasarmy.com/

这是一款战术类多人FPS游戏,它由美国陆军免费制作,用来宣传自己帮助征兵工作。在2002年7月4日发布首版,现在使用的是2007年3月22 日更新的2.8.1版本。尽管有批评者指责它具有政治目的,但是精良的制作和强调真实性与战术合作使其大受欢迎。它的主页显示到2007年已经有超过 800万人注册,在2002年到2005年任意时间都有4500人在线,这足以使America’s Army成为十大在线游戏。育碧曾推出过它的改进版,它也有中文站。

=============================

《EnemyTerritory: QuakeWar》 官方网站 http://www.enemyterritory.com/

这是Wolfenstein第一人称射击游戏的《Enemy Territory》(敌占区)的续作。游戏背景和Quake 4》一样都是Quake系列里的大背景,游戏里面加入超过40种的常见的以及特有的车辆,包括摩托车,坦克,直升机,无重力飞船等。采用增强型Doom3 引擎,将包含动态光影,昼夜循环,天气,植被等一系列先进的效果。在2006年E3展被评为最佳在线多人游戏。

=============================

《Tremulous》 官方网站 http://tremulous.net/

这是一款开源的第一人称射击游戏,也具备网上对战功能,而且有即时战略元素。类似Gloom(quake 2的MOD)和Natural Selection(Half-Life 的MOD)。游戏里有两个种族,人族和异形,各有优势和劣势。这个游戏已经被下载过20万次。在2006年MOD游戏评选中被评为“最独特的游戏”。

=============================

《Vendetta》 官方网站 http://www.vendetta-online.com/

Vendetta Online》是一款以宇宙为背景的MMORPG游戏。新玩家有8个小时的体验时间,如果你想继续每月则需支付5美元。玩家需在三个势力中选择一方,然后驾驶自己的宇宙飞船,自由飞行探险,因为该游戏的战斗风格是“FPS”、“实时”,所以动作性很强

posted @ 2008-11-12 20:32 阿炳 阅读(2202) | 评论 (0) | 编辑 收藏
 

2008年10月20日

自称是在神舟工作过的哥们,不知是真是假,不过应该八九不离十。
http://bbs.thmz.com/viewthread.php?tid=641062
posted @ 2008-10-20 19:11 阿炳 阅读(452) | 评论 (0) | 编辑 收藏
 

2008年9月5日

MFC 的一些常见问题
MFC 的一些常见问题

如何抛出(throw)由CUserException派生的异常?

当我试图捕获(catch)一个派生类异常时,我得到以下错误"error C2039:'classCMyException': is not a member of 'CMyException' 'classCMyException': undeclared identifier 'IsKindOf': cannot convert parameter 1 from 'int*' to 'const struct CRuntimeClass*"

你必需通过使用DECLARE_DYNAMIC()和IMPLEMENT_DYNAMIC()宏来使你的CMyException类可以动态地创建。CATCH宏希望能够得到关于被抛出类的运行时刻信息。

异常类一定要从CUserException中派生出来吗?

不,CUserException中的"User"仅仅指用户产生的异常。而把它当作你所能派生的唯一异常是种常见的误解。

如何从HDC建立一个CDC类?

有时Windows API将会给你一个DC句柄,你可以通过它建立一个CDC类。例如:下拉式列表、组合框和按钮。通过hDC你将接收到绘制消息。下面是将HDC转换成你更熟悉的CDC的程序段。你也可以将该技巧用在其他任何MFC类和Windows句柄的转换中。

void MyODList::DrawItem(LPDRAWITEMSTRUCT lpDrawItem)
{
CDC myDC;
myDC.Attach(lpDrawItem->hDC);
//在此插入其他需要的代码。

//如果你不将句柄分离,它将被删除,从而导致问题。
myDC.Detach();
}
另一个方法是调用CDC类的FromHandle方法:
CDC * pDC = CDC:FromHandle(lpDrawItem->hDC);
目前还不清楚哪种方法更优越―使用FromHandle()的错误也许会更少些,因为它不要求你分离(detach)句柄。

如何从磁盘上读取256色位图文件?

当前,MFC并不支持直接读取和显示DIB文件和BMP文件。然而,有很多样例应用程序能够说明如何完成该项任务。第一个例子是MFC样例程序 DIBLOOK。样例MULTDOCS用DIBLOOK提供的相同源代码来读取并显示DIB文件和BMP文件。其他两个VC++中附带的例子是SDK软件 包中的DIBVIEW程序和SHOWDIB程序。

如何改变一个视图的大小?

通常,你可以调用函数MoveWindow()来改变窗口的大小。在用MFC库开发的应用程序中, 视图是被框架窗口所围绕的一个子窗口。为了改变一个视图的大小,你可以通过调用函数GetParentFrame()来得到框架窗口的指针,然后调用函数 MoveWindow()来改变父窗口的大小。当父框架窗口改变大小时,视图也会自动地改变大小来适应父窗口。

如何改变一个CFormView的大小?

要想详细了解的话,你可以看有关Visual C++基础知识的文章Q98598 《Using CFormView in SDI and MDI Applications》。基本上,在从CFormView类派生出来的类中,你必须覆盖函数OnInitialUpdate()。其他有关建立 CFormView的细节问题,可以从该文章中获得。

在类ClikethisView中声明如下函数:
virtual void OnInitialUpdate();

在ClikethisView的代码中,函数如下:

void ClikethisView::OnInitialUpdate()
{
//使窗口与主对话框同样大小
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit( /*FALSE*/ );
}

如何使用一个文档模板的新视图?

在用AppWizard创建的应用程序中,你有两种选择:改变当前视图的派生关系或者建立一个新视图并且在你的MDI程序中同时利用新视图和原先的视图。


为了创建一个新视图,你可以用ClassWizard由CView派生一个新的类。当新类创建以后,利用新视图或修改由AppWizard提供的视图,两者的步骤是相同的。


修改视类的头文件,从而将所有对CView类的引用改名为你所想要的名称。本例中的类由CScrollView派生而来。通常,这个步骤包括对类的改变,视类将由如下方式派生而来:
     class CMyView : public CScrollView


修改视类的实现文件,从而将所有对CView的引用改名为你所想要的名称。这包括将IMPLEMENT_DYNCREATE那一行的语句改为:
     IMPLEMENT_DYNCREATE(CMyView, CScrollView)


将BEGIN_MESSAGE_MAP那一行的语句改为:
     BEGIN_MESSAGE_MAP(CMyView, CScrollView)


并且将其他所有的CView改成CScrollView.


假如你修改的视图是由AppWizard生成的,那么就不需要作更多的修改了。而如果你在创建一个新视图,先在 CWinApp::InitInstance()函数中找到对AddDocTemplate()函数的调用。AddDocTemplate()函数的第三 个参数是RUNTIME_CLASS(CSomeView),用CMyView来代替CSomeView,就可以将当前视图改为新视图。在MDI应用程序 中,你可以增加第二个AddDocTemplate()函数调用来使用多视图类型,将RUNTIME_CLASS(CSomeView)改为 RUNTIME_CLASS (CMyView)。

要想获得更多的信息请参阅Q99562中相关文章《Switching Views in a Single Document Interface Program》 。

如何改变视图的背景色?

你可以通过处理WM_ERASEBKGND消息来改变CView、CFrameWnd或CWnd对象的背景色。请看如下的程序段:

BOOL CSampleView::OnEraseBkgnd(CDC* pDC)
{
// 设置所要求背景色的刷子
CBrush backBrush(#ff8080);
// 保存旧刷子
CBrush* pOldBrush = pDC->SelectObject(&backBrush);
CRect rect;
pDC->GetClipBox(&rect); // 擦除所需的区域
pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush);
return TRUE;
}
而我则用如下方法解决这个问题:
HBRUSH dlgtest::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
switch (nCtlColor)
{
case CTLCOLOR_BTN:
case CTLCOLOR_STATIC:
{
pDC->SetBkMode(TRANSPARENT);
}
case CTLCOLOR_DLG:
{
CBrush* back_brush;
COLORREF color;
color = (COLORREF) GetSysColor(COLOR_BTNFACE);
back_brush = new CBrush(color);
return (HBRUSH) (back_brush->m_hObject);
}
}
return(CFormView::OnCtlColor(pDC, pWnd, nCtlColor));
}

如何得到当前视图?

最佳方法是将视图当作一个参数来传递。如果不能这样做,但你确信它是当前激活文档和当前激活视图的话,你也可以得到该视图。具体细节见Visual C++文章Q108587《Get Current CDocument or CView from Anywhere》。

简单说来,用:

((CFrameWnd*) AfxGetApp()->m_pMainWnd))->GetActiveDocument()

和:

((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView()
来得到文档和视图。一个好的方法是将它们封装在你的CMyDoc和CMyView类的静态函数中,并且核对它们是否属于正确的RUNTIME_CLASS。然而,假如这个视图不是当前激活视图或者你在运行OLE本地激活,这样将不成功。

如何在一个文档中建立多个视图?

CDocTemplate::CreateNewFrame()函数创建MFC MDI应用程序中的文档的附加视图。为了调用该函数,要指定一个指向CDocument对象(指将为之建立视图的文档)的指针和一个指向可从中复制属性的 框架窗口的指针。一般情形下,该函数的第二个参数为NULL。

当应用程序调用函数CreateNewFrame()时,该函数就创建一个框架窗口和在该窗口内的视图。框架窗口和它的视图的类型由与CreateNewFrame()函数调用指定的文档相关的文档摸板(CDocTemplate)决定。

Visual C++中的CHKBOOK MFC样例程序也演示了如何为文档建立附加的框架和视图。检查CHKBOOK.CPP文件中的CChkBookApp::OpenDocumentfile()函数。

另一个用函数CreateNewFrame()的例子是MULTVIEW样本程序。

CreateNewFrame()函数建立了一个框架和一个视图,而不仅仅是一个视图。假如CreateNewFrame()函数不能完全符合你的需要,可参考CreateNewFrame()函数的源程序来了解对建立结构和视图所必须的步骤。

如何在MDI程序中得到所有的视图?

你必须用一些文档中没有记载的函数:

CDocument::GetFirstViewPosition(); // DOCCORE.CPP
CDocument::GetNextView(); // DOCCORE.CPP
CMultiDocTemplate::GetFirstDocPosition(); // DOCMULTI.CPP
CMultiDocTemplate::GetNextDoc(); // DOCMULTI.CPP

你还需要与CWinApp的成员m_templateList打交道。
注意:在MFC 版本4.0中已改变。现在已经有一个叫CDocManager的类可以帮助你显示所有的视图和文档。请参考《MFC Internals》获得更详细的信息。

如何建立一个可用鼠标拉动的CScrollView类

在CIS上从MSMFC库下载AUTOSV.LZH。这个程序告诉你如何实现一个辅助消息循环来管理鼠标的活动,并提供了钩挂来对代码进行定制。这是一个免费软件。

一定要用视图/文档结构吗?

MFC并不一定要求你使用文档/视图结构。查看HELLO、 MDI和HELLOAPP例子―它们就没有用那种结构。大多数MFC特性都可以在非文档/视图应用程序中得到运用。但是当你不用文档 / 视图结构时,你确实会失去一些特性,例如打印预览和许多OLE特性。

如何得到当前文档?

请详细参阅"如何得到当前视图?"章节。

文档何时被析构?

在SDI程序中,程序退出后文档就被删除。在MDI程序中,与该文档相关的最后一个视图关闭时文档就被删除。为了在SDI和MDI中同时用这个文档,你应该在虚函数DeleteContents()函数中删除该文档的数据,而不是在析构器中。

如何建立多文档?

为了加入对附加文档类型的支持,你可以在CWinApp派生类中创建和注册附加CmultiDocTemplate对象。这种方法已经在MULTDOCS样例程序中得以说明。将一个附加文档类型加入到MFC程序的一般步骤如下:

用AppWizard来创建一个新的文档类和视图类。
用资源编辑器增加新的资源字串来支持新的文档类。要想知道关于文档样板字符串格式的更多内容,请参阅"如何理解文档样板字符串"。

用资源编辑器增加附加的应用程序图标和菜单资源。注意,这些资源中每一个的ID都必须与在步骤2中创建的文档模板字符串的ID是相同的。这个ID被CmultiDocTemplate类用来识别与附加文档类型相关的资源。

在应用程序的InitInstance()函数中,创建了另一个CMultiDocTemplate对象并且用CWinApp::AddDocTemplate()函数来注册。例如:

CMultiDocTemplate* pDocTemplate2 = new CMultiDocTemplate(
IDR_DOC2TYPE, RUNTIME_CLASS(CDoc2),
RUNTIME_CLASS(CMDIChildWnd),RUNTIME_CLASS(CView2));
AddDocTemplate(pDocTemplate2);
最后,将定制的序列化和绘图代码加入到你的新文档和视图类中。

如何得到一个打开文档的列表?

下面的程序段指明如何得到用CDocTemplate对象建立的所有文档的指针列表。
下面的程序段中,CMyApp由CWinApp派生而来。变量m_templateList是一个CPtrList对象,它是CwinApp的成员变量, 包含一个所有文档模板指针的列表。文档模板函数GetFirstDocPosition()和GetNextDoc()被用来在文档模板列表中进行迭代来 得到每一个文档模板。

void CMyApp::GetDocumentList(CObList * pDocList)
{
ASSERT(pDocList->IsEmpty());
POSITION pos = m_templateList.GetHeadPosition();
while (pos)
{
CDocTemplate* pTemplate =
(CDocTemplate*)m_templateList.GetNext(pos);
POSITION pos2 = pTemplate->GetFirstDocPosition();
while (pos2)
{
CDocument * pDocument;
if ((pDocument=pTemplate->GetNextDoc(pos2)) != NULL)
pDocList->AddHead(pDocument);
}
}
}

在参考手册或在线帮助中,有两个CdocTemplate类的公共成员函数没有被说明。然而, 这些公共成员函数在CDocTemplate类中被定义,并且为在打开文档的列表中前后搜索提供了简单的支持。

这些函数如下:


Function virtual POSITION GetFirstDocPosition() const;
调用该函数得到在打开的文档列表中与模板相关联的第一个文档的位置。返回的POSITION的值能够被GetNextDoc成员函数反复使用。

Function Virtual CDocument* GetNextDoc(POSITION& rPosition) const;
rPostion是前面调用GetNextDoc 或GetFirstDocPosition成员函数返回的POSITION值。这个值不能是NULL。调用该函数来在所有打开的文档中进行迭代。该函数返 回被rPosition所标识的文档并将rPosition设置为列表中的下一个文档的POSITION值。假如所检索的是列表中的最后一个文 档,rPosition将被设为空值。

注意,这仅对MFC3.2版本或更低版本有效,对MFC4.0版本请参考下面:

void CMyApp::DoSomethingToAllDocs()
{
CObList pDocList;
POSITION pos = GetFirstDocTemplatePosition();
while(pos)
{
CDocTemplate* pTemplate = GetNextDocTemplate(pos);
POSITION pos2 = pTemplate->GetFirstDocPosition();
while(pos2)
{
CDocument* pDocument;
if(pDocument = pTemplate->GetNextDoc(pos2))
pDocList.AddHead(pDocument);
}
}
if(!pDocList.IsEmpty()){
pos = pDocList.GetHeadPosition();
while(pos)
{
//为每一个文档调用CDocument函数
( (CDocument*)pDocList.GetNext(pos) )
->UpdateAllViews(NULL);
}
}

如何使我的程序在启动时不创建一个新文档?

在程序的InitInstance中的ProcessShellCommand函数之前加入: cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing

(-). 下面是常见的Afx全局函数:

AfxFormatString1:类似printf一般地将字符串格式化

AfxFormatString2:类似printf一般地将字符串格式化

AfxMessageBox:类似Windows API 函数 MessageBox

AfxOuputDebugString:将字符串输往除错装置

AfxGetApp:获得application object (CwinApp派生对象)的指针

AfxGetMainWnd:获得程序主窗口的指针

AfxGetInstance:获得程序的instance handle

(二). CString 与char []之间的转换.

在VC中,恐怕这两个是经常要进行转换的吧

char str[10] = ”str”;

CString sstr = “sstr”;

sstr.Format(“%s”,str);

strcpy(str,(LPCTSTR)sstr);

(三). 关闭程序:

PostQuitMessage(WM_CLOSE);   或者PostQuitMessage(WM_DESTROY);

     更绝的是关闭所有的程序:::ExitWindows ();

(四). 在关闭窗口时,当要对文件进行保存时,可在这里添加函数:

     1.)在CMainFrame里的OnClose()里,用MessageBox("内容","标题",组合形式);组合形式可以查看MSDN的MESSAGEBOX( ) Function

     2.)在CXXXDoc::SaveModified() 里,只能用AfxMessageBox("");

不能用MessageBox()函数

(五). 如何修改窗体的标题:

     1.)修改主窗口的标题:m_pMainWnd->SetWindowText("你的标题");

     2.)如果在你的document类中进行改,则直接调用SetTitle("..."),如果在你的view类中改,则GetDocument()->SetTitle("...")

     3.)如果想使窗口的标题全部替换,则用:AfxGetMainWnd()->SetWindowText("你的标题");

(六). 得到窗体的标题:

     1.)AfxGetMainWnd()->GetWindowText();

    2.)先FindWindow()找到窗口的HWND,在GetWindowText();

(七). 在多文档/视图中:

     1.)子窗口的最大化:

      void CChildFrame::ActivateFrame(int nCmdShow)

      {

        // TODO: Add your specialized code here and/or call the base class

        nCmdShow=SW_MAXIMIZE;

        CMDIChildWnd::ActivateFrame(nCmdShow);

       }

2.)屏蔽子对话框:在APP类里把这两句话屏蔽掉

       if (!ProcessShellCommand(cmdInfo))

         return FALSE;

3.)关闭子窗口:

::SendMessage(::AfxGetMainWnd()->m_hWnd, WM_COMMAND,ID_FILE_CLOSE,0);

(八). 在装进自定义的光标后,在移动的过程中,鼠标的形状总是在自定义和默认的光标之间晃动,可以这样解决,在视中的PreCreateWindow()中加入如下几句:

     BOOL CXXXXView::PreCreateWindow(CREATESTRUCT& cs)

{

       // TODO: Modify the Window class or styles here by modifying

       // the CREATESTRUCT cs

       cs.lpszClass =AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,0,

                   (HBRUSH)::GetStockObject (WHITE_BRUSH),0);

       return CView::PreCreateWindow(cs);

}

(九). 怎样禁止改变窗口的大小和不能移动的窗口:

          再 CMainFrame的OnCreate函数中加入:

        CMenu *pTopMenu=GetSystemMenu(false);

          pTopMenu->RemoveMenu(4,MF_BYPOSITION);//最大化窗口不可用

        pTopMenu->RemoveMenu(2,MF_BYPOSITION);//size

        pTopMenu->RemoveMenu(1,MF_BYPOSITION);//使不可移动

(十).使窗口始终在最前方:

只要在App类中的InitInstance()函数中加入以下代码就可以了:

BOOL CwindowOnTopApp:: InitInstance()

{

   //此处略去了VC自动生成的代码

   m_pMainWnd->showWindow(SW_SHOW);

   m_pMainWnd->UpdateWindow();

   m_pMainWnd->SetWindowPos(&CWnd::WndTopMost,0,0,0,0,

SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);

       Return true;

}

转载,留待以后查看。

posted @ 2008-09-05 17:10 阿炳 阅读(953) | 评论 (0) | 编辑 收藏
 
仅列出标题  下一页