• 官方太空射击游戏总结


    • 很大一部分问题是碰撞体,刚体,还有碰撞器里面Is Trigger的勾选问题。这些问题在上一篇里面解释的很清楚了。
    • 实现石头自动旋转功能:GetComponent<Rigidbody>().angularVelocity = Random.insideUnitSphere * tumble;
    • 实现石头一波一波下降并终止游戏的功能:

      思路:首先实现一个石头的正常下降,之后实现多个石头的正常下降(for),再实现多个石头持续下降(while)。然后是比较难的,控制石头多久下降,以及多久开始游戏。

      代码://这个代表协同程序,在Start()函数中要使用StartCoroutine(StoneDrow());

    IEnumerator StoneDrow()
    {
    yield return new WaitForSeconds(startWait);
    while (true)
    {
    for (int i = 0; i < 5; i++)
    {
    Vector3 place = new Vector3(Random.Range(-stonePosition.x, stonePosition.x), stonePosition.y, stonePosition.z);
    Quaternion angle = Quaternion.identity;
    Instantiate(manyStone, place, angle);
    yield return new WaitForSeconds(spawnWait);
    }
    yield return new WaitForSeconds(waveWait);
    if (gameover)
    {
    RestartText.text = "Please input 'R' to restart";
    restart = true;
    break;
    }
    }

    }

    • 实现石头不能越出边界的功能:添加Plane 去掉Mesh Render
    • 控制飞机的移动范围:使用Mathf.Clamp(value,xMin,xMax)
    • 实现分数的统计功能:首先要有一个共有函数实现增加分数的功能,然后在石头摧毁的时候调用这个函数,
    • 实现用键盘和鼠标两种方法控制飞机的移动:
    • 代码1.float x = Input.GetAxis("Horizontal")*Time.deltaTime*speed;
      • float z = Input.GetAXIS("Vertical")*Time.delatTime*speed;
      • transform.Translate(x,0,z);
    •        2.

      IEnumerator OnMouseDown()
      {
      Vector3 scenceSpace = Camera.main.WorldToScreenPoint(transform.position);
      Vector3 offer = transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, scenceSpace.z));
      while (Input.GetMouseButton(0))
      {
      Vector3 curs001 = new Vector3(Input.mousePosition.x, Input.mousePosition.y, scenceSpace.z);
      Vector3 curpos = Camera.main.ScreenToWorldPoint(curs001) + offer;
      transform.position = curpos;
      yield return new WaitForFixedUpdate();
      }
      }

  • 相关阅读:
    linux 鼠标中键粘帖功能?!!
    mysql 学习笔记(一)
    log4j的使用 与 父接口 slf4j 门面模式(外观模式)
    web.xml 配置 文章汇总
    2019.08.04 新建随笔
    spring-事务的七个传播行为,最近想出去面试,了解一下框架知识
    20190710 tomcat下的项目导入到eclipse中
    20190709 关于web.xml中webAppRootKey的解释
    20160624 策略模式
    20190616 IDEA-每次修改JS文件都需要重启Idea才能生效解决方法
  • 原文地址:https://www.cnblogs.com/chiwang/p/7510645.html
Copyright © 2020-2023  润新知