Add CT3536 Games Programming

This commit is contained in:
2023-12-07 02:05:57 +00:00
parent eb94d02f16
commit 71e1a59261
14438 changed files with 919425 additions and 0 deletions

View File

@ -0,0 +1,55 @@
// Andrew Hayes, ID: 21321503
// some of the comments here are quite obvious, and are just here for my own learning purposes
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameManager : MonoBehaviour {
// inspector settings
public GameObject mars;
public GameObject phobos;
public GameObject deimos;
public GameObject asteroid;
// speed that the camera moves around mars on arrow keypress
public float cameraSpeed = 500;
// Start is called before the first frame update
void Start() {
// set position of mars object and point camera at it
mars.transform.position = new Vector3(0,0,0);
mars.transform.rotation = Quaternion.Euler(new Vector3(270,0,0)); // make it so mars' north pole points up
Camera.main.transform.position = new Vector3(0,0,-100);
Camera.main.transform.LookAt(mars.transform);
// before this can run, you need to manually add a rigid body with 0 angular velocity and no gravity in the UI
// start mars rotating
mars.GetComponent<Rigidbody>().AddTorque(new Vector3(0,20,0));
}
void Update() {
// rotate phobos and deimos a little each frame
phobos.transform.RotateAround(mars.transform.position, Vector3.up, 32*Time.deltaTime);
deimos.transform.RotateAround(mars.transform.position, Vector3.up, 8*Time.deltaTime);
// control the camera's position using the arrow keys
if (Input.GetKey(KeyCode.LeftArrow)) {
Camera.main.transform.RotateAround(Vector3.zero, Vector3.up, cameraSpeed * Time.deltaTime);
}
else if (Input.GetKey(KeyCode.RightArrow)) {
Camera.main.transform.RotateAround(Vector3.zero, Vector3.up, -cameraSpeed * Time.deltaTime);
}
else if (Input.GetKey(KeyCode.UpArrow)) {
Camera.main.transform.RotateAround(Vector3.zero, Vector3.right, cameraSpeed * Time.deltaTime);
}
else if (Input.GetKey(KeyCode.DownArrow)) {
Camera.main.transform.RotateAround(Vector3.zero, Vector3.right, -cameraSpeed * Time.deltaTime);
}
// randomly spawn new asteroids
if (Random.Range(1,180) == 1) { // assuming Update() is called 60 times per second, want to spawn a new asteroid on average once every 3 seconds
Instantiate(asteroid); // instantiating asteroid prefab
}
}
}