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. windows下同时安装python2和python3

    之前学习的时候使用2.7比较多. 想练习3.7的时候,两个版本兼容的问题,苦恼了几天. 查了一下资料,发现了一个很好的方法.记录一下,也做一个分享. 本篇内容主要讲一下,在同一台电脑上如何同时安装Py ...

  2. No.13 selenium for python 单选框和复选框

    单选框 radio 点击图标,可以获取HTML中定位. 使用普通的ID定位就可以了 定位到指定元素,然后使用clicd选中即可 复选框 checkbox 勾选单个框,跟单选框一样,定位后点击就可以了 ...

  3. DevExpress CxGrid 隐藏 Drag a column header to group by that column

  4. hihocoder1636 Pangu and Stones(区间DP(石子合并变形))

    题目链接:http://hihocoder.com/problemset/problem/1636 题目大意:有n堆石头,每次只能合并l~r堆,每次合并的花费是要合并的石子的重量,问你合并n堆石子的最 ...

  5. HDU 1507 Uncle Tom's Inherited Land(最大匹配+分奇偶部分)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1507 题目大意:给你一张n*m大小的图,可以将白色正方形凑成1*2的长方形,问你最多可以凑出几块,并输 ...

  6. 关于django过滤器的使用

    最近项目中要做分类筛选,其实已经做了这个功能,但是有一个字段是MultiSelectField类型,包含多个值,用户提交的数据是单个值,无法查询出结果, 所以用到了自定义过滤 原代码 class In ...

  7. python对象学习

    python对象的介绍 python使用对象模型来存储数据,构造任何类型的值都是一个对象,尽管python被当成面向对象的编程语言,但是完全编写不使用任何类和实例的脚本.所有的python对象都拥有三 ...

  8. linux服务开机启动

    1.chkconfig 配置开机启动 在  /etc/init.d  创建执行服务的可执行脚本,赋予脚本可执行权限.如果是通过yum 或者rpm安装的,并且已经在该目录下存在对应的启动脚本,就不用自己 ...

  9. Ionic Js十七:侧栏菜单

    一个容器元素包含侧边菜单和主要内容.通过把主要内容区域从一边拖动到另一边,来让左侧或右侧的侧栏菜单进行切换. 效果图如下所示:   用法 要使用侧栏菜单,添加一个父元素,一个中间内容 ,和一个或更 ...

  10. 远程连接mysql root账号报错:2003-can't connect to MYSQL serve(转)

    远程连接mysql root账号报错:2003-can't connect to MYSQL serve 1.远程连接Linux系统,登录数据库:mysql -uroot -p(密码) 2.修改roo ...