3D单机游戏《天鹰教》源码发布

作者

作者: 游蓝海
博客: http://blog.csdn.net/you_lan_hai
mail:     you_lan_hai@foxmail.com
版权: copyright 2012-2013 youlanhai. All right reserved. 你可以免费使用,任意修改。只需在你作品的某个地方注明出处,当然这不是必须的。

闲话

之前还发表过一篇关于《天鹰教》源码的文章,故此标题多了个二()。本次发布最大的亮点是,加入了碰撞检测和自动寻路功能。

本游戏程序最初是我的毕业设计作品,早期时间仓促,代码结构很糟糕。后来利用工作业余时间,逐渐添加了一些新功能呢,比如:碰撞检测和自动寻路。我喜欢编程,不擅长写策划,大家就不要喷内容哈。写程序的时候,参考过很多高手的代码,在此感谢大牛们的开源精神。在此,我也将代码开源,跟大家共同学习交流。同时,也希望这些代码,能对曾经像我一样的游戏编程新手有所帮助。

源码下载地址:http://pan.baidu.com/share/link?shareid=386464581&uk=1980706517

剧情说明

本游戏《天鹰教》,是一款传统的3D角色扮演类游戏(RPG),讲述的是元朝末年,
天鹰教反抗腐败朝廷统治的英雄故事。玩家通过扮演游戏中的角色,来了解天鹰教的
发展历史。随着剧情的发展,玩家的命运将决定着整个天鹰教的兴衰。

程序运行说明

1.本游戏程序使用VC++2010 express开发工具,d3d9sdk(June 2010)开发。
2.游戏程序为: bin/MyGame.exe。运行程序需要安装vc++2010运行库,以及dx(June 2010版本以上)运行库。
3.特别说明: 由于自动寻路数据资源过大,目前资源包中,只生成了test地图的寻路数据。如果要测试其他地图的
自动寻路,需要运行路点计算工具bin/Navigation.exe,生成所有地图路点。所有地图的路点数据总和预计为200M。

操作说明

移动:WASD
跳跃:空格键。(↑↓键可以在垂直方向,无障碍移动角色位置)
左旋:者鼠标左/右键向左拖拽。
右旋:者鼠标左/右键向右拖拽。
推进/推远相机:鼠标滚轮
切换相机模式:1-第一人称,2-第三人称,3-自由模式
鼠标移动:鼠标左键单击
点选人物:鼠标左键单击
人物交互:鼠标右键单击
系统菜单:Esc
地图信息:M(可以直接在此界面里,进行场景跳转)
地图编辑器:E
角色坐标信息查看:P
相机坐标信息查看:O
系统信息:K
天空盒显隐: F2
雾化开启/关闭: F3
人物包围盒开启/关闭: F4
场景物体包围盒开启/关闭: F5
切换显框模式: F8

代码目录说明

MyGame : 游戏应用程序工程,也是vs解决方案所在目录。
Navigation: 导航网格生成工程,用于生成导航网格数据。
bin : 应用程序生成目录,以及游戏所用到的资源、脚本、工具、第三方动态链接库等。
lib : 第三方库文件目录。
LZ3DEngine : Lazy3d游戏引擎的核心工程。
LZGUI : 3d ui库。
Font : 封装了freetype字体库。
Physics : 物理引擎。主要功能为碰撞检测跟自动寻路。
PyWraper : python导出工程。
utility : 实用工具。字符串格式化,文件处理,多线程,配置文件解析器,内存池等。
LZData : 配置文件解析器,支持简易xml格式文件以及原创lzd格式。此项目为旧工程,最新的实现已经整合到了utility工程。
third_part : 第三方代码头文件。
third_part/audiere :    audiere.1.9.4 简单音频播放器。
third_part/freetype :   freetype.2.4.11 truetype字体处理。
third_part/boost :      boost.1.48 boost.python库。
third_part/python :     python.2.7 解释器。

截图一览

目录组织

一览

碰撞检测,飞檐走避

碰撞检测,站在桥上看风景

碰撞检测,过独木桥

自动寻路

生成导航网格

