热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Unity3d-hw2-太阳系-魔鬼与牧师v1

简答题游戏对象运动的本质是什么?请用三种方法以上方法,实现物体的抛物线运动。(如,修改Transform属性,使用向量Vector3的方法…)写一个程序,实现一个完

简答题
  1. 游戏对象运动的本质是什么?
  2. 请用三种方法以上方法,实现物体的抛物线运动。(如,修改Transform属性,使用向量Vector3的方法…)
  3. 写一个程序,实现一个完整的太阳系, 其他星球围绕太阳的转速必须不一样,且不在一个法平面上。

个人理解
  1. 游戏对象运动的本质是游戏对象的位置的改变。
public class Uniform : MonoBehaviour {

    private GameObject MyCube;
    // Use this for initialization
    void Start () {
        MyCube = GameObject.Find("Cube");
    }

    // Update is called once per frame
    void Update () {      
        MyCube.transform.position += (float)0.1 * Vector3.left;
    }
}
  1. 抛物线运动的三种实现

    • 修改Transform

      public class Parabola1 : MonoBehaviour {    
      
          private GameObject MySphere;
          private float vx;
          private float vz;
          private float a;
          private float t;
          // Use this for initialization
          void Start()
          {
              MySphere = GameObject.Find("Sphere");
              vx = (float)0.5;
              vz = 0;
              a = (float)0.1;
              t = Time.deltaTime;
          }
      
          // Update is called once per frame
          void Update()
          {
              float x = MySphere.transform.position.x;
              float y = MySphere.transform.position.y;
              float z = MySphere.transform.position.z;
              MySphere.transform.position = new Vector3(x + vx, y, z + vz);
              vz += a * t;
          }
      }
    • 使用Vector3

      public class Parabola2 : MonoBehaviour {
      
          private GameObject MyCapsule;
          private Vector3 vx;
          private Vector3 vz;
          private Vector3 a;
          private float t;
          // Use this for initialization
          void Start()
          {
              MyCapsule = GameObject.Find("Capsule");
              vx = (float)0.5 * Vector3.right;
              vz = Vector3.zero;
              a = (float)0.1 * Vector3.forward;
              t = Time.deltaTime;
          }
      
          // Update is called once per frame
          void Update()
          {
              MyCapsule.transform.position += vx;
              MyCapsule.transform.position += vz;
              vz += a * t;
          }
      }
    • 使用Rigidbody

      public class Parabola3 : MonoBehaviour {
      
          private Rigidbody rigid;
          private Vector3 v0;
      
          // Use this for initialization
          void Start()
          {
              rigid = this.GetComponent();
              v0 = new Vector3(3, 10, 0);
              rigid.velocity = v0;
          }
      
          // Update is called once per frame
          void Update()
          {
      
          }
      }
  2. 具体实现见Solar.cs文件,以下部分是效果图和部分核心代码
    • 材质
      从网上下载各个行星对应的材质
    • 自转(以地球自转为例)
      csharp
      Earth.Rotate(Vector3.up * 30 * Time.deltaTime);
    • 公转(以地球公转为例)
      csharp
      Earth.RotateAround(Sun.position, axis3, 10 * Time.deltaTime);

      月球绕地球转只需将绕点设成地球的position即可,有个地方要注意的是必须把月球放在地球的子对象中,否则会失去随地球绕太阳公转这一属性,显得有滞后性
    • 轨迹
      添加一个Trail Render的组件记录行星移动轨迹
    • 轨道不同面
      调整各个行星的公转轴使其不朝着一个方向即可
    • 自发光
      • 将太阳的材质设置成可发光类型
      • 在太阳的中心防止一个点光源
      • 修改背景以显示阴影效果
    • 效果图
      solar1
      solar2
    • 对象结构
      solar3

编程题
  • 动作表

    动作 条件
    上船 船靠所在岸且船没坐满
    上岸 船靠岸
    开船 船靠岸且船上有牧师或魔鬼
    失败 船靠岸且一侧魔鬼多于牧师
    获胜 牧师魔鬼全部在对岸
  • 核心要求
    • MVC架构
    • 对象均由代码创建
    • 不使用Find等耦合语句
  • 亮点
    • 抛物线上下船
    • UI
    • 计时
    • 计步
  • 效果图
    • 游戏界面
      PriestAndDevil1
    • 胜利界面
      PriestAndDevil2
    • 失败界面
      PriestAndDevil3
  • 本项目Github地址——传送门


推荐阅读
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 本文介绍了如何使用n3-charts绘制以日期为x轴的数据,并提供了相应的代码示例。通过设置x轴的类型为日期,可以实现对日期数据的正确显示和处理。同时,还介绍了如何设置y轴的类型和其他相关参数。通过本文的学习,读者可以掌握使用n3-charts绘制日期数据的方法。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
author-avatar
木马
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有