坦克代码

 1 using System.Collections;
 2 using System.Collections.Generic;
 3 using UnityEngine;
 4 
 5 public class player : MonoBehaviour
 6 {
 7 
 8     private SpriteRenderer spriteRender; // 精灵渲染
 9     public Sprite[] tankSprite; //坦克的精灵数组,左右  
10     public float moveSpeed = 3f;
11     public GameObject bulletPrefab;//子弹预制体
12     public float speed = 5f;
13     private Vector3 bulletEulerAngles; //子弹旋转角度
14    
15     // Use this for initialization
16     void Start()
17     {
18         spriteRender = this.GetComponent<SpriteRenderer>(); //获取到精灵渲染组件
19     }
20 
21     // Update is called once per frame
22     //void Update()
23     //{
24     //    float h = Input.GetAxisRaw("Horizontal"); //水平轴 x方向(-1,1)
25     //    transform.Translate(Vector3.right * h * moveSpeed * Time.deltaTime, Space.World); //
26     //    if (h > 0)  //向右移动
27     //    {
28     //        spriteRender.sprite = tankSprite[1]; //向右移动的图片
29     //    }
30     //    else if (h < 0)
31     //    {
32     //        spriteRender.sprite = tankSprite[3]; //向左移动
33     //    }
34     //    float v = Input.GetAxisRaw("Vertical"); // 垂直方向
35     //    transform.Translate(Vector3.up * v * moveSpeed * Time.deltaTime, Space.World);
36     //    if(v > 0)
37     //    {
38     //        spriteRender.sprite = tankSprite[0];
39     //    }
40     //    else if (v < 0)
41     //    {
42     //        spriteRender.sprite = tankSprite[2];
43     //    }
44     //}
45     void FixedUpdate()
46     {
47         Move();
48         Attack();
49     
50     }
51     //tank 的移动方法
52     void Move()
53     {
54         float h = Input.GetAxisRaw("Horizontal"); //水平轴 x方向(-1,1)
55         transform.Translate(Vector3.right * h * moveSpeed * Time.fixedDeltaTime, Space.World); //
56         if (h > 0)  //向右移动
57         {
58             spriteRender.sprite = tankSprite[1]; //向右移动的图片
59             bulletEulerAngles = new Vector3(0, 0, -90);
60         }
61         else if (h < 0)
62         {
63             spriteRender.sprite = tankSprite[3]; //向左移动
64             bulletEulerAngles = new Vector3(0, 0, 90);
65         }
66 
67         if (h != 0)
68         {
69             return;
70         }
71 
72         float v = Input.GetAxisRaw("Vertical"); // 垂直方向
73         transform.Translate(Vector3.up * v * moveSpeed * Time.fixedDeltaTime, Space.World);
74         if (v > 0) //向前移动
75         {
76             spriteRender.sprite = tankSprite[0];
77             bulletEulerAngles = new Vector3(0, 0, 0);
78         }
79         else if (v < 0) //向后
80         {
81             spriteRender.sprite = tankSprite[2];
82             bulletEulerAngles = new Vector3(0, 0, -180);
83         }
84     }
85 
86     //坦克的攻击方法
87     void Attack()
88     {
89         if ( Input.GetKeyDown(KeyCode.Space))   //如果按下空格键就发射子弹
90         {
91             GameObject go = GameObject.Instantiate(bulletPrefab, transform.position, Quaternion.Euler(transform.eulerAngles + bulletEulerAngles));
92             Destroy(go, 2f); Destroy(go, 2f);//两秒后销毁子弹
93         }
94         
95     }
96 }

 

posted @ 2020-07-02 10:40  瓜沙呱  阅读(704)  评论(0)    收藏  举报