tokenpocket官网苹果版下载|xna
同样是用 C# 做游戏,为什么 XNA 非常失败,Unity 却成功了? - 知乎
同样是用 C# 做游戏,为什么 XNA 非常失败,Unity 却成功了? - 知乎首页知乎知学堂发现等你来答切换模式登录/注册Unity(游戏引擎)C#同样是用 C# 做游戏,为什么 XNA 非常失败,Unity 却成功了?关注者167被浏览134,437关注问题写回答邀请回答好问题2 条评论分享18 个回答默认排序Milo Yip2016 年度新知答主 关注Unity 的成功始于手游(iOS及Android)。XNA 支持 Windows、Xbox 360(仅能发布给每年付99美金的会员)及——Windows Phone ⋯⋯编辑于 2017-08-24 23:10赞同 8110 条评论分享收藏喜欢收起一张钞票 关注unity跟xna完全就不是一个东西,如何比较。unity提供了完整的界面,托托拽拽轻松撸个小游戏,又赶上了移动浪潮,而且还免费。xna就是个代码框架,其他什么都不管。门槛越低,越傻瓜化的工具,在铺量的阶段才有绝对优势。C#根本不是重点。编辑于 2017-08-25 14:57赞同 76添加评论分享收藏喜欢
C#开发跨平台游戏——MonoGame简介及教程 – XNA(MonoGame)游戏开发
C#开发跨平台游戏——MonoGame简介及教程 – XNA(MonoGame)游戏开发
跳转到内容
XNA(MonoGame)游戏开发使用C#开发跨平台游戏
搜索
搜索:
搜索
菜单
首页
刷机
视频&教程
游戏开发教程
iOS
UWP
Android
Xamarin
C#开发跨平台游戏——MonoGame简介及教程
发表于:
2019年12月26日
2023年1月27日
分类:
C#开发跨平台游戏
标签:
MonoGame, 简介
28,237 views
MonoGame是Microsoft XNA 4.0 Framework开源实现。使用MonoGame可以很容易的开发、调试跨平台游戏,并且可以进行代码的高效复用。MonoGame的跨平台得益于Xamarin。
基于Xamarin,MonoGame可以在windows上同时打开iOS,Android,Windows通用平台(UWP)模拟器来调试游戏,而无需导出相应系统平台的源码来调试编译!
如果对Xamarin有所了解,使用MonoGame会有事半功倍的效果!
微软收购Xamarin以前:
虽说MonoGame是开源免费的,但该游戏引擎的跨平台基于Xamarin,Xamarin本身是商业软件每年需要个人支付998美元/年,企业级授权更贵。(使用MonoGame开发iOS,Android,MacOS需要安装Xamarin。仅开发windows游戏无需安装Xamarin)
如今:
Xamarin被微软收购,也就是说开发者每年能节省998美元授权费!熟悉XNA的开发者可以很容易的将Windows,Windows Phone的游戏移植到iOS和android(Windows Phone现状大家都懂的)。而无需重新学习新的游戏开发技术。
MonoGame目前支持的平台包括iOS, Android, Windows全平台(包括桌面版,Windows Store 也就是windows8.x,Windows Phone,Windows通用平台——UWP即Windows 10 pc和Windows 10 mobile),MacOS,Xbox One,Linux,OUYA,PS4,PSVita 。目前最新版本:3.7.1
本教程涉及平台包括iOS,Android,Windows通用平台(UWP),MacOS。
本站详细教程:https://www.xnadevelop.com/category/csharp-developing-cross-platform-games/
C#开发跨平台游戏——XNA简介
C#开发跨平台游戏——MONOGAME简介
C#开发跨平台游戏——安装VISUAL STUDIO 2017
C#开发跨平台游戏——VISUAL STUDIO 2017安装XNA
C#开发跨平台游戏——VISUAL STUDIO 2017安装MONOGAME
C#开发跨平台游戏——编写第一个C#游戏
C#开发跨平台游戏——在游戏中使用中文
C#开发跨平台游戏——游戏的全屏窗口及退出
C#开发跨平台游戏——设置游戏的窗口大小及分辨率
C#开发跨平台游戏——在游戏中显示系统默认鼠标及鼠标的基本使用
C#开发跨平台游戏——自定义游戏鼠标光标
C#开发跨平台游戏——游戏中按钮的实现
C#开发跨平台游戏——在游戏中使用背景音乐和按钮音效
C#开发跨平台游戏——游戏中使用多张图片实现动画
C#开发跨平台游戏——项目实战《选老婆》
C#开发跨平台游戏——将《选老婆》发给朋友玩
C#开发跨平台游戏——使用MonoGame将《选老婆》移植到UWP平台
C#开发跨平台游戏——使用MONOGAME将《选老婆》移植到WINDOWS平台
C#开发跨平台游戏——MACOS平台之安装VISUAL STUDIO MONOGAME
C#开发跨平台游戏——FNA的安装及使用
C#开发跨平台游戏——使用MONOGAMEBRIDGE将MONOGAME游戏编译成JAVASCRIPT运行于WEB平台
C#开发跨平台游戏——在MONOGAME/XNA中使用游戏手柄GAMEPAD
C#开发跨平台游戏——在LINUX(UBUNTU)平台安装和使用MONOGAME开发游戏
C#开发跨平台游戏——在MONOGAME/XNA中使用键盘KEYBOARD
C#开发跨平台游戏——在MONOGAME/XNA中使用触控操作TOUCHPANEL
C#开发跨平台游戏——在MONOGAME/XNA中使用触控手势GESTURE
接下去的教程会以视频形式呈现,视频比文字更为直观。
我会利用空余时间写一些学习编程的文章,希望大家喜欢。不定期更新
C#开发跨平台游戏视频教程——安装游戏开发环境及项目模板
C#开发跨平台游戏视频教程——在游戏中显示文字
C#开发跨平台游戏视频教程——在游戏中显示中文
C#开发跨平台游戏视频教程——设置游戏分辨率并全屏显示
C#开发跨平台游戏视频教程——游戏中窗口模式与全屏模式的切换
C#开发跨平台游戏视频教程——在游戏中显示图片
C#开发跨平台游戏视频教程——游戏的执行过程
C#开发跨平台游戏视频教程——使用键盘控制和操作游戏精灵(图片)
C#开发跨平台游戏视频教程——在游戏中自定义鼠标光标
C#开发跨平台游戏视频教程——在游戏中实现按钮
C#开发跨平台游戏视频教程——实现游戏场景
C#开发跨平台游戏视频教程——游戏场景的切换
C#开发跨平台游戏视频教程——播放游戏背景音乐
C#开发跨平台游戏视频教程——播放游戏音效
C#开发跨平台游戏视频教程——多张图片合成动画
C#开发跨平台游戏视频教程——修改多张图片合成动画的播放速度(快慢)
C#开发跨平台游戏视频教程——在游戏中旋转图片(精灵)
C#开发跨平台游戏视频教程——在游戏中翻转图片(精灵)
参考资料
本教程官网:www.xnadevelop.com
MonoGame官网:www.monogame.net
MonoGame游戏展示:http://www.monogame.net/showcase/
MonoGame源码:https://github.com/MonoGame/MonoGame
MonoGame NuGet:https://www.nuget.org/packages?q=monogame
最新MonoGame开发版下载安装:http://teamcity.monogame.net 点击Log in as guest 既可以进入。可以找当最新的编译版本,比较复杂新手误入
如果您对C#游戏开发感兴趣,可以扫下面二维码加入我们的QQ群来一起学习交流
原创文章,转载请注明本文链接地址(违者必究):C#开发跨平台游戏——MonoGame简介及教程
文章导航
前一页 上一篇: C#开发跨平台游戏——XNA简介后一页 下一篇: C#开发跨平台游戏——安装Visual Studio 2017
alex
465RSS订阅
C#开发跨平台游戏
XNA简介
MONOGAME简介
安装VISUAL STUDIO 2017
VISUAL STUDIO 2017安装XNA
VISUAL STUDIO 2017安装MONOGAME
编写第一个C#游戏
在游戏中使用中文
游戏的全屏窗口及退出
设置游戏的窗口大小及分辨率
在游戏中显示系统默认鼠标及鼠标的基本使用
自定义游戏鼠标光标
游戏中按钮的实现
在游戏中使用背景音乐和按钮音效
游戏中使用多张图片实现动画
项目实战《选老婆》
将《选老婆》发给朋友玩
使用MonoGame将《选老婆》移植到UWP平台
使用MONOGAME将《选老婆》移植到WINDOWS平台
MACOS平台之安装VISUAL STUDIO MONOGAME
FNA的安装及使用
使用MONOGAMEBRIDGE将MONOGAME游戏编译成JAVASCRIPT运行于WEB平台
在MONOGAME/XNA中使用游戏手柄GAMEPAD
使用MONOGAME开发Linux游戏
在MONOGAME/XNA中使用键盘KEYBOARD
在MONOGAME/XNA中使用触控操作TOUCHPANEL
在MONOGAME/XNA中使用触控手势GESTURE
近期文章
UWP新增ARM64的编译打包出现 project file doesn’t list ‘win10-arm64-aot’错误的解决办法
obj\wappublish\win-x64\project.assets.json’ not found 解决办法
打包成misx发布到微软应用商店无法加载C++dll动态链接库组件的解决方法和思路
使用Visual Studio 2022 打包arm64的msix解决”arm64”不是选项“platform”的有效设置错误
发布微软商店应用时调试模式运行没问题,打包后运行出错的解决办法
分类目录
Android
C#开发跨平台游戏
C#开发跨平台游戏视频教程
Desktop Bridge
FNA
github
iOS
iPhone
Linux
macOS
MonoGame
NAS
QT
Raspberry Pi
UNRAID
UWP
Web
Windows
Windows Phone
Windows11
WindowsDesktop
WinUI3
Xamarin
主题商店/动态桌面使用文档
数据库
未分类
站务
标签
相关工具下载MonoGame官网
MonoGame源码
MonoGame参考文档
MonoGame实例代码
NuGet
MonoGame.Extended
XNA.JS
Visual Studio 2017
Xamarin Studio
XNA Game Studio
Microsoft XNA Documentation
MonoGame Demo
MonoGame视频教程
MonoGame支持中文工具
MonoGame维基百科
MonoGame-Tutorial-Series
微软官方MonoGame文档
FNA-XNA
友情链接UWP开发
© 2024 XNA(MonoGame)游戏开发.
由 WordPress 强力驱动.
WordStar,
主题由Linesh Jose提供
浙ICP备10206719号-1
请使用 扫码支付
XNA(游戏开发套件)_百度百科
游戏开发套件)_百度百科 网页新闻贴吧知道网盘图片视频地图文库资讯采购百科百度首页登录注册进入词条全站搜索帮助首页秒懂百科特色百科知识专题加入百科百科团队权威合作下载百科APP个人中心XNA是一个多义词,请在下列义项上选择浏览(共2个义项)添加义项收藏查看我的收藏0有用+10XNA播报讨论上传视频游戏开发套件XNA中的X表示能够在WindowsXbox和合作伙伴之间达到跨平台的强大的软件工具。N表示“下一代(Next-generation)”,A表示“架构(Architecture)”。XNA是基于DirectX的游戏开发环境,是微软对于 Managed DirectX 的修正及扩充版本。XNA Game Studio Express 是专业跨平台整合型游戏开发套件「XNA Studio」的简化版,以「Visual C# Express 2005」为基础,并针对业余创作者加以改良,提供简易的开发环境与详细的教学文件。中文名XNA外文名XNA针 对业余创作者加以改良提 供开发环境与详细的教学文件。目录1开发背景2详细介绍3系统特点开发背景播报编辑美国微软于 8 月 13 日发表针对业余创作者所设计的游戏开发套件「XNA Game Studio Express」,提供没有专门开发器材的一般 PC Windows XP 使用者开发跨 Xbox 360 与 PC 平台游戏的管道.XNA是Microsoft的下一代软件开发平台,致力于帮助开发者更快地开发更好的游戏。XNA被微软公司开发,并且开始于多年前,但是保持地非常秘密。在2004年GDC(年度最大的游戏开发讨论会)上微软第一次宣布XNA。XNA不仅仅像DirectX一样是个框架;它还包含很多工具,甚至是一个自定义的IDE。因为直到2006年,还没有一点工具被发布,DirectX的开发者们仅仅在2004到2006年的DirectX SDK文档的右上角标示了“XNA”的图标。详细介绍播报编辑XNA Game Studio Express 中将包含以 .NET Framework 2.0 为基础、并加入游戏应用所需之函式库所构成的 XNA Framework;由一系列工具所构成、让开发者能以更简易的方式将 3D 内容整合到游戏中的 XNA Framework Content Pipeline;以及教导使用者如何进行游戏开发的入门说明教学文件与范例.所有 Windows 使用者都可以免费下载使用 Windows 版 XNA Game Studio Express,所开发出来的游戏将可以自由在 Windows 平台上进行商业性贩售.至于 Xbox 360 的部分,则必须加入微软「XNA Creators Club」会员,方可于零售版 Xbox 360 主机(硬盘必备)上进行游戏的开发、测试与游玩.欲成为 XNA Creators Club 会员者,可透过 Xbox Live 卖场付费加入,分为 4 个月 49 美元与 1 年 99 美元两种方案.开发出来的游戏可透过 Xbox Live 分享给其它 Creator?s Club 会员游玩,非会员使用者则无法游玩.如果想要在 Xbox 360 平台上进行商业性贩售,则必须使用预定明年春季推出的专业版.XNA Game Studio Express 在2006年 8 月 30 日释出测试版,并于同年底释出正式版.透过完整的函式库、工具与教学说明文件,简易的开发环境以及低廉的费用,XNA Game Studio Express 将可提供有意愿的非专业创作者实现跨 Windows 与 Xbox 360 平台游戏开发的需求,对游戏创作有兴趣的玩家不妨多多留意.XNA最新的XNA版本为4.0, 也支持.NET Framework 4.0,平台为Visual Studio 2012,能实现跨Windows 与 Xbox 360以及Windows Phone平台游戏开发的需求。系统特点播报编辑相对于微软公司以前的手机操作系统来说,在游戏开发技术上,WindowsPhone 7采用XNA技术是一个很大的突破点。归纳起来XNA游戏开发有以下特点:①加快游戏开发的速度。以前使用DirectX来开发Windows平台游戏,游戏开发公司大概花费80%的时间在程序开发上,而在游戏的创意上仅占20%。而使用XNA.NETFramework进行游戏开发,大大减少了开发者的工作量,不仅降低了开发的成本,而且在游戏开发上可以更加关注游戏的创意。②开发的游戏可以在Windows与Xbox 360之间跨平台运行,同时它更加易用,有更高的扩展性。XNA Framework把所有用作游戏编程的底层技术封装起来,由此,游戏开发员就可以把精力大部分专注于游戏内容和构思开发,而不用关心游戏移植至不同平台上的问题,只要游戏开发于XNA的平台上,支持XNA的所有硬件都能运行。③支持2D与3D游戏开发。XNA Framework同时支持2D和3D的游戏开发,也支持XBox360的控制器和震动效果。新手上路成长任务编辑入门编辑规则本人编辑我有疑问内容质疑在线客服官方贴吧意见反馈投诉建议举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封©2024 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 京公网安备110000020000XNA简介 - 哔哩哔哩
介 - 哔哩哔哩 XNA简介xnadevelop关注专栏/XNA简介XNA简介
2020年12月30日 14:10--浏览 ·
--喜欢 ·
--评论
xnadevelop粉丝:6915文章:20
关注XNA全称Microsoft XNA Game Studio,微软推出的用来开发Windows、Xbox、Windows Phone 7游戏开发工具包。最终版本为XNA4.0,虽然微软已经停止更新XNA,但并不代表XNA已经被淘汰!XNA开发的游戏仍旧可以非常稳定的运行在最新的Windows系统上。使用MonoGame或FNA,对XNA源码进行重新编译,可以很方便的将XNA游戏移植到iOS、Android等其他平台。下载地址:https://codeplexarchive.blob.core.windows.net/archive/projects/MXA/MXA.zip 或 http://www.xnadevelop.com/wp-content/uploads/2019/12/XNA-Game-Studio-4.0.5-VS2017.zip本文禁止转载或摘编
编程
游戏开发
C#
分享到:
投诉或建议评论目录----
使用 MonoGame 构建游戏 | Microsoft Learn
使用 MonoGame 构建游戏 | Microsoft Learn
跳转至主内容
此浏览器不再受支持。
请升级到 Microsoft Edge 以使用最新的功能、安全更新和技术支持。
下载 Microsoft Edge
有关 Internet Explorer 和 Microsoft Edge 的详细信息
目录
退出焦点模式
使用英语阅读
保存
使用英语阅读
保存
目录
剧集
使用 MonoGame 构建游戏
On .NET
MonoGame 是 Microsoft XNA 4 框架的开放源代码实现。 它允许开发人员为 iOS、Android、MacOS、Linux、Windows、Xbox 和 PlayStation 创建游戏。在本集中, Brian Peek 开始与我们讨论如何开始使用 MonoGame,并显示一些通过框架构建的有趣游戏[00:31] - 什么是 MonoGame[02:09] - MonoGame 支持什么?[03:02] - 哪些游戏是使用 MonoGame 生成的?[04:37] - 开始使用 MonoGame 需要什么?[06:53] - 学习曲线是什么?[08:25] - 游戏 + 代码演示[11:26] - 如何控制屏幕更新?[13:12] - 如何构建游戏逻辑以供重复使用?[16:24] - 测试体验是什么?[17:31] - 在哪里可以找到要开始使用的资源? 有用链接MonoGame MonoGame 展示MonoGame + CoreRTMonoXNA Game Studio 文档蔚刺客信条奥德赛DirectXXbox Live 创意者计划内部版本 2016 中的 MonoGame 简介
说明
Embed
MonoGame 是 Microsoft XNA 4 框架的开放源代码实现。 它允许开发人员为 iOS、Android、MacOS、Linux、Windows、Xbox 和 PlayStation 创建游戏。在本集中, Brian Peek 开始与我们讨论如何开始使用 MonoGame,并显示一些通过框架构建的有趣游戏[00:31] - 什么是 MonoGame[02:09] - MonoGame 支持什么?[03:02] - 哪些游戏是使用 MonoGame 生成的?[04:37] - 开始使用 MonoGame 需要什么?[06:53] - 学习曲线是什么?[08:25] - 游戏 + 代码演示[11:26] - 如何控制屏幕更新?[13:12] - 如何构建游戏逻辑以供重复使用?[16:24] - 测试体验是什么?[17:31] - 在哪里可以找到要开始使用的资源? 有用链接MonoGame MonoGame 展示MonoGame + CoreRTMonoXNA Game Studio 文档蔚刺客信条奥德赛DirectXXbox Live 创意者计划内部版本 2016 中的 MonoGame 简介
视频 URL
开始时间
复制视频 URL
HTML iframe
播放机大小
1920 x 1080
1280 x 720
640 x 360
开始时间
复制 iframe
想提供反馈? 在此处提交问题。
加州消费者隐私法案 (CCPA) 禁用图标
你的隐私选择
主题
亮
暗
高对比度
早期版本
博客
参与
隐私
使用条款
商标
© Microsoft 2024
加州消费者隐私法案 (CCPA) 禁用图标
你的隐私选择
主题
亮
暗
高对比度
早期版本
博客
参与
隐私
使用条款
商标
© Microsoft 2024
XNA入门教程----(一)-CSDN博客
>XNA入门教程----(一)-CSDN博客
XNA入门教程----(一)
最新推荐文章于 2024-03-06 14:44:52 发布
aa_126621
最新推荐文章于 2024-03-06 14:44:52 发布
阅读量2.9k
收藏
点赞数
文章标签:
c/c++
runtime
原文链接:http://www.cnblogs.com/edwin1986/archive/2010/01/15/XNA_1.html
版权
写在前面:
前阵子看到cnblogs上的牛人用silverlight/WPF写游戏,不由心血来潮也尝试写个。
众所周知,虽说从silverlight2开始ms就提供了Isolated Storage的支持,但是,对于游戏这种大玩意儿,1M空间明显是不够的。于是乎,在silverlight中做游戏,别的不说,其资源的调度就严重依赖于服务器及网络了。
其次,WPF,由于其渲染本身基于directX,比起win32年代的winform更适合做form内的变换和刷新,但终究不非游戏框架,其本质是缺乏对界面消息循环的源生支持。虽说这对于windows app是简化了不少,但对游戏恐怕还不行。
偶然之间,发现ms的XNA,一款为dotnet爱好者准备的游戏开发框架。
何谓XNA:
XNA Framework 是建置于 .NET Framework 2.0上,另外还加入了一些专注于游戏开发上类别库,在指定的平台上使程式码重用达之最大效果。XNA Framework 在一个特别为有管理式游戏运行的通用语言执行层(Common Language Runtime)版本上运行。这个执行层支援Windows XP、Windows Vista和XBox 360。由于游戏是开发在执行层上,使得游戏能在所有支持XNA Framework 的平台上只要很少甚至不需要任何更改便能运行。现时所有在XNA Framework 上的游戏必需使用C #和XNA Game Studio Express IDE开发。
XNA Framework 把所有用作游戏编程的低阶技术包起来,由此,游戏开发员就可以专注于游戏内容开发而不用关心游戏移植至不同平台上的问题,游戏只要开发于XNA 的平台上,所有硬件只要支援XNA都能运行。XNA Framework 还内置一些工具,例如XACT以帮助游戏内容开发。这些工具还能帮助开发视觉和听觉效果和和像真度很高的模型制作。
XNA Framework 同时支持2D 和3D 的游戏开发也支援XBox 360 的控制器和震动效果。Xbox Live卖场可以升级开发者的XNA Game Studio Express 以使能把他们开发的游戏用于Xbox 360上。
由于XNA基于.NET 2.0,其开发效率比C++直接调用DirectX API 快了不少,对于我等业余的游戏开发者,是件好事。
XNA相关:
现在XNA最高版本已升级至3.1,并且加入了对Video的支持,并且需要在VS2008或其Express版本中安装。(至少理论上是,本人本地VS2008+2010+Win7屡次安装遭自动回滚,请教老外结果仍不理想,最终只能硬着头皮再安装个Express用于XNA)
其次,国内现在XNA的相关资源非常之少,严重依赖于相关英文参考。建议大家去看 Learning XNA 3.0-XNA 3.0 Game Development for the PC, Xbox 360, and Zune;XNA 3.0 Game Programming Recipes-A Problem-Solution Approach 和 Beginning XNA 3.0 Game Programming-From Novice to Professional相关的书,我看下来还是非常不错的。
貌似国内不少人正翻译或已经部分翻译此类文。
下载XNA
第一个XNA程序
安装完XNA Framework后,在VS中即出现XNA的相关项目Template. 我们随便创建一个名曰 WindowsGame1的XNA项目。
编译后,出现蓝天白云一片
现在,我们开始尝试在蓝天白云中,增加一些我们自己的元素。
插一句
习惯于windows编程的朋友往往比较习惯对事件的监听或触发。其实,windows本身是基于消息队列的,事件就是不断监听消息并做出相应的处理。 不熟悉的朋友可以在dotnet winForm中重载WndProc即可知晓。
在每个游戏中,都存在消息循环,即不断计算和控制界面不断刷新的循环。XNA也不例外,其Microsoft.Xna.Framework.Game以及我们以后说到的GameComponent都存在着自己的消息循环。
其中,
Initialize用于对游戏界面内一些对象的初始化。
LoadContent用于加载游戏内的一些资源,如图像,文件,声音等。
紧接着,Update和Draw 便开始游戏内的消息循环,前者主要用于相关计算,后者用于绘制。
XNA的默认刷新率是60fps(Frame/Second)
我们首先在Content Directory下添加一张一存在的图片old english sheepdog.png 将其Content Importer和Processor 改为Texture - XNA Framework
请注意,XNA源生的API不支持GIF,如果需要导入则需要自己实现相应的Importer和Processor
插一句
Mircosoft.Xna.Framework.Content.Pipeline 是专门用于处理游戏资源的管道,无论是图像还是声音,3D资源或是XML的处理和编译都是在其之下处理编译的。
编译后,任意资源都会被编译成.XNB(XNA二进制文件)。请注意,虽说XNA能同吃Windows和XBox,但其资源文件编译过程是不同的,不可通用,须重新编译。
紧接着,导入图片后,我们可以紧接着LoadContent以及Update和Draw了
//
新建变量img;用于存储图像
Texture2D img;
//
在LoadContent中增加
this
.img
=
this
.Content.Load
<
Texture2D
>
(
"
old english sheepdog
"
);
其中"old english sheepdog"就是刚才加载的图像的Name属性。
这样,我们便可以直接在Draw方法中,让XNA的每次刷新都画出这样图片了
代码
protected
override
void
Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); spriteBatch.Begin(); spriteBatch.Draw(img,
new
Rectangle(
0
,
0
,
50
,
50
), Color.White); spriteBatch.End();
base
.Draw(gameTime); }
简单解释下以上代码,
GraphicsDevice.Clear(Color.CornflowerBlue);用于擦除当前屏幕内的图像
spriteBatch 通常用于绘制Sprite,即精灵。
请注意,在XNA的一个Game里请避免使用多个 spriteBatch ,并且所有图像的绘制都必须在spriteBatch 的Begin和End之间。
至于 spriteBatch.Draw 具有多个重载, 具体参考
这样,我们第一个图像就诞生了
细心的你发现了吧,游戏界面内没有鼠标光标,那多简单,自己画个。
//
声明全局变量p
Point p;
//
在Update方法中增加
MouseState ms
=
Mouse.GetState(); p
=
new
Point(ms.X, ms.Y);
//
修改Draw方法
spriteBatch.Draw(img,
new
Rectangle(p.X, p.Y,
50
,
50
), Color.White);
这样,鼠标光标,便变成当前图像了。
当然,如果你只需要默认windows鼠标光标作为游戏光标,则不需要这么麻烦
//
在Initialize中
this
.IsMouseVisible
=
true
;
即可。
这样,我们第一个XNA程序便完成了。
相关源代码
To Be Continue....
本系列列表
XNA入门教程----(一) XNA入门教程----(二) 移动控制XNA入门教程----(三) 简单的动画
转载于:https://www.cnblogs.com/edwin1986/archive/2010/01/15/XNA_1.html
优惠劵
aa_126621
关注
关注
0
点赞
踩
0
收藏
觉得还不错?
一键收藏
知道了
0
评论
XNA入门教程----(一)
写在前面:前阵子看到cnblogs上的牛人用silverlight/WPF写游戏,不由心血来潮也尝试写个。众所周知,虽说从silverlight2开始ms就提供了Isolated Storage的支持,但是,对于游戏这种大玩意儿,1M空间明显是不够的。于是乎,在silverlight中做游戏,别的不说,其资源的调度就严重依赖于服务器及网络了。其次,WPF,由于其渲染本身基于d...
复制链接
扫一扫
XNA中文教程《XNA入门指南》第一章
10-22
国内第一本XNA教程中文《XNA入门指南》,经《A Beginners Guild to XNA》原作者 Mike Fleischauer 书面授权中国XNA开发网翻译!书中如有错误请访问www.ChinaXNA.com 或者 www.XNADev.cn
XNA简介
JonnyWei的专栏
06-12
3188
Normal07.8 磅02falsefalsefalseMicrosoftInternetExplorer4
参与评论
您还未登录,请先
登录
后发表或查看评论
XNA游戏开发之2D游戏
august5291的博客
09-10
3197
摘要:以XNA为基础的游戏可以利用3D模型为游戏加入动画效果,也可以利用简单的程序技巧将2维图片显示成动画。虽然2维动画相对3维动画来说简单一些,但是制作出来的游戏其趣味性和挑战性也绝不逊色。今天我们就一块学习一下在使用XNA Framework开发2D游戏时的一些基础知识和注意事项。
主要内容:
1.2D游戏动画的基本原理
2.动画素材的准备
3.一个简单的2D动画
一、2D游戏动画的基本原理
在XNA中制作2D动画的过程很像翻卡通小人书,首先绘制好各种角色造型,然后以固定的时间间隔来显示不同
XNA中文手册 XNA中文手册
03-11
XNA中文手册XNA中文手册XNA中文手册XNA中文手册
XNA3D游戏开发教程
04-06
xna游戏的开发介绍以及编程代码 是学习xna开发的必读之书
xna4.0 中文 + 源码
02-05
xna4.0 中文 + 源码
这个xna教程很不错。源码也在里面。
xna介绍
shuanghusun的专栏
05-07
4682
xna简介: 微软的XNA Frame是明年主推的下一代的游戏开发工具,C#的爱好者们有福了,开发自己的游戏节目,振兴国产游戏,有兴趣的继续向下看!! XNA简介:首先声明,XNA不是游戏引擎,它只是一个游戏开发框架。原来 C# 开发游戏都是使用 Managed DirectX,可惜的是微软已经停止了它的开发,而取而代之的是 XNA。XNA 的目标是用 C# 在 .Net Framework
XNA入门教程(一)
banshu2416的博客
07-12
577
何谓XNA:XNA Framework 是建置于 .NET Framework 2.0上,另外还加入了一些专注于游戏开发上类别库,在指定的平台上使程式码重用达之最大效果。XNA Framework 在一个特别为有管理式游戏运行的通用语言执行层(Common Language Runtime)版本上运行。这个执行层支援Windows XP、Windows Vista和XBox 3...
XNA入门教程----(二) 移动控制
learneryql的专栏
11-30
412
上一章,我们主要介绍了
何谓XNA
并且做了第一个XNA HelloWorld
本文,将紧接着上文. 继续我们的XNA之旅.
上篇的最后,我们通过
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->MouseS
XNA入门教程----(三) 简单的动画
learneryql的专栏
11-30
641
继续我们的XNA之旅...
上周,我们简单的介绍了XNA的相关控制器,并且实现了鼠标和键盘对屏幕内的某个Sprite(精灵)进行简单的位置控制.
但是,美中不足的,我们并没有实现Sprite人物的移动动作,即Animation.
现在,我们继续上周所讲的, 实现简单的动画.
关于Animation
对动画有所了解的朋友对于逐帧动画一定不会陌生.其以最简单的形式,将各动画元件相邻
XNA Beta1 中文教程《XNA入门指南》
05-08
本章我们讲学习音乐和音质的特效,是一本很不错的教程
xna显示中文
03-19
xna显示中文,。.net4.0 xna 4.0 运行通过,在xna中显示中文
XNA Beta1 中文教程《XNA入门指南》XNA入门指南》
05-08
是一本学习XNA Beta1 中文教程很好的教程《XNA入门指南》
wp7 xna开发最强教程
09-12
wp7 xna开发最强教程,让你最快的学习xna开发,能够写出一个小的游戏。
xna4.0教程
08-17
xna4.0教程,pdf文档,简单入门的教材,通俗易懂
XNA 入门经典教程
02-26
XNA Game Studio Express 是专业跨平台整合型游戏开发套件「XNA Studio」的简化版
C++复习笔记——泛型编程模板
最新发布
heitong_fu的博客
03-06
654
函数模板利用关键字 template使用函数模板有两种方式:自动类型推导、显示指定类型int a = 10;int b = 20;//利用模板实现交换//1、自动类型推导//2、显示指定类型mySwapint(a, b);模板的目的是为了提高复用性,将类型参数化使用模板时必须确定出通用数据类型T,并且能够推导出一致的类型函数模板在自动推导时不可以进行隐式类型转换//利用模板提供通用的交换函数T temp = a;a = b;b = temp;
C++函数重载
lh11223326的博客
03-04
593
函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。一定要函数名相同,参数不同(参数个数,或者是类型)才能实现重载函数类型不算。cout
C语言哈希表用法
weixin_53500185的博客
03-06
359
哈希表在头文件“utash.h”中已经有了,只需简单学习用法即可例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考。
xna 渲染到指定 控件
12-31
XNA是一个游戏开发框架,主要用于开发Microsoft平台上的游戏。在XNA中,我们可以通过使用GraphicsDevice类的方法来渲染图形和文本到指定控件上。
首先,我们需要在程序的窗口或者用户界面中创建一个控件,在WinForms应用程序中,可以使用Panel、PictureBox或者自定义的控件继承类来作为XNA渲染的目标。
接下来,我们需要在XNA游戏的初始化方法中获取目标控件的句柄(handle),例如使用Panel控件,可以通过panel1.Handle获取其句柄,或者使用PictureBox控件,可以通过pictureBox1.Handle获取句柄。
然后,我们需要在XNA游戏的Update和Draw方法中,将GraphicsDevice的Present方法的参数设置为获取到的控件句柄,以便将图形渲染到指定的控件上,代码示例如下:
```csharp
// 获取目标控件的句柄
IntPtr handle = panel1.Handle;
protected override void Update(GameTime gameTime)
{
GraphicsDevice.Present(handle);
// 更新游戏逻辑
// ...
}
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Present(handle);
// 渲染游戏画面
// ...
}
```
在这样设置之后,XNA的渲染就会将图形和文本渲染到指定的控件上。
需要注意的是,在使用XNA渲染到指定控件时,我们还需要在项目的引用中添加System.Windows.Forms并在文件中添加using System.Windows.Forms,这样才能使用控件的相关功能。
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
aa_126621
CSDN认证博客专家
CSDN认证企业博客
码龄9年
暂无认证
0
原创
-
周排名
212万+
总排名
4889
访问
等级
33
积分
0
粉丝
0
获赞
0
评论
3
收藏
私信
关注
热门文章
XNA入门教程----(一)
2969
AI之图像识别
321
请教:关于socket的数据同步问题
287
XNA入门教程----(二) 移动控制
194
自己写了个Ioc框架----SummerFramework
189
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
DotNet 4 学习笔记之 2-------------Dynamic 初步
Code7 Contest 的杯具
XNA入门教程----(二) 移动控制
2019年13篇
目录
目录
最新文章
DotNet 4 学习笔记之 2-------------Dynamic 初步
Code7 Contest 的杯具
XNA入门教程----(二) 移动控制
2019年13篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
个
红包个数最小为10个
红包总金额
元
红包金额最低5元
余额支付
当前余额3.43元
前往充值 >
需支付:10.00元
取消
确定
下一步
知道了
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom 发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。
余额充值
XNA(MonoGame)游戏开发 – 使用C#开发跨平台游戏
>XNA(MonoGame)游戏开发 – 使用C#开发跨平台游戏
跳转到内容
XNA(MonoGame)游戏开发使用C#开发跨平台游戏
搜索
搜索:
搜索
菜单
首页
刷机
视频&教程
游戏开发教程
iOS
UWP
Android
Xamarin
UWP新增ARM64的编译打包出现 project file doesn’t list ‘win10-arm64-aot’错误的解决办法
Your project file doesn't list 'win10-arm64-aot' as a "RuntimeIdentifier". You should add 'win10-arm64-aot' to the "RuntimeIdentifiers" property in your project file and then re-run NuGet restore
发表于:
2023年8月24日
2023年11月14日
作者:
alex
分类:
UWP
1,073 views
obj\wappublish\win-x64\project.assets.json’ not found 解决办法
发表于:
2023年7月22日
2023年11月13日
作者:
alex
分类:
UWP, Windows
1,004 views
打包成misx发布到微软应用商店无法加载C++dll动态链接库组件的解决方法和思路
发表于:
2023年7月21日
2023年7月22日
作者:
alex
分类:
Desktop Bridge, UWP, Windows
874 views
使用Visual Studio 2022 打包arm64的msix解决”arm64”不是选项“platform”的有效设置错误
发表于:
2023年7月21日
2023年11月16日
作者:
alex
分类:
UWP, Windows
1,349 views
发布微软商店应用时调试模式运行没问题,打包后运行出错的解决办法
发表于:
2023年7月21日
2023年7月21日
作者:
alex
分类:
UWP, Windows
881 views
WinUI3获取当前系统桌面尺寸
发表于:
2023年7月19日
2023年7月19日
作者:
alex
分类:
WinUI3
862 views
UWP中ListView的Item绑定ViewModel的成员变量
发表于:
2023年5月1日
2023年5月1日
作者:
alex
分类:
UWP
1,057 views
JetBrains Rider 2022开发环境配置
发表于:
2023年4月24日
2023年4月24日
作者:
alex
分类:
Linux
1,609 views
在 Linux 系统中,您可以使用以下命令来安装 Gtk+ 3使用webkit
发表于:
2023年4月24日
2023年4月24日
作者:
alex
分类:
Linux
标签:
monodevelop, webkit
1,414 views
VNC 远程桌面连接 Ubuntu 22.04 时遇到黑屏问题
发表于:
2023年4月23日
2023年4月23日
作者:
alex
分类:
Linux
3,455 views
Ubuntu 22.04 上安装 .NET SDK 6.0以及.NET MAUI
发表于:
2023年4月23日
2023年4月23日
作者:
alex
分类:
Linux
1,257 views
WindowsRuntime一次设置User-Agent无须每次请求修改User-Agent
发表于:
2023年4月15日
2023年4月15日
作者:
alex
分类:
Windows
1,110 views
C# 读写ftp服务器中的文件
发表于:
2023年4月13日
2023年4月13日
作者:
alex
分类:
Windows
标签:
FTP
1,764 views
命令行安装操作系统wim文件
发表于:
2023年4月11日
2023年4月11日
作者:
alex
分类:
Windows
标签:
wim
1,144 views
一条命令删除UNRAID中Aria2 WebUI的所有下载记录
发表于:
2023年4月3日
2023年4月3日
作者:
alex
分类:
UNRAID
1,076 views
分页
页码: 1
页码: 2
页码: 3
页码: 4
页码: 5
页码: 6
…
页码: 31
下一页
C#开发跨平台游戏
XNA简介
MONOGAME简介
安装VISUAL STUDIO 2017
VISUAL STUDIO 2017安装XNA
VISUAL STUDIO 2017安装MONOGAME
编写第一个C#游戏
在游戏中使用中文
游戏的全屏窗口及退出
设置游戏的窗口大小及分辨率
在游戏中显示系统默认鼠标及鼠标的基本使用
自定义游戏鼠标光标
游戏中按钮的实现
在游戏中使用背景音乐和按钮音效
游戏中使用多张图片实现动画
项目实战《选老婆》
将《选老婆》发给朋友玩
使用MonoGame将《选老婆》移植到UWP平台
使用MONOGAME将《选老婆》移植到WINDOWS平台
MACOS平台之安装VISUAL STUDIO MONOGAME
FNA的安装及使用
使用MONOGAMEBRIDGE将MONOGAME游戏编译成JAVASCRIPT运行于WEB平台
在MONOGAME/XNA中使用游戏手柄GAMEPAD
使用MONOGAME开发Linux游戏
在MONOGAME/XNA中使用键盘KEYBOARD
在MONOGAME/XNA中使用触控操作TOUCHPANEL
在MONOGAME/XNA中使用触控手势GESTURE
近期文章
UWP新增ARM64的编译打包出现 project file doesn’t list ‘win10-arm64-aot’错误的解决办法
obj\wappublish\win-x64\project.assets.json’ not found 解决办法
打包成misx发布到微软应用商店无法加载C++dll动态链接库组件的解决方法和思路
使用Visual Studio 2022 打包arm64的msix解决”arm64”不是选项“platform”的有效设置错误
发布微软商店应用时调试模式运行没问题,打包后运行出错的解决办法
分类目录
Android
C#开发跨平台游戏
C#开发跨平台游戏视频教程
Desktop Bridge
FNA
github
iOS
iPhone
Linux
macOS
MonoGame
NAS
QT
Raspberry Pi
UNRAID
UWP
Web
Windows
Windows Phone
Windows11
WindowsDesktop
WinUI3
Xamarin
主题商店/动态桌面使用文档
数据库
未分类
站务
标签
相关工具下载MonoGame官网
MonoGame源码
MonoGame参考文档
MonoGame实例代码
NuGet
MonoGame.Extended
XNA.JS
Visual Studio 2017
Xamarin Studio
XNA Game Studio
Microsoft XNA Documentation
MonoGame Demo
MonoGame视频教程
MonoGame支持中文工具
MonoGame维基百科
MonoGame-Tutorial-Series
微软官方MonoGame文档
FNA-XNA
友情链接UWP开发
© 2024 XNA(MonoGame)游戏开发.
由 WordPress 强力驱动.
WordStar,
主题由Linesh Jose提供
浙ICP备10206719号-1
请使用 扫码支付
XNA框架基础——XNA介绍 - AlexCheng - 博客园
XNA框架基础——XNA介绍 - AlexCheng - 博客园
会员
周边
新闻
博问
AI培训
云市场
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式 ...
退出登录
注册
登录
AlexCheng
博客园
首页
新随笔
联系
订阅
管理
XNA框架基础——XNA介绍
第1章:XNA介绍
欢迎来到XNA的世界。作为一个游戏程序员,你或许知道 DirectX ,甚至也许具有XNA 框架的基础知识。 这一个章节解释了如何安装 XNA Game Studio Express 和如何以有效率的方式使用它。它也包含相当多的技巧,这些技巧甚至可能对任何一个已经知道基础知识的人都有用。
在下面一些章节中,你将直接地开始开发一些很酷的小游戏。 这部分包含基本的功能和在这一本书中稍后将会使用的辅助类,来为更先进的游戏程序开发一款图形引擎。 为了让一切保持简单,将从第一部分的2D编程开始,然后前进到第二部分的3D。
让我们开始吧!
介绍XNA框架
XNA被微软公司开发,并且开始于多年前,但是保持地非常秘密。在2004年GDC(年度最大的游戏开发讨论会)上微软第一次宣布XNA。XNA不仅仅像DirectX一样是个框架;它还包含很多工具,甚至是一个自定义的IDE。因为直到2006年,还没有一点工具被发布,DirectX的开发者们仅仅在2004到2006年的DirectX SDK文档的右上角标示了“XNA”的图标。
图 1-1
这意味着微软已经着手 XNA 的框架有相当时间了,但是开发者并不真的知道所期待的是什么。它可能是 DirectX 框架的一位继承者, 但是当2005 年底,Direct3D 10 Beta在Windows Vista 上被发布, DirectX 似乎仍然是这个新操作系统的首选图形框架。然后在 2006 年初期微软 XNA 建立,在 GDC 2006 年三月时CTP 被发布。然后在2006年初 的GDC上,Microsoft XNA Build March 2006 CTP被发布。XNA Build 也是一个工具,它允许你管理复杂的编译过程,类似于 Msbuild 和Ants这样的工具,但是更复杂和强大。因为微软的 Mech Commander 2也被作为一个开源软件发布。 许多人下载它并且重编译MechCommander 2这个游戏。但是一段时间以后,没什么更多的事发生,特别是小型和中型开发团队不真的需要一个复杂的编译管理工具。
然后它安静了好一阵子,并且只有微软职员和 DirectX MVPs(我是幸运者之一)开始知道即将来临的 XNA 框架和 XNA Game Studio要发布。世界上的其它人在八月的 Gamefest 会议才发现有关内容,在这里微软宣布在 2006 年8月30 日发布XNA Game Studio Express beta 1 。 第一个beta只包含了一个初学者工具包,“Space Wars”,而且 XNA 没有包括很多的3D功能。许多开发者和爱好者尝试 XNA ,并且在它的Sprite类的帮助下写了许多小型的 2D 游戏。 虽然你可以很快地创建你简单的射击型游戏,写你自己的3D模型导入器和渲染代码却很困难。
XNA Game Studio Express 最初的目标是初学者、爱好者和学生,已允许他们快速开发自己的Windows和XBox360平台的游戏。 但是这不意味着专业的游戏工作室不能使用 XNA。XNA Game Studio Professional 这样的一个特别版本,目标就是专业的游戏工作室,它在 2007 年夏天将被发布。但是如果你想要用Visual Studio 2005 专业版开始开发, 下面我会在这一章节的后面描绘如何有效率的让VS和XNA工作的窍门。
值得高兴地是,微软在几个月之后的2006年11月发布了下一个beta版,这发生在2006年12月XNA Game Studio Express最终发布之前。最终版包括了容量管道和许多你将在第二章和第三章学习的新特色。
XNA 完全免费而且允许开发者一次性同时地创建游戏的Windows平台版和 Xbox 360 平台版。 但是如果你希望你的 XNA 游戏运行在 Xbox 360 控制台,你必须参加 “Creators Club”交纳 $99 的年费。
XNA Game Studio Express
图1-2向你展示了 XNA Game Studio Express,学习该如何立刻安装它。
图 1-2
屏幕不仅仅看上去和Visual C# 2005 Express相似,实际上它就是VC# 2005。如果你创建一个XNA工程项目, 仅仅只要某些小改变。 在“Tools”也有一个额外的选项--〉“Options”,它允许你选择 Xbox 360 设备而且输入密钥。另外,有一些新的特征在 IDE 内; 例如, 内容管道(content pipeline)允许你快速地把纹理,模型、和着色器(shader)导入到你的工程。更多关于所有的信息是很少的。 XNA Game Studio Express当前只是用 XNA 框架开发游戏的唯一可获得的IDE,但是微软在 2007年某一时间(夏季或更晚)将会提供XNA Game Studio Pro 。
XNA Game Studio Professional 将会基于Visual Studio 2005 Professional Edition 并且让你使用所有的Visual Studio插件和特性。
应用程序模型
XNA 框架被分为三个核心部份:(见图 1-3)::
在Microsoft.Xna.Framework.dll中的XNA图形引擎
在the Microsoft.Xna.Framework.Game.dll中的XNA应用程序模型
在Microsoft.Xna.Framework.Content.Pipeline.dlls中的XNA内容管道
图 1-3
所有这些dll文件被C#编写,而且完全是托管的dll。这意味着你能用一个类似Reflection的工具打开这些dll (该工具可以从http://www.aisto.com/roeder/dotnet得到)而且直接看到它们如何工作(见图1-4) 。大多数的内在功能就像DirectX的dll,而且一样单一化。 内容管道(content pipeline)一言难尽。
图 1-4
看一看应用程序模型。
每个 XNA 工程项目使用一个Game类,它包含所有重要的游戏组件,图形设备,windows设置,和内容管理器。在这里,你也可以添加输入和声音处理。基本上,你的游戏中的一切是以Game类为基类的高层次类,或者至少某些组件来自于Game类。 下面是Game类中三个最重要的方法(见图1-5) 。
对于最后的发布版本,微软把LoadGraphicsContent 和 UnloadGraphicsContent助手方法默认地添加到Game1.cs类,这个类是在你创建一个新的XNA工程项目时自动创建的。但是这些方法在本书将不被采用,因为一切要初始化和加载的代码放在Initialize方法中,要简单得多。
图 1-5
Initialize ()
Update (GameTime time)
Draw (GameTime time)
你很可能已经猜测到所有的这些方法要做什么。
Initialize 加载你所有的游戏内容,设定你所有的启始设定,而且初始化你需要的每件事物。 如果你想要跟随微软提供给 XNA 的设计样式,你就用LoadGraphicsContent方法加载一切。在每一帧被绘制之前,Update方法将被调用,它将更新你的游戏时间、输入、声音和其他一切在荧屏上不可见的事物。 即使你的游戏被GPU限制,比Draw更频繁被调用的Update方法,也能很好的发生。但是你的更新代码应该与绘图代码相分离运行,并且这本书中没有需要特别注意Update 和 Draw 被调用的次数的范例。最后,Draw被每一帧调用,来绘制屏幕上的一切。Update 和 Draw的分离可能不总是重要的,几乎总是可能被单元测试所忽略,如果最终游戏在确定游戏逻辑独立运行于绘图代码上不是非常重要。举例来说, 在Windows平台上,用户可能按”Alt +Tab”键或者将游戏最小化, 在这种情况下,Draw不再需要再次被调用,但是也许你希望游戏在后台继续运行。 这对于网络游戏确定玩家仍然同步尤其重要。 另外,你能把 GameComponent 这些类添加到你的游戏类,游戏类再次拥有一个 Update和 一个Draw 方法。 这两个方法都会从你的游戏的Update and Draw 方法自动地被调用。 初始化能直接地在构造器那里发生。最初,微软想要开发者使用Visual Studio设计器,来创建和添加游戏组件,这个设计器能被看作是XNA Game Studio Express (30 August, 2006)的第一个beta版。 这个设计器特色后来因为它没有很好地工作,不支持 Xbox 360 平台而被删除,无论如何没有很多设计者使用它。
游戏组件化思想是说重复使用你的部份代码,并且使它们非常容易嵌入你的游戏。例如一个帧计数器或者是一个天空盒,它作为3D背景的映射渲染器。 依我之见,有二个主要的不利点: XNA没有标准的游戏组件被运送;而且自己写这样一个应用程序模型,甚至扩展它的代码也不是真的困难。 在这一本书中,我将不使用许多GameComponent 类, 但是把它们插入到你的代码是你的自由。阅读第 4 章 GameComponent 类的更多细节,并且学习它的优点和缺点。 因为游戏类有一个Components属性, 增加更多的组件非常容易。
不要说我错误,游戏组件的基本思想真的很棒;当第一个XNA beta版被发布的时候,关于游戏组件和该如何联合它们,有一个来自于Mitch Walker的网络小广播,他是微软XNA框架的程序经理。首先,我不是非常确信内容管道和游戏组件思想,考虑了什么。这个网络广播看上去很酷,但是当我开始给我的第一个XNA游戏项目编码的时候,我没有在当前的第一个beta里找到非常有用的设计器。在第二个beta和最终发布版,大多数初始化游戏组件的代码被删除,XNA Game Studio也有了图形化的设计器组件。这种情况的产生是因为Microsoft 不能找到一条途径来实现设计器,以及对于XBox360控制台,游戏组件化思想是不是有效(之前它仅仅工作在Windows平台)。只是证实了我的第一感觉,游戏组件化思想不是非常有用,并且甚至可能限制你的某些考虑,例如不得不考虑到自己绘制图形(更多细节看第四章)。
这情形类似于,每个游戏执行自己的UI和菜单逻辑,这是相当有争议的。但是如果你考虑到它,就像Windows给每个应用程序使用一些标准菜单是多么令人生厌,而且看到每一款游戏有一个新的菜单是多么好的体验。你还会容易的选取代码 并且创建你自己的游戏组件如果你想创建一个新游戏,并且你只是重用代码(例如SkyCubeMapping类)。某些游戏组件像摄相机camera、屏幕快照screenshot capturer 这些类是组件能在许多其他游戏重用的好例子,但是本书几乎所有其他的一切都没有使用游戏组件化来实现。 它总是一种美好的经验在哪些菜单在每场游戏中被产生见到一个新的方法。如果你想要产生一场新的游戏,你能仍然非常容易地吸取代码而且产生你自己的游戏成份, 然后你能仅仅重复使用代码。(举例来说, SkyCubeMapping 类)像来自第 4 章的照相机和 screenshot capturer 类的一些游戏成份是能在许多其他的游戏中被重复使用的成份的好例子,但是几乎在来自这一本书的游戏的其他每件事物被实现不使用游戏成份。
关于应用程序模型,微软的愿望之一就是游戏开发者社区能容易地创建并且分享他们的游戏组件,而且改善 XNA 方面的社区。 你能在 www.codeplex.com 上检索出eXperience工程项目,得到更多的信息。
内容管道
内容管道被用来导入、编译、而且加载像纹理、3D模型、着色器(shader)、游戏的声音文件这些游戏资源到你的工程项目(见图 1-6) 。 它大大减少了自定义代码的数量,这些代码你必须得到图形,3D数据,着色器(shader)在你的游戏。 例如,如果你拖拽了一个模型文件到你的工程项目,而且它使用二种纹理和一个特定的着色器(shader)你不是必须自己做这些; 内容管道的输入器“编译”数据为二进位的格式,而且在这个过程得到你需要的每件事物。
图 1-6
说到着色器shader,你把模型添加到工程项目会包含一个错误。 在过去,你将会启动你的游戏工程项目, 然后得到一个异常,告诉你着色器shader 无法被编译,而且游戏失败。 现在着色器shader 被编译在生成解决方案的过程,而且你不是必须启动游戏来看它是否工作。 通过行号和来自于XNA Game Studio Express编译输出窗口的错误信息,你能很快地修订错误和重新生成。 内容管道(content pipeline )并不是由一个dll构成的; 它有五个不同的dll:
Microsoft.Xna.Framework.Content.Pipeline.dll包含了内容管道(content pipeline )的基本功能。
Microsoft.Xna.Framework.Content.Pipeline.EffectImporter.dll被用来编译和导入着色器(shaders )。
Microsoft.Xna.Framework.Content.Pipeline.FBXImporter.dll是所有 dll中最大的,而且包含大量导入.fbx格式的3D模型文件的代码,并且支持许多特性, 例如蒙皮和骨骼。
Microsoft.Xna.Framework.Content.Pipeline.TextureImporter.dll 用来导入对游戏的纹理文件。这些文件可能已经是DirectX格局的dds文件(这是纹理和支持硬件压缩的最好格式),但是.png,.jpg,.bmp, 和.tga 文件也被支持。2D 精灵只也是纹理,而且通常使用不压缩的32-bit格式。
Microsoft.Xna.Framework.Content.Pipeline.XImporter.dll 允许你导入.X 3D模型文件,这是一种被许多DirectX应用程序和范例所使用的格式。
你的游戏本身将不再需要这些dll之中的任何一个; 它们仅仅被用来建立和编译内容为.xnb文件(XNA 二进制)到你的建立过程。 这会让部署很容易,因为你再也不必担心游戏内容文件;它很容易确保所有的内容文件在你启动游戏的时候。 不要修改.xnb文件,它们只是.exe 那样的输出格式,而且不应该被直接修改。 数据也不会被转换回纹理、模型或着色器shaders (也有可能逆转,但是没有那种工具)。 在Windows平台和 Xbox 360 平台上的.xnb 文件也大不相同,然而游戏原始码和内容文件可能完全相同。 另外,你能创建你自定义的内容处理器,这允许你编译任何其他的游戏资源 (举例来说,另一个模型格式) 为.xnb文件。当你必须确定你所有的 3D模型已经有(法线映射shader的)切线数据的时候,你在第二部分探究这些。
好的,那是你现在所需要的所有基础。 现在是该行动并且编译你的第一个游戏的时候了。
posted on
2010-07-21 08:31
AlexCheng
阅读(1394)
评论(0)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面返回顶部
Copyright © 2024 AlexCheng
Powered by .NET 8.0 on Kubernetes
Powered by: 博客园