作者ddavid (谎言接线生)
看板GameDesign
标题Re: [程式] C# 还是C++?
时间Mon Aug 2 00:30:44 2010
: 推 F23ko:C# 2010到底出来了没啊..... 中文版.... 07/31 02:33
: → F23ko:刚刚试着在xna中加入WPF视窗,结果失败 囧.... 07/31 02:35
: → F23ko:发出呼叫的执行绪必须是 STA,因为许多 UI 元件都这样要求。 07/31 02:35
: → F23ko:( ̄▽ ̄#)﹏﹏ 就是要逼人在xna用图片拼视窗就是了啦..... 07/31 02:37
: → teexit:XNA 图片拚视窗也不错啊..一个RT+sprite不就好了? 08/01 03:00
: 推 teexit:XNA和DX我觉得差很多... 唯一有关联的感觉是SHADER... 08/01 03:03
: → teexit:不过也只限於DX9的SHADER... 要学DX还是重摸一下比较好 08/01 03:04
: → teexit:XNA对目前的我来感觉就是方便的工具... 写小的render程式 08/01 03:05
: → teexit:很快... 08/01 03:05
: 推 F23ko:考虑以後做游戏使用上的通用性,我想要直接给不同参数就能做 08/01 09:33
: → F23ko:不同外观、目的的视窗..... 08/01 09:34
: → F23ko:在学的同时,我打算一点一点的写出属於自己的Libray 08/01 09:35
至少在游戏上,我会建议用图片拼视窗。直接采用Windows的视窗去做变化处理
,初期看来方便,但後来反而会受限,要花更多功夫去处理。大多数的商业游戏也都
只用一个基本窗或是根本就只用全萤幕,里面自己画。
比如说你要一个基本背景窗跟讯息窗,从Windows既有的视窗来改也许是很快,
看起来也不错。但是当你要能够全萤幕时怎麽办呢?你又没办法将两个窗用分割的方
式来一起分占全萤幕,结果你还是得合成一窗用拼的。如果你一开始就在一个基本窗
去思考,这就只是一个用很简单的半透明贴图把讯息区块贴在游戏背景区块上。另外
还有各窗的讯息传递也是一个虽然不算难可是很烦的问题。要是整合在一个窗里面自
己画成多个窗,最起码你完全不会碰到这个问题。
事实上视窗也是人画出来的,并不是电脑中真的有个视窗的观念。所以你如果要
通用性,反而开全萤幕自己画能够最有变化。想想看你如果要用原本Windows窗去改
,那你想要弄出一个包括内容都倾斜45度的讯息视窗,你需要为了Windows原本的设
计规范而去处理、调整多少细节(像非矩形视窗、讯息显示方向之类)?可是用图拼
画的话你会发现只要正常画出讯息区块暂存起来,然後整个旋转45度贴图就搞定了XD
当然也不是说什麽都是自己画会比较方便,但是要通用性的话有些还是这样反而
便利,毕竟Windows的视窗其实本来就不是为了游戏设计可以乱搞而设计的XD
--
「如果你还知道墙壁或地板是硬的,就不该老是去用头撞啊!」
「你在说什麽,为什麽我会没事去用头撞墙撞地板啊!」
「不然,还有什麽理由能解释你怎麽这麽笨啊!」
--兰娜.席斯塔
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.250.175.242
1F:推 F23ko:现在就打算自己画了..... orz.... 08/02 10:52
2F:→ F23ko:但我可不打算选单画一个、装备栏画一个、人物属性栏画一个之 08/02 10:53
3F:→ F23ko:类的.... 08/02 10:53
4F:→ F23ko:虽然..... 之前翻过许多的素材资料夹,我知道很多游戏都是直 08/02 10:54
5F:→ F23ko:接画一张图就当作视窗了。 囧.... 08/02 10:55
6F:推 F23ko:大富翁五连参数设定都用txt档来设定,改起来很好玩 XD 08/02 11:34
7F:推 a1234957:大富翁五是个烂范例 08/02 17:10
8F:→ ddavid:可是事实上要更通用就应该要各别画才对。这样你就可以定义 08/02 18:58
9F:→ ddavid:自己的视窗class,然後每个视窗都各自存下自己的外形、背景 08/02 18:59
10F:→ ddavid:、自己的绝对位置跟背景相对位置等等了。你要是全部画一张 08/02 19:00
11F:→ ddavid:就不能在游戏中即时拉过来拉过去了。当然把整张图分割个别 08/02 19:01
12F:→ ddavid:贴也是可以啦,这样做意义上就是跟分开画一样了。 08/02 19:02
14F:推 F23ko:三张图拼出背景 08/04 01:08
15F:→ F23ko:然後依照需要,可以把元件给摆到背景上面 08/04 01:09
16F:→ F23ko:orz.... 用讲的不清楚,写出来後一看就知道了 08/04 01:10
17F:推 F23ko:现在在弄边边的问题,边缘只能用直角吗? = = 08/04 01:12
18F:→ virkful:不是方型的视窗应该很烦吧.. 你大可视窗仍然是方形 08/04 09:44
19F:→ virkful:图片另外贴你自己想要的形状 08/04 09:45
20F:→ F23ko:边缘不漂亮.... 想削成圆角。虽然可以另外准备素材来解决, 08/04 10:29
21F:→ F23ko:但是,这样一来就不能用渐层了...... 08/04 10:30
22F:推 F23ko:直线可以靠贴一张1x1的Texture2D,变形成线去解决,颜色可以 08/04 10:33
23F:→ F23ko:靠过滤色彩去完成 08/04 10:34
24F:→ F23ko:渐层面可以靠先画好後贴图进去解决,但只能是矩形.... 08/04 10:35
25F:→ F23ko:或者是.... 一个像素一个像素贴图,靠过滤色彩填色,只是... 08/04 10:36
26F:→ F23ko:.... 贴800x600张 1x1的图不用想也知道效能会很差.... 08/04 10:36
27F:→ Splash5:pixel shader?... 08/04 12:02
28F:推 F23ko:找到这个类别了,可是不知道怎麽用.... orz.... 08/04 14:23
29F:→ virkful:你四个角落再用小方块去补,就能尽量让视窗呈现成你要的 08/04 19:09
31F:→ F23ko:WASD移动 ↑↓←→缩放 拖曳、MouseClick、边框等等都还没 08/05 10:18
32F:→ F23ko:写..... 加入元件之类的也还没做..... 看来是大工程..... 08/05 10:18
33F:推 F23ko:觉得绘图的弹性不够大,会重写。 08/05 10:25