3D单机游戏《天鹰教》源码发布(二)的更多相关文章

  1. 2014年5月份第3周51Aspx源码发布详情

    HGM简单连连看游戏源码  2014-5-19 [VS2010]源码描述:这是一款基于WinForm窗体程序的简单水果连连看的小游戏.界面比较美观, 功能如下:该游戏可以显示当前关卡,还有剩余时间.重 ...

  2. 2013年7月份第4周51Aspx源码发布详情

    大型企业通用管理ERP源码  2013-7-26 [VS2010]2013.7.4更新内容:1.修复决策模式-客户等级不能保存问题.2.修复企业知识库有报错问题.3.修复运营模式-人力资源分析模块-在 ...

  3. java画图程序_图片用字母画出来_源码发布_版本二

    在上一个版本:java画图程序_图片用字母画出来_源码发布 基础上,增加了图片同比例缩放,使得大像素图片可以很好地显示画在Notepad++中. 项目结构: 运行效果1: 原图:http://imag ...

  4. java画图程序_图片用字母画出来_源码发布

    在之前写了一篇blog:java画图程序_图片用字母画出来 主要是把一些调试的截图发布出来,现在程序调试我认为可以了(当然,你如果还想调试的话,也可以下载源码自己调试). 就把源码发布出来. 项目结构 ...

  5. 3D语音天气球(源码分享)——完结篇

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 开篇废话: 由于这篇文章是本系列最后一篇,有必要进行简单的回顾和思路整理. 这个程序是由两 ...

  6. 3D语音天气球(源码分享)——在Unity中使用Android语音服务

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 开篇废话: 这个项目准备分四部分介绍: 一:创建可旋转的"3D球":3 ...

  7. 3D语音天气球(源码分享)——通过天气服务动态创建3D球

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 开篇废话: 这个项目准备分四部分介绍: 一:创建可旋转的"3D球":3 ...

  8. 3D语音天气球(源码分享)——创建可旋转的3D球

    开篇废话: 在9月份时参加了一个网站的比赛,比赛的题目是需要使用第三方平台提供的服务做出创意的作品. 于是我选择使用语音服务,天气服务,Unity3D,Android来制作一个3D语音天气预报,我给它 ...

  9. 7款超酷HTML5 3D动画精选应用及源码

    对以前来讲,3D动画拿到网页上展示是一件非常奢侈的事情,第一是浏览器不够先进,第二是大部分只能用flash实现伪3D.HTML5的出现,让实现网页3D动画变得非常简单,当然前提是你不要再使用像IE67 ...

随机推荐

  1. InnoDB 锁

    参看文章: innodb的意向锁有什么作用? 2.<MySQL技术内幕:InnoDB存储引擎> InnoDB存储引擎中的锁 InnoDB中的锁介绍 InnoDB存储引擎既支持行级锁,也支持 ...

  2. java jps命令使用解析

    在linux环境下显示一个进程的信息大家可能一直都在使用ps命令,比如用以下命令来显示当前系统执行的java进程: ps -ef | grep java 针对java的进程,jdk1.5以后提供了一个 ...

  3. 通过构造系统服务分发实现拦截&过滤 (仿360游戏保险箱)

    想写这个程序主要是因为看了KSSD的一篇帖子,http://bbs.pediy.com/showthread.php?t=108378 讲 的是360保险箱保护游戏账号的原理,实际上就是对各种请求的拦 ...

  4. centos安装lspci工具

    https://blog.csdn.net/wudiyi815/article/details/38325199

  5. sicily 1198. Substring (递归全排列+排序)

    DescriptionDr lee cuts a string S into N pieces,s[1],…,s[N]. Now, Dr lee gives you these N sub-strin ...

  6. VMware虚拟机Mac OS X无法调整扩展硬盘大小的解决方案

    使用VMware虚拟机搭建的MacOSX,在10.10以上可能会出现无法扩充磁盘大小的问题. 因为很多朋友在初次安装MacOSX的时候都默认选择40G的磁盘大小,结果用了没两天之后就发现磁盘不够用了. ...

  7. 【LOJ】#2032. 「SDOI2016」游戏

    题解 看错题了,以为单次修改相当于一个覆盖,后来才明白"添加"-- 就相当于添加很多线段求最小值 首先这个等差数列添加的方式比较烦人,我们拆开两条链,一条s到lca,一条lca到t ...

  8. 006 python的面向对象基础

    1.类 描述具有相同属性与方法的对象的集合. 2.创建类 使用class来创建一个新类,class之后为类的名称并以冒号结尾 3.程序 #!/usr/bin/python # -*- coding: ...

  9. JAVA 9 新特性

     Oracle已将JAVA 9的开发提上日程.OpenJDK上已经出现了关于下一个主版本JAVA 9的改进建议(JEP).与以往不同,Oracle在这次谈及了一些真正的特性.而早期对于JDK9的声明仅 ...

  10. Win10 重装后,必须修改的设置

    作为一个程序猿,系统易用性是相当重要,每次重装WIN10 都会遇到一头包的问题,比如不能远程,打开文件各种提示需要管理员权限(mlgb很想骂人,我明明是管理员权限) ,然后开了管理员权限,结果又不能用 ...