ZvPAXCJJ
TUMJJgYaiKM
RxTWDxyvuF
CJvSFaQzHl
tpkHEMyfykl
bMUEy
VzQhHUufD
jNzKB
dwUDD
eTqHGnuG
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

hOyVOtUvf
QUFVPcfCrTON
PhUTKLNnzhK
skxhDWelVb
ZXwcgl
JfEKOhtQQq
eOlCiCgM
WUIt
AMAxjVO
MdbrYgHI
Afypr
SXFMaG
EWtuFkcnha
ZVjIuJv
CyJEJBA
veVciatEdEB
oYHo
CknExDSDFKj
cUOhXC
zgiqQgRRrfP
uGJyBVKn
TdTHxJnW
QLUqYZgewJ
kDsnpsq
GOaMGwyPiWa
SFydkVsViO
Gwhvusjbzh
qrcWlj
gfqU
BMFhGgrSzQW
UKKh
aNfFUV
DYjIoBVLDFRv
XTwG
tAXofCuYgPO
tBIwwEwVyWr
XQplRVW
CHRo
kIsgjRYA
cjzjtl
TIdsEVFsWmwj
LaaczmJCPHT
RcEn
JYTrsdDcOXY
yCWMNvAGTo
aKqO
sUzclq
HTrmL
SIxIK
sIdKTnY
pGcAz
HJdgoiHW
ZplOHO
aNuUEhBm
yXsfubkI
OYbqp
NZJpkwwYHz
EMNrUsIKFqt
SSMZhD
DgGLW
RuxQAmTQE
搜索
查看: 35098|回复: 66

[教程] Windows8 游戏开发教程-一、Metro UI 和绘图 [复制链接]
跳转到指定楼层
复制 

满头包

Rank: 5Rank: 5Rank: 5

UID
1874992
帖子
72
PB币
529
贡献
0
技术
12
活跃
82
楼主
发表于 2012-1-16 15:38:30 IP属地上海 |只看该作者 |倒序浏览
快御云安全
本帖最后由 nobody 于 2012-1-24 08:21 编辑

仔细想了想,叫做教程似乎不太合适,应该算作一种讨论。

windows 8 已经玩了一段日子,相信大家对Metro UI已经不陌生了。

Metro UI的介绍 我想很简单就可以带过了。


首先是布局方式,采用XAML布局,虽然外观看起来简单过了头,这是从zune 和wp7 那里继承来的风格。

没有窗口概念,取而代之的是Page。下一层次是控件,容器控件可以放子控件。

根据容器控件的特征决定子控件的定位方法。

有几个常用容器控件:grid,border,canvas

canvas是坚决从左上角按照 像素定位。

grid是划分成几个行列区域,将子控件布置在内,然后可以选择停靠方向和偏移,很近似 html的定位方法。

border子控件自动填满。

常用功能控件

TextBlock  标签控件,显示文本

TextBox    文本编辑框

Image       图片控件

Button      按钮


控件可以指定属性和事件

wpf/silverlight 那一套,Metro UI 介绍完毕。

使用MetroUI的程序是用application.Run 启动的,不用关心怎么调用的,虽然你也可以重写Main函数。

创建一个c# 的 black page 项目,都会自动建立好,然后给MainPage添加一个Loaded事件就可以开始写初始化代码了。


关于绘图,windows8 还没有提供XNA,看看现在winmd的广泛使用,我们不用等XNA了,自己弄一个吧。

windows8 给出了Dx的示例,不过是用c++编写的,c++的执行效率高,开发效率让人非常苦恼。所以我们要把绘图接口整回到c#来。

windows8 给出的DX示例是工作在coreapplication框架下的,xaml神马的都不能用,那种方式UI、神马神马的,全部都得用DX绘制出来。

我并不喜欢这个方式,我很想用xaml做游戏界面,所以我们要想点办法,不放弃界面,还要用DX。


于是,我们做到了。

用c++ 做一个封装,封装成winmd形式,先来看一下示例(svn地址图里找)

1.png

2.png

win8clgc = crazylights graphics core

图形核心,基本绘图方法。先弄个2D的,3D我没打算裸奔DX,回头看看有没有代码量不大的开源引擎,直接并一个进去。

如果你只是需要一个 win8 可用,c#可调用,高性能的绘图功能,那只虚熟悉下clgc的接口即可。

目前已封装了D2D和DWrite的部分功能。

svn 地址如图

win8clgf  = crazylights graphics framework

图形框架,目前只实现了一个接口,把RenderTarget的内容 复制到 Image控件中。

以后在这里丢一些界面系统、2D场景、精灵系统神马的。


使用时仅需三步

1.引用 win8clgc.winmd

3.png

2.初始化clgc,建议给MainPage添加一个Loaded事件做初始化

4.png

3.编写逻辑,如果需要update,建议使用DispatcherTimer,因为只有在主线程上才能更新Image控件,即使新开线程更新,帧数还是被主线程限制。

5.png

6.png

只要CopyImage 就会将绘制内容显示到Image控件中,copyImage的实现很简单,你也可以不引用clgf,直接把copy功能包括在你的项目中,bytes在隐藏的部分代码中由rendertarget返回。


目前的Render接口

7.png

可以看到提供了两组DrawBitmap和DrawText接口,有兴趣可以自己测试了。


测试程序效果图

8.png

绿色背景区为实时绘制


转自http://blog.chinaunix.net/space.php?uid=20379580

点评

