从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:虽然我努力使代码简洁易懂,并使用标准命名规则与大量中文注释...但因为是边学边写的,各种不成熟,难免会造成代码的混乱...请各位多多见谅。
感谢“ 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。这样就能编译成功了~Enemy01_NoTexture.fbxpSphereShape1_color.bmp