using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShipPlayerController : MonoBehaviour
{
public Projectile Bullet;
public Camera CameraObject;
public float FireRate = 0.5f;
public float MoveSpeed = 10.0f;
public float SpeedBoost = 20.0f;
private float FireTimer = 0.0f;
public float TotalAmount = 48.0f;
public float AmountPerSecond = 12.0f;
public float Current = 0f;
public float BaseSpeed = 6.0f;
private Vector3 movement = Vector3.zero;
void Start()
{
}
void Update()
{
if (Input.GetKeyDown(KeyCode.T))
{
MoveSpeed = MoveSpeed + SpeedBoost;
}
else if (Input.GetKeyUp(KeyCode.T))
{
MoveSpeed = SpeedBoost;
}
else
UpdatePosition();
UpdateFiring();
}
void UpdatePosition()
{
movement.x = Input.GetAxis("Horizontal") * Time.deltaTime * MoveSpeed;
movement.y = Input.GetAxis("Vertical") * Time.deltaTime * MoveSpeed;
gameObject.transform.Translate(movement);
Vector3 screenPosition = CameraObject.WorldToScreenPoint(
gameObject.transform.position);
if (screenPosition.y > Screen.height)
{
screenPosition.y = Screen.height;
gameObject.transform.position =
CameraObject.ScreenToWorldPoint(screenPosition);
}
else if (screenPosition.y < 0)
{
screenPosition.y = 0;
gameObject.transform.position =
CameraObject.ScreenToWorldPoint(screenPosition);
}
if (Input.GetKey(KeyCode.T))
{
if (Current <= 0)
{
MoveSpeed = BaseSpeed;
Current = 0;
}
else
{
MoveSpeed = SpeedBoost + BaseSpeed;
Current -= Time.deltaTime * AmountPerSecond;
}
}
else
{
if (Current >= TotalAmount)
{
Current = TotalAmount;
}
else
{
Current += Time.deltaTime * AmountPerSecond;
}
}
}
void UpdateFiring()
{
FireTimer += Time.deltaTime;
if (Input.GetButton("Fire1"))
{
if (FireTimer > FireRate)
{
FireTimer = 0;
DoWeaponFire();
}
}
}
void DoWeaponFire()
{
Instantiate(Bullet, transform.position, transform.rotation);
}
public void updateThruster(float value)
{
thrusteBar.transform.localScale = new Vector3(value, 1, 1);
}
//Updates thrust bar scale for HUD
HUD.updateThruster (AmountPerSecond / TotalAmount);
}
----------------------------------
----------------------------------------------------
-----------------------------------------------------------------
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class HUD : MonoBehaviour
{
public LifeIcon lifeIconObj;
private List lifeIconInstances;
public TextMesh scoreTextMesh;
public TextMesh shieldTextMesh;
private string scoreText;
private string shieldText;
// Use this for initialization
void Start()
{
scoreText = scoreTextMesh.text;
shieldText = shieldTextMesh.text;
updateScore(10);
updateShield(100);
CreateLifeIcons(3);
}
// Update is called once per frame
void Update()
{
}
public void updateScore(int value)
{
scoreTextMesh.text = scoreText;
scoreTextMesh.text += value;
}
public void updateShield(int value)
{
shieldTextMesh.text = shieldText;
shieldTextMesh.text += value;
}
public void updateLives(int numLivesRemaining)
{
for (int i = 0; i < lifeIconInstances.Count; ++i)
{
bool bActive = i < numLivesRemaining;
lifeIconInstances[i].gameObject.SetActive(bActive);
}
}
public void CreateLifeIcons(int numLives)
{
if (lifeIconInstances == null)
{
lifeIconInstances = new List();
lifeIconInstances.Add(lifeIconObj);
Vector3 positionOffset = new Vector3(1.5f, 0, 0);
for (int i = 1; i < numLives; ++i)
{
LifeIcon newlifeIcon;
newlifeIcon = Instantiate(lifeIconObj,
lifeIconObj.transform.position,
lifeIconObj.transform.rotation) as LifeIcon;
Vector3 newPosition = newlifeIcon.transform.position;
newPosition.x += (positionOffset.x * i);
newlifeIcon.transform.position = newPosition;
newlifeIcon.transform.localScale = new Vector3(1, 1, 1);
lifeIconInstances.Add(newlifeIcon);
}
}
}
}
↧







