`

[教程] Windows8 游戏开发教程-一、Metro UI 和绘图

 
阅读更多

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

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

2012-1-16 15:35 上传
下载附件(62.77 KB)
 

 

 

 

2.png

2012-1-16 15:35 上传
下载附件(102.81 KB)
 

 

 

 

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

2012-1-16 15:36 上传
下载附件(87.75 KB)
 

 

 

 

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

4.png

2012-1-16 15:36 上传
下载附件(119.28 KB)
 

 

 

 

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

5.png

2012-1-16 15:36 上传
下载附件(69.26 KB)
 

 

 

 

6.png

2012-1-16 15:36 上传
下载附件(75.59 KB)
 

 

 

 

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

 

目前的Render接口

7.png

2012-1-16 15:36 上传
下载附件(108.66 KB)
 

 

 

 

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

 

测试程序效果图

8.png

分享到:
评论

相关推荐

    Flat-UI metro UI开发必备

    然后,我们聊聊Metro UI,它是微软在Windows 8及之后操作系统中引入的设计语言,也称为“Modern UI”或“Windows UI”。 Metro UI强调磁贴(Tile)设计,这些磁贴可以动态更新内容,提供丰富的信息展示。其设计原则...

    Metro-UI-CSS

    其易用性、丰富的组件库和响应式设计,使得它在开发Windows 8风格的Web应用时成为首选的前端框架之一。通过不断学习和实践,开发者可以充分利用.Metro-UI-CSS 的潜力,创建出引人注目的Web体验。

    windows8 Metro-UI-CSS-master

    Windows 8的Metro UI设计语言强调简洁、清晰和响应式的设计,以适应各种设备,包括桌面、平板电脑和手机。这种设计风格以其大胆的色彩、大块的磁贴(Tiles)以及平滑的动画效果著称,旨在提供一种更高效、更直观的...

    Metro UI(windows UI)风格的图片

    Metro UI,又称Windows UI,是微软在Windows Phone 7、Windows 8以及Xbox等操作系统中引入的一种设计语言,它以其简洁、清晰和信息密度高的特点,为用户提供了全新的交互体验。这种设计风格强调内容优先,减少视觉...

    Windows8 MetroUI 助手 1.016 Beta BuildT:1212101036

    Windows8 Modern(Metro)界面程序管理工具。集离线部署、卸载、清理和破解于一身,并可对metro界面程序设置代理访问Internet,功能超强!

    jQueryUI MetroUI WindowUI 主题

    总的来说,"jQueryUI MetroUI WindowUI"主题为开发者提供了一种将Windows 8 Metro UI风格引入jQuery UI项目的方法,通过调整和定制这些组件,可以为网站或应用带来现代化的外观和感觉。同时,了解如何利用jQUIT ...

    非常好看的Metro-UI-CSS

    Metro UI CSS 是一个基于 CSS3 开发的前端框架,它为网页设计提供了现代、简洁且类似 Windows 8 Metro 风格的界面元素。这个框架主要用于构建响应式和触摸友好的网页应用,使得开发者能够轻松地创建出具有鲜明视觉...

    VB.NET制作Windows8 MetroUI Form 风格界面

    在VB.NET中创建Windows 8 Metro UI Form风格的界面,是一种让应用程序看起来更现代、更接近Windows 8或Windows 10系统界面的设计方法。这种风格的界面通常以简洁、色彩鲜明、大图标和触控友好为特点。下面将详细介绍...

    Metro-UI HTML5

    Windows 8操作系统引入了一种新的用户界面设计语言,被称为“Modern UI”或“Metro Style”,其特征是色彩鲜明、简洁明快的方块布局,这种设计风格后来也被应用到Web开发中。Metro UI CSS正是基于这种设计理念,为...

    Metro UI CSS学习笔记Demo

    【标题】"Metro UI CSS学习笔记Demo"是一个关于利用Metro UI CSS框架进行Web设计和开发的实践案例集合。这个框架灵感来源于Windows 8的Modern UI风格,为网页设计师提供了构建现代、简洁且互动性强的界面的可能性。...

    Metro-UI-CSS-master.zip

    由于其易用性和现代感,Metro UI CSS Master 在创建Windows 8风格的Web应用时特别受欢迎,但也适合其他希望采用类似风格的设计项目。在实际开发中,结合JavaScript库(如jQuery)和响应式设计技术,可以进一步增强...

    安卓开发-MetroUI.zip

    在Android开发领域,MetroUI是一种设计风格,它借鉴了微软Windows 8和Windows Phone的用户界面设计理念,以创建简洁、现代且富有视觉吸引力的界面。这种风格通常包括大块的彩色瓷砖,用于展示应用程序或功能,提供...

    android-metro-ui

    【标题】"Android-Metro-UI" 是一个专为Android平台设计的用户界面框架,灵感来源于Windows Phone的Metro设计风格。这个项目由Eephone开发并维护,版本号为1.1,它提供了现代化、简洁且直观的界面元素,旨在帮助...

    MetroUI.zip

    “MetroUI”这个名字来源于微软的Windows Phone系统界面风格,其特征是简洁的磁贴设计和动态更新。在Android平台上,开发者通常会根据自己的需求定制用户界面,以提供独特的交互体验。MetroUI的设计理念就是提供一个...

    黑色个性仿Windows 8 Metro界面网站模板-metro界面 磁贴 交互

    Metro界面,也被称为Modern UI或Windows 8风格,以其简洁、大块的磁贴设计和强烈的视觉效果而知名。这种设计语言强调用户体验,尤其适用于触摸设备,通过直观的布局和清晰的图形元素,提供高效的信息展示和导航。 ...

    win8 UI metro colore

    根据提供的信息,我们可以了解到这篇内容主要涉及Windows 8(以下简称Win8)的Metro UI界面的颜色配置,以及在花瓣网站上的一些交互操作。接下来,我们将详细探讨Win8的UI设计风格,特别是Metro界面的设计理念和颜色...

    Android高级应用源码-MetroUI.zip

    《Android高级应用源码-MetroUI》是一款基于Android平台的高级用户界面框架,它借鉴了Windows 8的Metro设计风格,旨在为Android用户提供简洁、直观且富有动态感的交互体验。这个源码库包含了实现这一设计风格所需的...

    在Android上模拟MetroUI

    标题“在Android上模拟MetroUI”指的是在Android平台上创建一个用户界面,该界面的设计风格类似于微软Windows 8的Metro UI。这种设计风格以其简洁、现代和触控友好的特性而闻名,通常包括大块的彩色瓷砖和清晰的字体...

    metro-ui-css-2.0.1-1385960404110

    Metro UI CSS是一个基于Twitter Bootstrap框架的开源项目,它为Web开发提供了现代、简洁且富有Windows 8 Metro风格的界面设计元素。 在 Metro UI CSS 中,开发者可以利用预定义的CSS类和JavaScript插件快速构建具有...

Global site tag (gtag.js) - Google Analytics