解密神庙逃亡类跑酷游戏地图无限的原因
解密神庙逃亡类跑酷游戏地图无限的原因
1.无限之谜
众所周知,跑酷类游戏像神庙逃亡给玩家的一种感觉就是地图无限多。有人说神庙逃亡跑1亿分就结束了,但这些其实都是假象,在程序猿眼中,这些人都是无知的。
这是一个最简单的跑酷游戏地图,一款无限地图的游戏,实际上的地图只有数块甚至更少,而地图无限的秘诀在于将地图一块一块的从后往前挪。
public void changeRoad(Transform MonitorPos){int index = MonitorPosList.IndexOf(MonitorPos);if (index >= 0){int lastIndex = index - 1;if (lastIndex < 0)lastIndex = roadList.Count - 1;roadList[index].position = roadList[lastIndex].position + new Vector3(roadDistance, 0, 0);for (int i = 0; i < 9; i++){Spawn_Obstacle(i);}}else{Debug.LogError("MonitorPos index is error");return;}}
这是挪用地图的代码。
在每一块路的子类中有一个不可视的空气墙,当我们的人物触碰到空气墙时,程序便会将后面的一块路转移到最前面,于是你便获得了无限的路。
2.地形变化之谜
有人可能会说,哪为什么路上的障碍物以及一些转向会变得不同。
public void Spawn_Obstacle(int index){GameObject[] obsPast = GameObject.FindGameObjectsWithTag("Obstacle" + index);for (int i = 0; i < obsPast.Length; i++){Destroy(obsPast[i]);}foreach (Transform item in m_ObstaclePosArray[index]){GameObject prefab = m_ObstacleArray[Random.Range(0, m_ObstacleArray.Length)];Vector3 eulerAngle = new Vector3(0, Random.Range(0, 360), 0);GameObject obj = Instantiate(prefab, item.position, Quaternion.Euler(eulerAngle));obj.tag = "Obstacle" + index;}}
这是一段将物体删除并随即生成的代码,所以可想而知为什么每段路都会有所不同,路实际上是同一条路,但实际上会将障碍物用随机的方法重新生成。
3.尾声
在下一篇文章中我将会介绍一款steam上的“热门”游戏的同类制作方法。
如果本篇文章有什么问题,还请斧正。
解密神庙逃亡类跑酷游戏地图无限的原因相关推荐
- 计算机主硬盘隐藏分区大小,容量不翼而飞 解密四类硬盘空间隐藏占用(组图)
很多人都会发现一些同样的问题:我没有装什么东西,为何我的硬盘空间越用越挤?为何我买的硬盘标称容量和实际容量会有如此大的差距?这些问题背后都关联着我们平时并不关注的线索上,而容量的不翼而飞也正是这些隐藏 ...
- 加密解密php,PHP实现的加密解密处理类
本文实例讲述了PHP实现的加密解密处理类.分享给大家供大家参考,具体如下: /*=========================================================== ...
- rsa java ao_RSA加解密工具类
Java 实现 import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairG ...
- C# MD5加密解密帮助类
/// <summary> /// MD5加密解密帮助类 /// </summary> public static class DESHelper ...
- php中des加密cbc模式,php中加密解密DES类的简单使用方法示例
本文实例讲述了php中加密解密DES类的简单使用方法.分享给大家供大家参考,具体如下: 在平时的开发工作中,我们经常会对关键字符进行加密,可能为了安全 也可能为了规范,所以要正确使用DES加密解密 代 ...
- C#做的一个加密/解密的类
C#做的一个加密/解密的类 大家要有兴趣,可以一起来讨论一下 WebService数据交互安全问题,以下的这个代码,可以用于Dotnet环境下的任何托管方式的应用程序,在实际应用中有两个实例.其中,有 ...
- cls certificate.php,php加密解密处理类
PHP加密解密也是常有的事,发现discuz论坛里的PHP加密解密处理类代码,感觉挺不错,在用的时候,要参考Discuz论坛的passport相关函数,后面我会附上使用方法. php加密解密处理类&l ...
- java des加密解密_Java实现的DES加密解密工具类实例
本文实例讲述了Java实现的DES加密解密工具类.分享给大家供大家参考,具体如下: 一个工具类,很常用,不做深入研究了,那来可直接用 DesUtil.java package lsy; import ...
- [原创]c# 加解密通用类
[原创]c# 加解密通用类 *模块功能:数据加解密算法 *模块说明:DESE.MD5 加解密算法 http://www.vjsdn.com/bbs/bbsTopicDetails.aspx?pid= ...
最新文章
- Atitit qzone qq空间博客自动点赞与评论工具的设计与实现
- 哈工大等实现人工肌肉重大突破登上 Science!多国科学家联合实现全新驱动机理...
- 怎么关闭win10的自动更新
- JDK源码解析之 Java.lang.Object
- python map 函数使用
- 29岁仍在考编制,事业编和教师编都在备考,很多人都说过了年龄了,不适合再考,是吗?
- WDTP:利器,在于轻便犀利
- Agilent GeneSpring GX V11.5_win32_win64扩展生物学分析软件
- 过滤器(Filter)应用:全站压缩----Gzip网页压缩输出
- iOS 第三方库、插件、知名博客总结
- 今日恐慌与贪婪指数为20 恐慌程度有所上升
- android壁纸和手机屏幕之间要怎么对应,android手机壁纸
- 数据代码如何“产地直销”,做到持续集成持续发布?
- 百度APP大规模敏捷研发项目管理
- Java语言打印心型
- 六类、七类网线在千兆网络下的性能测试
- 这些黑白老照片在她手里宛若新生
- 使用PyCharm读取Walden.txt内容时出现编码错误UnicodeDecodeError
- 如何利用游戏模拟真实世界?游戏和游戏引擎的可能性|无学科专栏
- JS字符串替换,将一个字符串中的特定字符串换成其他字符串
热门文章
- MySQL蜜罐反制获取攻击者微信号、手机号
- [转]佛家四大经典爱情故事
- 速报|StarRocks亮相云栖大会,携手阿里云EMR 打造极速数据湖分析新体验
- 无线局域网基础知识(一)
- 基于HTML环境保护网站项目的设计与实现【 html+css+javascript+jquery+bootstarp响应式的绿化种植类公司网站模板】企业网站制作
- java设计抽象英雄类_java抽象工厂设计模式之游戏实例解析(大话java英雄联盟)...
- 线性拟合3-戴明回归
- 禁止mac压缩文件、U盘传输到Linux、Windows下出现.DS_Store等隐藏垃圾文件
- 华住集团CFO赵汝泉离职:首席合规官陈慧接任,公司年内亏损22亿
- SIR(Software-artifact Infrastructure Repository)程序结果对比和覆盖信息收集实验