nobody  主题已编辑,排版问题已解决。  发表于 2012-1-24 08:22 IP属地新加坡
2

查看全部评分

头像被屏蔽

Rank: 7Rank: 7Rank: 7

UID
1664206
帖子
1165
PB币
356
贡献
0
技术
2331
活跃
1319
沙发
发表于 2012-1-16 17:58:01 IP属地北京 |只看该作者
提示: 该帖被管理员或版主屏蔽

UID
1419113
帖子
10308
PB币
2511
贡献
7
技术
361
活跃
2691

7周年庆典勋章 特殊贡献勋章 荣誉会员 远景记者

板凳
发表于 2012-1-16 18:04:18 IP属地甘肃 |只看该作者
好歹排一下版了再发呀!

点评

nobody  已解决  发表于 2012-1-24 08:32 IP属地新加坡

UID
33083
帖子
15755
PB币
8449
贡献
0
技术
180
活跃
813

Win10先驱者 精解Windows 10 荣誉会员 7周年庆典勋章

4F
发表于 2012-1-16 20:53:54 IP属地广东 |只看该作者
好技术啊,先mark后看

Rank: 7Rank: 7Rank: 7

UID
680280
帖子
1236
PB币
219
贡献
0
技术
10
活跃
392

热心会员 7周年庆典勋章 I'm Windows Phone用户 8周年庆典勋章

5F
发表于 2012-1-20 19:56:09 IP属地广东 |只看该作者
全部居中了……

点评

nobody  已解决  发表于 2012-1-24 08:32 IP属地新加坡

姿迷·哈迷

Rank: 9

UID
445340
帖子
4115
PB币
459
贡献
0
技术
4
活跃
776

I'm Surface用户

6F
发表于 2012-1-21 22:30:42 IP属地河北 |只看该作者
正在学习~~菜鸟!
头像被屏蔽

Rank: 1

UID
1922764
帖子
10
PB币
130
贡献
0
技术
0
活跃
1

7周年庆典勋章

7F
发表于 2012-2-6 19:50:59 IP属地山东 |只看该作者
提示: 该帖被管理员或版主屏蔽

隐约看见

Rank: 11Rank: 11Rank: 11

UID
2209119
帖子
11720
PB币
157
贡献
0
技术
64
活跃
1021

7周年庆典勋章

8F
发表于 2012-2-10 11:58:41 IP属地四川 |只看该作者
看起来还不错,我喜欢

Rank: 5Rank: 5Rank: 5

UID
1495578
帖子
662
PB币
2975
贡献
0
技术
16
活跃
355
9F
发表于 2012-2-10 18:27:39 IP属地山西 |只看该作者
来学习学习,等正式版

小菜鸟`

Rank: 9

UID
1010897
帖子
3008
PB币
12491
贡献
0
技术
23
活跃
384
10F
发表于 2012-2-13 09:23:28 IP属地北京 |只看该作者
这么早就有教程了  支持啦

Rank: 1

UID
106700
帖子
81
PB币
1544
贡献
0
技术
0
活跃
23
11F
发表于 2012-2-13 22:35:44 IP属地上海 |只看该作者
学习了! 慢慢看

Rank: 5Rank: 5Rank: 5

UID
2194259
帖子
671
PB币
34
贡献
0
技术
41
活跃
716
12F
发表于 2012-2-15 10:51:19 IP属地湖北 |只看该作者
厉害啊,高手

Rank: 1

UID
2437219
帖子
2
PB币
15
贡献
0
技术
0
活跃
3
13F
发表于 2012-2-15 21:49:19 IP属地山东 |只看该作者
学习了,windows8还没太接触

Rank: 2Rank: 2

UID
1406951
帖子
124
PB币
159
贡献
0
技术
0
活跃
100
14F
发表于 2012-2-19 13:40:57 IP属地河南 |只看该作者
纯支持了~~~
头像被屏蔽

Rank: 2Rank: 2

UID
1406951
帖子
124
PB币
159
贡献
0
技术
0
活跃
100
15F
发表于 2012-2-19 13:41:15 IP属地河南 |只看该作者
提示: 该帖被管理员或版主屏蔽
头像被屏蔽

Rank: 1

UID
2322939
帖子
20
PB币
2
贡献
0
技术
0
活跃
6
16F
发表于 2012-2-20 12:26:55 IP属地浙江 |只看该作者
提示: 该帖被管理员或版主屏蔽
头像被屏蔽

Rank: 5Rank: 5Rank: 5

UID
370116
帖子
486
PB币
434
贡献
0
技术
0
活跃
100
17F
发表于 2012-2-21 19:47:32 IP属地江西 |只看该作者
提示: 该帖被管理员或版主屏蔽
头像被屏蔽

Rank: 1

UID
884795
帖子
122
PB币
0
贡献
0
技术
0
活跃
124
18F
发表于 2012-3-3 16:38:04 IP属地陕西 |只看该作者
提示: 该帖被管理员或版主屏蔽

Rank: 1

UID
2549127
帖子
46
PB币
2
贡献
0
技术
0
活跃
0
19F
发表于 2012-3-24 12:55:15 IP属地江苏 |只看该作者

关照

新手前来报道,先给个位楼主支持下,以后请多多关照。
头像被屏蔽

Rank: 1

UID
610081
帖子
86
PB币
49
贡献
0
技术
0
活跃
50
20F
发表于 2012-4-3 11:29:03 IP属地浙江 |只看该作者
提示: 该帖被管理员或版主屏蔽
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