XNA 游戏编程学习总结,2D与3D实现

  从9月开始学习XNA到现在已经有2个多月,虽然没有开发出完整的游戏,但是Demo不少,现在就来分享一下,我这两个月以来的成果。

希望对新接触XNA的朋友们有些帮助。

 

  这次分享的Demo有两个(使用的是XNA4.0+VS2010+maya2010),一个是2Dtrack 如其名字,演示的2D的追踪效果,包括导弹追踪,按下空格键就会出现3枚导弹追踪蓝色的球,还包括一个浮游炮,浮游炮可以跟随主角(绿球)和追踪敌人(蓝球),并攻击。

源代码下载:http://115.com/file/e6exf5w1

截图:

  

  另一个Demo 是一个3D坦克大战。模型都是自己扣的(主角机扣还是比较拉风的…),在这个Demo里主要演示:fbx模型加载,绘制,旋转与移动,3D碰撞检测,粒子系统(爆炸效果),广告牌系统,XNA绘制中文字体,会自动攻击与躲避的AI系统,以及一些hlsl效果,如:图片的反色,模糊,灰度等.

源代码下载:http://115.com/file/dn3uleh7

截图:

最后做个索引,方便各位快速的在源代码中找到相应的技术:

(括号中是相应技术的位置)

2D:

1.导弹追踪(Tracker.cs);

2.图片绘制(Role.cs);

3.文字绘制(DrawFont.cs);

4.碰撞检测(Bullet.cs);

5.浮游炮追踪(LocusPoint.cs);

6.移动轨迹(LocusPoint.cs与Locus.cs);

3D:

1.fbx模型绘制与碰撞检测(BasicModel.cs);

2.广告牌系统(BillboardSystem.cs与Billboarding.fx);

3.AI系统(AICharacter.cs与两种敌人类DualGunTank.cs,SphereEnemy.cs);

4.粒子系统(集中在EffectClass文件下的5个类与对应的fx文件);

5.中文字体绘制(DrawFont.cs);

6.3D声音(Sounds.cs);

ps:虽然我努力使代码简洁易懂,并使用标准命名规则与大量中文注释...但因为是边学边写的,各种不成熟,难免会造成代码的混乱...请各位多多见谅。

 

 感谢“#9楼 2011-11-24 09:28 技术拓荒者 ”,找出我的问题。

3D坦克大战 的Demo我少加了一个文件,导致无法编译成功。

现在提供两个解决方案:
1.你可以按照错误提示里的地址去建"C:\Users\asus\Documents\maya\projects\default\sourceimages\3dPaintTextures\Enemys“这个文件夹,然后把下面下载到的pSphereShape1_color.bmp放进去。
2.直接在VS的解决方案管理器中删除Enemy01.fbx 这个文件,并加入下面下载的Enemy01_NoTexture.fbx,然后在ModelManager.cs中第197行,加载模型哪里把Enemy01换成Enemy01_NoTexture。
这样就能编译成功了~
http://115.com/file/dn34qag7#
Enemy01_NoTexture.fbx
http://115.com/file/dn34qdfj#
pSphereShape1_color.bmp

posted @ 2011-11-23 20:21  DSH(现代魔法研究协会~欢迎您的加入~)  阅读(2730)  评论(15编辑  收藏  举报