| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3548 人关注过本帖
标题:无聊至极,弄了一个控制台游标模块,可用于写贪食蛇游戏
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
百度来的,不知道可信性如何:

  Open GL仍然是唯一能够取代微软对3D图形技术的完全控制的API。它仍然具有一定的生命力,但是Silicon Graphics已经不再以任何让微软不悦的方式推广Open GL,因而它存在较高的风险。游戏开发人员是一个有着独立思想的群体,很多重要的开发人员目前仍然在使用Open GL。因此,硬件开发商正在设法加强对它的支持。Direct3D目前还不能支持高端的图形设备和专业应用; Open GL在这些领域占据着统治地位。最后,开放源码社区(尤其是Mesa项目)一直致力于为任何类型的计算机(无论它们是否使用微软的操作系统)提供Open GL支持。

   08年8月正式公布OpenGL3.0版本。并且得到了nv的支持,其官方网站上提供针对N卡的sdk下载。

   目前,国内的三维游戏开发技术正处于赶超国外的关键时期,从创意、策划、研究开发与实现,到游戏的运营与维护,都有大量的知识值得学习和摸索。由于 Linux 操作系统平台的大力推广,基于Linux 的各种应用软件也不断壮大,因此基于跨平台图形库的跨平台三维游戏开发也越来越受重视。OpenGL(open graphics library)是一种独立的平台无关的三维图形开发库,在各种语言下进行主框架开发并结合应用OpenGL 函数都可以开发出三维游戏。但是由于框架开发的平台相关性使游戏无法跨平台编译运行,因此glut+OpenGL 的方式成了一种很好的选择。但是在对复杂框架和各种媒体的支持方面,glut 并不理想。在Linux 下可以采用FLTK 等框架平台技术实现包括按钮在内的比较复杂的框架功能,但是需要专门的Linux 开发环境,众多的Window 环境下的KDE 爱好者明显对此无法适从。相反,SDL(Simple DirectMedia Layer)作为免费的跨平台多媒体应用编程接口,已经被人们广泛用于开发二维游戏,其优秀的消息框架支持、文件支持和声音支持等都使得它成为能与微软DirectX 匹敌的最为成熟的技术之一。

从原理上来说,凡是跨硬件、跨平台的东西,都被包裹着一层糖果外壳,绝对不可能是赤裸裸对各式各样硬件和平台都通用的,至少支持它的硬件厂商要提供驱动程序并遵守相关协议,否则它跨不到这个平台上。有一层壳作中介,说快了一定是自欺欺人,开发快了是真的,但运行不可能比直接操作的还快,最起码它快不过操作系统对它的调度。完全不理睬操作系统的支配性地位和现实,这是不明智的想法。

[ 本帖最后由 TonyDeng 于 2011-10-7 15:32 编辑 ]

授人以渔,不授人以鱼。
2011-10-07 15:24
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
现在DX11已经超越OGL了

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2011-10-07 15:33
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
照你的说法,是想开发硬件啊,自己做CPU,内存 什么的,是不?

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2011-10-07 15:36
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我的看法是:不要过分贬损操作系统!

个人对操作系统有所偏好或选择,是自由的,但不必要对立化,说Linux好微软不好之类,很没意思。工作,总是选定了一个环境,除了工作本身需要不断地跨平台之外,其实没必要太在意那种跨平台可移植性的。毕竟在我这里,开发的软件面向的用户最保守地说也有百分之八十以上是微软Windows平台,我写的程序当然选择在Windows上运行,能不能移植到Linux上,是不作重点考虑的,所以,只要在这个现实的平台上运行良好,那就够了。

何况,我再三地说明,这种最底层的东西(即使简单到向屏幕输出信息那样),也是被操作系统调度的,Windows如此,我想Linux也不例外(DOS倒是真的可以做到)。在这个角度上,说依赖操作系统的确是事实,但却是必须的,因为不管是Windows还是Linux,我都相信不可能让你不依赖它,这就是淘汰DOS的根本原因。

返回来说我1楼的这个程序,其实不过就是Windows API32函数的简单封装而已,等价于DOS时使用INT 21H对操作系统的调用,本身就没写什么代码,处于最贴近操作系统的极限,除了直接操纵硬件,就没可能有比它更直接、更低级的操作手段了,所以它的机器码才会那么少(表面看是C++,但其实拆出来C也是那些代码,我省掉了没用到的功能,就不会有C++的臃肿)。随便写个Hello,world,(用静态库)编译出来的东西都比它大,而这个连编静态库也不过如此(因为_getch()也是调系统功能的,没做复杂的格式化动作)。

[ 本帖最后由 TonyDeng 于 2011-10-7 15:55 编辑 ]

授人以渔,不授人以鱼。
2011-10-07 15:46
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
难得你有闲情在此聊天,不如好好学习下DX11,OPENGL神马的

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2011-10-07 15:51
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
DX11我倒是想学一学,等有需要用到的时候,就会去学。我这人贱,不被现实逼到头是不学的。

授人以渔,不授人以鱼。
2011-10-07 15:56
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
需要用的时候再学就晚了

DX, OGL这些API都是次要的,到了硬件层都一样
流水线,资源管理,场景管理,业务逻辑才是最重要的

话也说回来,其实神马都是浮云啊

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2011-10-07 16:08
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:0 
回复 7楼 TonyDeng
呵呵,我的本本不行啊。。

用心做一件事情就这么简单
2011-10-07 17:38
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:0 
不知道控制台可不可引进鼠标呢。。。。

用心做一件事情就这么简单
2011-10-07 17:39
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
To Flyue:哪里有DX11的基本原理介绍资料?

To 小鱼儿:你本本装什么软件了?我就是要测试发布这样的程序要具备什么条件。控制台可以响应鼠标事件。

授人以渔,不授人以鱼。
2011-10-07 21:11
快速回复:无聊至极,弄了一个控制台游标模块,可用于写贪食蛇游戏
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.107875 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved