解密神庙逃亡类跑酷游戏地图无限的原因

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上的“热门”游戏的同类制作方法。
如果本篇文章有什么问题,还请斧正。

解密神庙逃亡类跑酷游戏地图无限的原因相关推荐

  1. 计算机主硬盘隐藏分区大小,容量不翼而飞 解密四类硬盘空间隐藏占用(组图)

    很多人都会发现一些同样的问题:我没有装什么东西,为何我的硬盘空间越用越挤?为何我买的硬盘标称容量和实际容量会有如此大的差距?这些问题背后都关联着我们平时并不关注的线索上,而容量的不翼而飞也正是这些隐藏 ...

  2. 加密解密php,PHP实现的加密解密处理类

    本文实例讲述了PHP实现的加密解密处理类.分享给大家供大家参考,具体如下: /*=========================================================== ...

  3. rsa java ao_RSA加解密工具类

    Java 实现 import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairG ...

  4. C# MD5加密解密帮助类

    /// <summary>     /// MD5加密解密帮助类     /// </summary>     public static class DESHelper    ...

  5. php中des加密cbc模式,php中加密解密DES类的简单使用方法示例

    本文实例讲述了php中加密解密DES类的简单使用方法.分享给大家供大家参考,具体如下: 在平时的开发工作中,我们经常会对关键字符进行加密,可能为了安全 也可能为了规范,所以要正确使用DES加密解密 代 ...

  6. C#做的一个加密/解密的类

    C#做的一个加密/解密的类 大家要有兴趣,可以一起来讨论一下 WebService数据交互安全问题,以下的这个代码,可以用于Dotnet环境下的任何托管方式的应用程序,在实际应用中有两个实例.其中,有 ...

  7. cls certificate.php,php加密解密处理类

    PHP加密解密也是常有的事,发现discuz论坛里的PHP加密解密处理类代码,感觉挺不错,在用的时候,要参考Discuz论坛的passport相关函数,后面我会附上使用方法. php加密解密处理类&l ...

  8. java des加密解密_Java实现的DES加密解密工具类实例

    本文实例讲述了Java实现的DES加密解密工具类.分享给大家供大家参考,具体如下: 一个工具类,很常用,不做深入研究了,那来可直接用 DesUtil.java package lsy; import ...

  9. [原创]c# 加解密通用类

    [原创]c# 加解密通用类 *模块功能:数据加解密算法  *模块说明:DESE.MD5 加解密算法 http://www.vjsdn.com/bbs/bbsTopicDetails.aspx?pid= ...

最新文章

  1. Atitit qzone qq空间博客自动点赞与评论工具的设计与实现
  2. 哈工大等实现人工肌肉重大突破登上 Science!多国科学家联合实现全新驱动机理...
  3. 怎么关闭win10的自动更新
  4. JDK源码解析之 Java.lang.Object
  5. python map 函数使用
  6. 29岁仍在考编制,事业编和教师编都在备考,很多人都说过了年龄了,不适合再考,是吗?
  7. WDTP:利器,在于轻便犀利
  8. Agilent GeneSpring GX V11.5_win32_win64扩展生物学分析软件
  9. 过滤器(Filter)应用:全站压缩----Gzip网页压缩输出
  10. iOS 第三方库、插件、知名博客总结
  11. 今日恐慌与贪婪指数为20 恐慌程度有所上升
  12. android壁纸和手机屏幕之间要怎么对应,android手机壁纸
  13. 数据代码如何“产地直销”,做到持续集成持续发布?
  14. 百度APP大规模敏捷研发项目管理
  15. Java语言打印心型
  16. 六类、七类网线在千兆网络下的性能测试
  17. 这些黑白老照片在她手里宛若新生
  18. 使用PyCharm读取Walden.txt内容时出现编码错误UnicodeDecodeError
  19. 如何利用游戏模拟真实世界?游戏和游戏引擎的可能性|无学科专栏
  20. JS字符串替换,将一个字符串中的特定字符串换成其他字符串

热门文章

  1. MySQL蜜罐反制获取攻击者微信号、手机号
  2. [转]佛家四大经典爱情故事
  3. 速报|StarRocks亮相云栖大会,携手阿里云EMR 打造极速数据湖分析新体验
  4. 无线局域网基础知识(一)
  5. 基于HTML环境保护网站项目的设计与实现【 html+css+javascript+jquery+bootstarp响应式的绿化种植类公司网站模板】企业网站制作
  6. java设计抽象英雄类_java抽象工厂设计模式之游戏实例解析(大话java英雄联盟)...
  7. 线性拟合3-戴明回归
  8. 禁止mac压缩文件、U盘传输到Linux、Windows下出现.DS_Store等隐藏垃圾文件
  9. 华住集团CFO赵汝泉离职:首席合规官陈慧接任,公司年内亏损22亿
  10. SIR(Software-artifact Infrastructure Repository)程序结果对比和覆盖信息收集实验