float v = Input.GetAxis("Vertical");
        float h = Input.GetAxis("Horizontal");

if (Input.GetKey(KeyCode.W))
        {
            //旋转想要达到的目标角度
            Quaternion toRotation = Quaternion.Euler(0, 0, 0);
            //从现在角度 旋转到目标角度 所用的时间
            transform.rotation = Quaternion.Slerp(transform.rotation, toRotation, 30f);
            //向前移动
            transform.Translate(Vector3.forward * Sf * Time.deltaTime); 
        }
        if (Input.GetKey(KeyCode.S))
        {
            Quaternion toRotation = Quaternion.Euler(0, -180, 0);
            transform.rotation = Quaternion.Slerp(transform.rotation, toRotation, 30f);
            transform.Translate(Vector3.forward * Sf * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.A))
        {
            //目标角度为自身向左旋转90度
            Quaternion toRotation = Quaternion.Euler(0, -90, 0);
            transform.rotation = Quaternion.Slerp(transform.rotation,toRotation,30f);
            //因为旋转后向左移动即前进,所以还是使用forward
            transform.Translate(Vector3.forward*Sf* Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.D))
        {
            //目标角度为自身向右旋转90度
            Quaternion toRotation = Quaternion.Euler(0, 90, 0);
            transform.rotation = Quaternion.Slerp(transform.rotation, toRotation, 30f);
            //同理依旧是前进
            transform.Translate(Vector3.forward * Sf * Time.deltaTime);
        }

主要解决向左/右旋转后无法正常向左/右移动的问题

坦克大战类型 坦克WASD前后左右移动的解决方法相关推荐

  1. X509证书 指定了无效的提供程序类型 System.Security.Cryptography.CryptographicException 错误解决方法

    X509证书 指定了无效的提供程序类型 System.Security.Cryptography.CryptographicException 错误解决方法 参考文章: (1)X509证书 指定了无效 ...

  2. oracle xmltype转字节,extractvalue处理XMLTYPE类型超过4000字节ORA-01706的解决方法

    extractvalue处理XMLTYPE类型超过4000字节ORA-01706的解决方法 发布时间:2020-08-14 15:40:17 来源:ITPUB博客 阅读:226 作者:guocun09 ...

  3. [ JAVA编程 ] double类型计算精度丢失问题及解决方法

    [ JAVA编程 ] double类型计算精度丢失问题及解决方法 参考文章: (1)[ JAVA编程 ] double类型计算精度丢失问题及解决方法 (2)https://www.cnblogs.co ...

  4. java 让坦克移动_坦克大战_坦克移动

    MyTankGame2 package com.wxh.tank2; import javax.swing.*; import java.awt.*; import java.awt.event.*; ...

  5. 坦克大战敌我坦克重叠问题

    解决前 /** 功能:坦克大战1.1* 1.画出坦克* 2.坦克可以上下左右移动*/ package Tank1_1;import javax.swing.*; import java.awt.*; ...

  6. 【Java_项目篇1】--JAVA实现坦克大战游戏--坦克移动+添加敌方坦克(二)

    前期文章: [Java_项目篇<1>]--JAVA实现坦克大战游戏--画出坦克(一) 控制小球移动 1.外部类 实现KeyListener监听接口写法 package com.test3; ...

  7. php 坦克大战,js坦克大战以实现炮弹击中目标消失并且记分

    js坦克大战以实现炮弹击中目标消失并且记分 话不多说 下载下面的代码包就能看到效果, 效果图: js代码如下:/**初始化*/ var shell=document.getElementById('t ...

  8. Java之坦克大战(二)---坦克图形绘制

    紧接着我们上一篇的坦克大战一,今天我们先画出一个坦克. 如果直接用面向过程的思想来做的话,那么很容易就可以画出一个坦克. 但是后面我们需要画出很多个坦克, 所以我们要先把面向对象的思想设计好. 我们的 ...

  9. java 坦克大战画坦克_java简易坦克大战(2)

    public class Tank1 extends JFrame implements ActionListener { MyPanel mp = null; GuanKaPanel gkmb = ...

最新文章

  1. java修改 nsf中的数据_最新NSF申请指南中的一些重要改动
  2. linux 下共享库创建及使用
  3. 【转】NuGet学习笔记(2)——使用图形化界面打包自己的类库
  4. avatar.php uid,phpcms函数库中获取会员头像方法get_memberavatar()有时无效问题
  5. 保证elementUI组件文本域内容为json
  6. 工作与生活 -- 平衡是必须的
  7. mock java 反射,PowerMock,Mockito和反射api的最终类
  8. python与机器学习(二)Numpy / Pandas /矩阵相乘速度对比
  9. 【分享】U盘大小的随身电脑 – Cotton Candy
  10. hive 列表去重_Hive企业级调优
  11. 第一章 基本句型及补语
  12. w ndows无法完成格式化,windows无法完成格式化,小编教你解决windows无法完成格式化U盘...
  13. Web 3.0 有哪些值得关注的项目
  14. Couldnt find preset es2015 relative to directory
  15. 最长的名字 /比较最长的字符串并输出
  16. 马士兵教你如何面试(记录原话)
  17. Hive ,Hsql行转列、列转行实现
  18. R语言swirl教程(R Programming)11——vapply and tapply
  19. 手机中毒变“肉鸡” 个人信息1元贱卖
  20. 2018南昌java工资_【帆软软件工资】java开发工程师待遇-看准网

热门文章

  1. 计算机端口怎么配置波特率,PLC波特率设置
  2. 个人项目-地铁出行线路规划程序
  3. 优化总结:有哪些APP启动提速方法?
  4. 用python画雪人-萌系新潮玩,唱多多小雪人麦克风天猫独家首发
  5. 闲鱼冻结多个欺诈用户:还是治标不治本
  6. 2017年7月编程语言排行榜
  7. 帕斯卡命名法、驼峰命名法、下划线命名法
  8. 用python3的pyspider爬取国家统计局的行政区域(只到乡镇级,更新到2017年)
  9. 广义可加模型GAM在python上的复现
  10. 【归并排序】--递归与非递归实现