Add CT3536 Games Programming
This commit is contained in:
Binary file not shown.
@ -0,0 +1,104 @@
|
||||
%! TeX program = lualatex
|
||||
\documentclass[a4paper, 11pt]{article}
|
||||
|
||||
|
||||
% packages
|
||||
\usepackage{microtype} % Slightly tweak font spacing for aesthetics
|
||||
\usepackage[english]{babel} % Language hyphenation and typographical rules
|
||||
\usepackage[final, colorlinks = false, urlcolor = cyan]{hyperref}
|
||||
\usepackage{changepage} % adjust margins on the fly
|
||||
\usepackage{fontspec}
|
||||
|
||||
\usepackage{minted}
|
||||
\usepackage{xcolor}
|
||||
|
||||
\usepackage{pgfplots}
|
||||
\pgfplotsset{width=\textwidth,compat=1.9}
|
||||
|
||||
\usepackage{caption}
|
||||
\newenvironment{code}{\captionsetup{type=listing, skip=0pt}}{}
|
||||
|
||||
\usepackage[yyyymmdd]{datetime}
|
||||
\renewcommand{\dateseparator}{-}
|
||||
\setmainfont{EB Garamond}
|
||||
\setmonofont[Scale=MatchLowercase]{Deja Vu Sans Mono}
|
||||
|
||||
\usepackage{titlesec}
|
||||
% \titleformat{\section}{\LARGE\bfseries}{}{}{}[\titlerule]
|
||||
% \titleformat{\subsection}{\Large\bfseries}{}{0em}{}
|
||||
% \titlespacing{\subsection}{0em}{-0.7em}{0em}
|
||||
%
|
||||
% \titleformat{\subsubsection}{\large\bfseries}{}{0em}{$\bullet$ }
|
||||
% \titlespacing{\subsubsection}{1em}{-0.7em}{0em}
|
||||
|
||||
% margins
|
||||
\addtolength{\hoffset}{-2.25cm}
|
||||
\addtolength{\textwidth}{4.5cm}
|
||||
\addtolength{\voffset}{-3.25cm}
|
||||
\addtolength{\textheight}{5cm}
|
||||
\setlength{\parskip}{0pt}
|
||||
\setlength{\parindent}{0in}
|
||||
% \setcounter{secnumdepth}{0}
|
||||
|
||||
\begin{document}
|
||||
\hrule \medskip
|
||||
\begin{minipage}{0.295\textwidth}
|
||||
\raggedright
|
||||
\footnotesize
|
||||
\textbf{Name:} Andrew Hayes \\
|
||||
\textbf{E-mail:} \href{mailto://a.hayes18@universityofgalway.ie}{a.hayes18@universityofgalway.ie} \hfill\\
|
||||
\textbf{ID:} 21321503 \hfill
|
||||
\end{minipage}
|
||||
\begin{minipage}{0.4\textwidth}
|
||||
\centering
|
||||
\vspace{0.4em}
|
||||
\Large
|
||||
\textbf{CT3536} \\
|
||||
\end{minipage}
|
||||
\begin{minipage}{0.295\textwidth}
|
||||
\raggedleft
|
||||
\today
|
||||
\end{minipage}
|
||||
\medskip\hrule
|
||||
\begin{center}
|
||||
\normalsize
|
||||
\textbf{Lab Assignment 07}
|
||||
\end{center}
|
||||
\hrule
|
||||
|
||||
\begin{code}
|
||||
\inputminted[texcl, mathescape, breaklines, frame=single, linenos]{csharp}{/home/andrew/code/Unity/Asteroids/Assets/GameManager.cs}
|
||||
\caption{\texttt{GameManager.cs}}
|
||||
\end{code}
|
||||
|
||||
\begin{code}
|
||||
\inputminted[texcl, mathescape, breaklines, frame=single, linenos]{csharp}{/home/andrew/code/Unity/Asteroids/Assets/Resources/Asteroid.cs}
|
||||
\caption{\texttt{Asteroid.cs}}
|
||||
\end{code}
|
||||
|
||||
\begin{code}
|
||||
\inputminted[texcl, mathescape, breaklines, frame=single, linenos]{csharp}{/home/andrew/code/Unity/Asteroids/Assets/GUIScript.cs}
|
||||
\caption{\texttt{GUIScript.cs}}
|
||||
\end{code}
|
||||
|
||||
\begin{code}
|
||||
\inputminted[texcl, mathescape, breaklines, frame=single, linenos]{csharp}{/home/andrew/code/Unity/Asteroids/Assets/ScreenEdgeChecker.cs}
|
||||
\caption{\texttt{ScreenEdgeChecker.cs}}
|
||||
\end{code}
|
||||
|
||||
\begin{code}
|
||||
\inputminted[texcl, mathescape, breaklines, frame=single, linenos]{csharp}{/home/andrew/code/Unity/Asteroids/Assets/Spaceship.cs}
|
||||
\caption{\texttt{Spaceship.cs}}
|
||||
\end{code}
|
||||
|
||||
\begin{code}
|
||||
\inputminted[texcl, mathescape, breaklines, frame=single, linenos]{csharp}{/home/andrew/code/Unity/Asteroids/Assets/SpeedLimiter.cs}
|
||||
\caption{\texttt{SpeedLimiter.cs}}
|
||||
\end{code}
|
||||
|
||||
|
||||
\begin{code}
|
||||
\inputminted[texcl, mathescape, breaklines, frame=single, linenos]{csharp}{/home/andrew/code/Unity/Asteroids/Assets/Resources/Bullet.cs}
|
||||
\caption{\texttt{Bullet.cs}}
|
||||
\end{code}
|
||||
\end{document}
|
@ -0,0 +1,79 @@
|
||||
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{System.Collections}\PYG{p}{;}
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{System.Collections.Generic}\PYG{p}{;}
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{UnityEngine}\PYG{p}{;}
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{UnityEngine.UI}\PYG{p}{;}
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{TMPro}\PYG{p}{;}
|
||||
|
||||
\PYG{k}{public}\PYG{+w}{ }\PYG{k}{class}\PYG{+w}{ }\PYG{n+nc}{GameManager}\PYG{+w}{ }\PYG{p}{:}\PYG{+w}{ }\PYG{n}{MonoBehaviour}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// inspector settings }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{n}{GameObject}\PYG{+w}{ }\PYG{n}{asteroidPrefab}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{spaceshipPrefab}\PYG{p}{;}
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{n}{TextMeshProUGUI}\PYG{+w}{ }\PYG{n}{scoreText}\PYG{p}{;}
|
||||
|
||||
\PYG{+w}{ }\PYG{c+c1}{// class-level statics }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{k}{static}\PYG{+w}{ }\PYG{n}{GameManager}\PYG{+w}{ }\PYG{n}{instance}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{k}{static}\PYG{+w}{ }\PYG{k+kt}{int}\PYG{+w}{ }\PYG{n}{currentGameLevel}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{k}{static}\PYG{+w}{ }\PYG{n}{Vector3}\PYG{+w}{ }\PYG{n}{screenBottomLeft}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{screenTopRight}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{k}{static}\PYG{+w}{ }\PYG{k+kt}{float}\PYG{+w}{ }\PYG{n}{screenWidth}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{screenHeight}\PYG{p}{;}\PYG{+w}{ }
|
||||
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{k}{static}\PYG{+w}{ }\PYG{k+kt}{bool}\PYG{+w}{ }\PYG{n}{inMenuState}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{k}{true}\PYG{p}{;}
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{k}{static}\PYG{+w}{ }\PYG{k+kt}{int}\PYG{+w}{ }\PYG{n}{highScore}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+m}{0}\PYG{p}{;}
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{k}{static}\PYG{+w}{ }\PYG{k+kt}{int}\PYG{+w}{ }\PYG{n}{numLives}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+m}{3}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{k}{static}\PYG{+w}{ }\PYG{k+kt}{int}\PYG{+w}{ }\PYG{n}{currentScore}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+m}{0}\PYG{p}{;}
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// Use this for initialization }
|
||||
\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{Start}\PYG{+w}{ }\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{instance}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{k}{this}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{Camera}\PYG{p}{.}\PYG{n}{main}\PYG{p}{.}\PYG{n}{transform}\PYG{p}{.}\PYG{n}{position}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{k}{new}\PYG{+w}{ }\PYG{n}{Vector3}\PYG{+w}{ }\PYG{p}{(}\PYG{l+m}{0f}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{30f}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{0f}\PYG{p}{);}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{Camera}\PYG{p}{.}\PYG{n}{main}\PYG{p}{.}\PYG{n}{transform}\PYG{p}{.}\PYG{n}{LookAt}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{Vector3}\PYG{p}{.}\PYG{n}{zero}\PYG{p}{,}\PYG{+w}{ }\PYG{k}{new}\PYG{+w}{ }\PYG{n}{Vector3}\PYG{+w}{ }\PYG{p}{(}\PYG{l+m}{0f}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{0f}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{1f}\PYG{p}{));}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{currentGameLevel}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+m}{0}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
|
||||
\PYG{+w}{ }\PYG{c+c1}{// probably inefficient to update it so often but this works and i'm lazy}
|
||||
\PYG{+w}{ }\PYG{c+c1}{// would be better to only update the text when the values are updated, via a method that updates both}
|
||||
\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{Update}\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
|
||||
\PYG{+w}{ }\PYG{n}{scoreText}\PYG{p}{.}\PYG{n}{text}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+s}{\PYGZdq{}High Score: \PYGZdq{}}\PYG{+w}{ }\PYG{o}{+}\PYG{+w}{ }\PYG{n}{highScore}\PYG{+w}{ }\PYG{o}{+}\PYG{+w}{ }\PYG{l+s}{\PYGZdq{} Score: \PYGZdq{}}\PYG{+w}{ }\PYG{o}{+}\PYG{+w}{ }\PYG{n}{currentScore}\PYG{+w}{ }\PYG{o}{+}\PYG{+w}{ }\PYG{l+s}{\PYGZdq{} Lives: \PYGZdq{}}\PYG{+w}{ }\PYG{o}{+}\PYG{+w}{ }\PYG{n}{numLives}\PYG{p}{;}
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
|
||||
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{k}{static}\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{StartNewGame}\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
|
||||
\PYG{+w}{ }\PYG{n}{numLives}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+m}{3}\PYG{p}{;}
|
||||
\PYG{+w}{ }\PYG{n}{StartNextLevel}\PYG{+w}{ }\PYG{p}{();}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{CreatePlayerSpaceship}\PYG{+w}{ }\PYG{p}{();}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{k}{static}\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{StartNextLevel}\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{currentGameLevel}\PYG{o}{++}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// find screen corners and size, in world coordinates }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// for ViewportToWorldPoint, the z value specified is in world units from the camera }
|
||||
\PYG{+w}{ }\PYG{n}{screenBottomLeft}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{Camera}\PYG{p}{.}\PYG{n}{main}\PYG{p}{.}\PYG{n}{ViewportToWorldPoint}\PYG{p}{(}\PYG{k}{new}\PYG{+w}{ }\PYG{n}{Vector3}\PYG{p}{(}\PYG{l+m}{0f}\PYG{p}{,}\PYG{l+m}{0f}\PYG{p}{,}\PYG{l+m}{30f}\PYG{p}{));}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{screenTopRight}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{Camera}\PYG{p}{.}\PYG{n}{main}\PYG{p}{.}\PYG{n}{ViewportToWorldPoint}\PYG{+w}{ }\PYG{p}{(}\PYG{k}{new}\PYG{+w}{ }\PYG{n}{Vector3}\PYG{p}{(}\PYG{l+m}{1f}\PYG{p}{,}\PYG{l+m}{1f}\PYG{p}{,}\PYG{l+m}{30f}\PYG{p}{));}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{screenWidth}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{screenTopRight}\PYG{p}{.}\PYG{n}{x}\PYG{+w}{ }\PYG{o}{\PYGZhy{}}\PYG{+w}{ }\PYG{n}{screenBottomLeft}\PYG{p}{.}\PYG{n}{x}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{screenHeight}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{screenTopRight}\PYG{p}{.}\PYG{n}{z}\PYG{+w}{ }\PYG{o}{\PYGZhy{}}\PYG{+w}{ }\PYG{n}{screenBottomLeft}\PYG{p}{.}\PYG{n}{z}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// instantiate some asteroids near the edges of the screen }
|
||||
\PYG{+w}{ }\PYG{k}{for}\PYG{+w}{ }\PYG{p}{(}\PYG{k+kt}{int}\PYG{+w}{ }\PYG{n}{i}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+m}{0}\PYG{p}{;}\PYG{+w}{ }\PYG{n}{i}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{+w}{ }\PYG{n}{currentGameLevel}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{l+m}{2}\PYG{+w}{ }\PYG{o}{+}\PYG{+w}{ }\PYG{l+m}{3}\PYG{p}{;}\PYG{+w}{ }\PYG{n}{i}\PYG{o}{++}\PYG{p}{)}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{GameObject}\PYG{+w}{ }\PYG{n}{go}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{Instantiate}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{instance}\PYG{p}{.}\PYG{n}{asteroidPrefab}\PYG{p}{)}\PYG{+w}{ }\PYG{k}{as}\PYG{+w}{ }\PYG{n}{GameObject}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k+kt}{float}\PYG{+w}{ }\PYG{n}{x}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{z}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{Random}\PYG{p}{.}\PYG{n}{Range}\PYG{+w}{ }\PYG{p}{(}\PYG{l+m}{0f}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{1f}\PYG{p}{)}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{+w}{ }\PYG{l+m}{0.5f}\PYG{p}{)}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{x}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{screenBottomLeft}\PYG{p}{.}\PYG{n}{x}\PYG{+w}{ }\PYG{o}{+}\PYG{+w}{ }\PYG{n}{Random}\PYG{p}{.}\PYG{n}{Range}\PYG{+w}{ }\PYG{p}{(}\PYG{l+m}{0f}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{0.15f}\PYG{p}{)}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{n}{screenWidth}\PYG{p}{;}\PYG{+w}{ }\PYG{c+c1}{// near the left edge }
|
||||
\PYG{+w}{ }\PYG{k}{else}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{x}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{screenTopRight}\PYG{p}{.}\PYG{n}{x}\PYG{+w}{ }\PYG{o}{\PYGZhy{}}\PYG{+w}{ }\PYG{n}{Random}\PYG{p}{.}\PYG{n}{Range}\PYG{+w}{ }\PYG{p}{(}\PYG{l+m}{0f}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{0.15f}\PYG{p}{)}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{n}{screenWidth}\PYG{p}{;}\PYG{+w}{ }\PYG{c+c1}{// near the right edge }
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{Random}\PYG{p}{.}\PYG{n}{Range}\PYG{+w}{ }\PYG{p}{(}\PYG{l+m}{0f}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{1f}\PYG{p}{)}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{+w}{ }\PYG{l+m}{0.5f}\PYG{p}{)}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{z}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{screenBottomLeft}\PYG{p}{.}\PYG{n}{z}\PYG{+w}{ }\PYG{o}{+}\PYG{+w}{ }\PYG{n}{Random}\PYG{p}{.}\PYG{n}{Range}\PYG{+w}{ }\PYG{p}{(}\PYG{l+m}{0f}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{0.15f}\PYG{p}{)}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{n}{screenHeight}\PYG{p}{;}\PYG{+w}{ }\PYG{c+c1}{// near the bottom edge }
|
||||
\PYG{+w}{ }\PYG{k}{else}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{z}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{screenTopRight}\PYG{p}{.}\PYG{n}{z}\PYG{+w}{ }\PYG{o}{\PYGZhy{}}\PYG{+w}{ }\PYG{n}{Random}\PYG{p}{.}\PYG{n}{Range}\PYG{+w}{ }\PYG{p}{(}\PYG{l+m}{0f}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{0.15f}\PYG{p}{)}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{n}{screenHeight}\PYG{p}{;}\PYG{+w}{ }\PYG{c+c1}{// near the top edge }
|
||||
\PYG{+w}{ }\PYG{n}{go}\PYG{p}{.}\PYG{n}{transform}\PYG{p}{.}\PYG{n}{position}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{k}{new}\PYG{+w}{ }\PYG{n}{Vector3}\PYG{p}{(}\PYG{n}{x}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{0f}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{z}\PYG{p}{);}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{go}\PYG{p}{.}\PYG{n}{GetComponent}\PYG{o}{\PYGZlt{}}\PYG{n}{Asteroid}\PYG{o}{\PYGZgt{}}\PYG{+w}{ }\PYG{p}{().}\PYG{n}{SetScale}\PYG{+w}{ }\PYG{p}{(}\PYG{l+m}{0.08f}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{0.12f}\PYG{p}{);}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{k}{static}\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{CreatePlayerSpaceship}\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// instantiate the player's spaceship }
|
||||
\PYG{+w}{ }\PYG{n}{GameObject}\PYG{+w}{ }\PYG{n}{go}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{Instantiate}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{instance}\PYG{p}{.}\PYG{n}{spaceshipPrefab}\PYG{p}{)}\PYG{+w}{ }\PYG{k}{as}\PYG{+w}{ }\PYG{n}{GameObject}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{go}\PYG{p}{.}\PYG{n}{transform}\PYG{p}{.}\PYG{n}{position}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{Vector3}\PYG{p}{.}\PYG{n}{zero}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{p}{\PYGZcb{}}
|
||||
\end{Verbatim}
|
@ -0,0 +1,43 @@
|
||||
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{System.Collections}\PYG{p}{;}
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{System.Collections.Generic}\PYG{p}{;}
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{UnityEngine}\PYG{p}{;}
|
||||
|
||||
\PYG{k}{public}\PYG{+w}{ }\PYG{k}{class}\PYG{+w}{ }\PYG{n+nc}{ScreenEdgeChecker}\PYG{+w}{ }\PYG{p}{:}\PYG{+w}{ }\PYG{n}{MonoBehaviour}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// inspector settings }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{n}{Rigidbody}\PYG{+w}{ }\PYG{n}{rigidBody}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{k+kt}{bool}\PYG{+w}{ }\PYG{n}{destroyWhenOffscreen}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{k}{false}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// Use this for initialization }
|
||||
\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{Start}\PYG{+w}{ }\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// start periodically checking for being off-screen }
|
||||
\PYG{+w}{ }\PYG{n}{InvokeRepeating}\PYG{+w}{ }\PYG{p}{(}\PYG{l+s}{\PYGZdq{}CheckScreenEdges\PYGZdq{}}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{0.1f}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{0.1f}\PYG{p}{);}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{private}\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{CheckScreenEdges}\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{Vector3}\PYG{+w}{ }\PYG{n}{pos}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{transform}\PYG{p}{.}\PYG{n}{position}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{Vector3}\PYG{+w}{ }\PYG{n}{vel}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{rigidBody}\PYG{p}{.}\PYG{n}{velocity}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k+kt}{float}\PYG{+w}{ }\PYG{n}{xTeleport}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+m}{0f}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{zTeleport}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+m}{0f}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{pos}\PYG{p}{.}\PYG{n}{x}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{screenBottomLeft}\PYG{p}{.}\PYG{n}{x}\PYG{+w}{ }\PYG{o}{\PYGZam{}\PYGZam{}}\PYG{+w}{ }\PYG{n}{vel}\PYG{p}{.}\PYG{n}{x}\PYG{+w}{ }\PYG{o}{\PYGZlt{}=}\PYG{+w}{ }\PYG{l+m}{0f}\PYG{p}{)}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{xTeleport}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{screenWidth}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{else}\PYG{+w}{ }\PYG{n+nf}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{pos}\PYG{p}{.}\PYG{n}{x}\PYG{+w}{ }\PYG{o}{\PYGZgt{}}\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{screenTopRight}\PYG{p}{.}\PYG{n}{x}\PYG{+w}{ }\PYG{o}{\PYGZam{}\PYGZam{}}\PYG{+w}{ }\PYG{n}{vel}\PYG{p}{.}\PYG{n}{x}\PYG{+w}{ }\PYG{o}{\PYGZgt{}=}\PYG{+w}{ }\PYG{l+m}{0f}\PYG{p}{)}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{xTeleport}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{o}{\PYGZhy{}}\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{screenWidth}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{pos}\PYG{p}{.}\PYG{n}{z}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{screenBottomLeft}\PYG{p}{.}\PYG{n}{z}\PYG{+w}{ }\PYG{o}{\PYGZam{}\PYGZam{}}\PYG{+w}{ }\PYG{n}{vel}\PYG{p}{.}\PYG{n}{z}\PYG{+w}{ }\PYG{o}{\PYGZlt{}=}\PYG{+w}{ }\PYG{l+m}{0f}\PYG{p}{)}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{zTeleport}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{screenHeight}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{else}\PYG{+w}{ }\PYG{n+nf}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{pos}\PYG{p}{.}\PYG{n}{z}\PYG{+w}{ }\PYG{o}{\PYGZgt{}}\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{screenTopRight}\PYG{p}{.}\PYG{n}{z}\PYG{+w}{ }\PYG{o}{\PYGZam{}\PYGZam{}}\PYG{+w}{ }\PYG{n}{vel}\PYG{p}{.}\PYG{n}{z}\PYG{+w}{ }\PYG{o}{\PYGZgt{}=}\PYG{+w}{ }\PYG{l+m}{0f}\PYG{p}{)}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{zTeleport}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{o}{\PYGZhy{}}\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{screenHeight}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{xTeleport}\PYG{+w}{ }\PYG{o}{!=}\PYG{+w}{ }\PYG{l+m}{0f}\PYG{+w}{ }\PYG{o}{||}\PYG{+w}{ }\PYG{n}{zTeleport}\PYG{+w}{ }\PYG{o}{!=}\PYG{+w}{ }\PYG{l+m}{0f}\PYG{p}{)}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{destroyWhenOffscreen}\PYG{p}{)}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{Destroy}\PYG{+w}{ }\PYG{p}{(}\PYG{k}{this}\PYG{p}{.}\PYG{n}{gameObject}\PYG{p}{);}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{else}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{transform}\PYG{p}{.}\PYG{n}{position}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{k}{new}\PYG{+w}{ }\PYG{n}{Vector3}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{pos}\PYG{p}{.}\PYG{n}{x}\PYG{+w}{ }\PYG{o}{+}\PYG{+w}{ }\PYG{n}{xTeleport}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{0f}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{pos}\PYG{p}{.}\PYG{n}{z}\PYG{+w}{ }\PYG{o}{+}\PYG{+w}{ }\PYG{n}{zTeleport}\PYG{p}{);}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\end{Verbatim}
|
@ -0,0 +1,55 @@
|
||||
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{System.Collections}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{System.Collections.Generic}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{UnityEngine}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{k}{public}\PYG{+w}{ }\PYG{k}{class}\PYG{+w}{ }\PYG{n+nc}{Asteroid}\PYG{+w}{ }\PYG{p}{:}\PYG{+w}{ }\PYG{n}{MonoBehaviour}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// inspector settings }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{n}{Rigidbody}\PYG{+w}{ }\PYG{n}{rigidBody}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// Use this for initialization }
|
||||
\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{Start}\PYG{+w}{ }\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// randomise velocity }
|
||||
\PYG{+w}{ }\PYG{n}{rigidBody}\PYG{p}{.}\PYG{n}{velocity}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{k}{new}\PYG{+w}{ }\PYG{n}{Vector3}\PYG{p}{(}\PYG{n}{Random}\PYG{p}{.}\PYG{n}{Range}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m}{10f}\PYG{p}{,}\PYG{l+m}{10f}\PYG{p}{),}\PYG{+w}{ }\PYG{l+m}{0f}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{Random}\PYG{p}{.}\PYG{n}{Range}\PYG{+w}{ }\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m}{10f}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{10f}\PYG{p}{));}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{rigidBody}\PYG{p}{.}\PYG{n}{angularVelocity}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{k}{new}\PYG{+w}{ }\PYG{n}{Vector3}\PYG{p}{(}\PYG{n}{Random}\PYG{p}{.}\PYG{n}{Range}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m}{4f}\PYG{p}{,}\PYG{l+m}{4f}\PYG{p}{),}\PYG{+w}{ }\PYG{n}{Random}\PYG{p}{.}\PYG{n}{Range}\PYG{+w}{ }\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m}{4f}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{4f}\PYG{p}{),}\PYG{+w}{ }\PYG{n}{Random}\PYG{p}{.}\PYG{n}{Range}\PYG{+w}{ }\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m}{4f}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{4f}\PYG{p}{));}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{SetScale}\PYG{p}{(}\PYG{k+kt}{float}\PYG{+w}{ }\PYG{n}{min}\PYG{p}{,}\PYG{+w}{ }\PYG{k+kt}{float}\PYG{+w}{ }\PYG{n}{max}\PYG{p}{)}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{transform}\PYG{p}{.}\PYG{n}{localScale}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{k}{new}\PYG{+w}{ }\PYG{n}{Vector3}\PYG{p}{(}\PYG{n}{Random}\PYG{p}{.}\PYG{n}{Range}\PYG{p}{(}\PYG{n}{min}\PYG{p}{,}\PYG{n}{max}\PYG{p}{),}\PYG{+w}{ }\PYG{n}{Random}\PYG{p}{.}\PYG{n}{Range}\PYG{p}{(}\PYG{n}{min}\PYG{p}{,}\PYG{n}{max}\PYG{p}{),}\PYG{+w}{ }\PYG{n}{Random}\PYG{p}{.}\PYG{n}{Range}\PYG{p}{(}\PYG{n}{min}\PYG{p}{,}\PYG{n}{max}\PYG{p}{));}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{rigidBody}\PYG{p}{.}\PYG{n}{mass}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{transform}\PYG{p}{.}\PYG{n}{localScale}\PYG{p}{.}\PYG{n}{x}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{n}{transform}\PYG{p}{.}\PYG{n}{localScale}\PYG{p}{.}\PYG{n}{y}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{n}{transform}\PYG{p}{.}\PYG{n}{localScale}\PYG{p}{.}\PYG{n}{z}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{OnCollisionEnter}\PYG{p}{(}\PYG{n}{Collision}\PYG{+w}{ }\PYG{n}{collision}\PYG{p}{)}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{o}{!}\PYG{n}{collision}\PYG{p}{.}\PYG{n}{gameObject}\PYG{p}{.}\PYG{n}{name}\PYG{p}{.}\PYG{n}{Contains}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}asteroid\PYGZdq{}}\PYG{p}{))}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{Spaceship}\PYG{+w}{ }\PYG{n}{ss}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{collision}\PYG{p}{.}\PYG{n}{gameObject}\PYG{p}{.}\PYG{n}{GetComponent}\PYG{o}{\PYGZlt{}}\PYG{n}{Spaceship}\PYG{o}{\PYGZgt{}}\PYG{+w}{ }\PYG{p}{();}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{ss}\PYG{+w}{ }\PYG{o}{!=}\PYG{+w}{ }\PYG{k}{null}\PYG{+w}{ }\PYG{o}{\PYGZam{}\PYGZam{}}\PYG{+w}{ }\PYG{n}{ss}\PYG{p}{.}\PYG{n}{isInvulnerable}\PYG{p}{)}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{return}\PYG{p}{;}\PYG{+w}{ }
|
||||
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{collision}\PYG{p}{.}\PYG{n}{gameObject}\PYG{p}{.}\PYG{n}{name}\PYG{p}{.}\PYG{n}{Contains}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}Bullet\PYGZdq{}}\PYG{p}{))}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
|
||||
\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{currentScore}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{currentScore}\PYG{+w}{ }\PYG{o}{+}\PYG{+w}{ }\PYG{l+m}{10}\PYG{p}{;}\PYG{+w}{ }\PYG{c+c1}{// assuming same points no matter how big asteroid is}
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// we've collided with something other than another asteroid }
|
||||
\PYG{+w}{ }\PYG{n}{Destroy}\PYG{p}{(}\PYG{n}{collision}\PYG{p}{.}\PYG{n}{gameObject}\PYG{p}{);}\PYG{+w}{ }\PYG{c+c1}{// if it's the player spaceship, the Spaceship script’s OnDestroy will look after re-creating it }
|
||||
\PYG{+w}{ }\PYG{n}{Destroy}\PYG{p}{(}\PYG{k}{this}\PYG{p}{.}\PYG{n}{gameObject}\PYG{p}{);}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{rigidBody}\PYG{p}{.}\PYG{n}{mass}\PYG{+w}{ }\PYG{o}{\PYGZgt{}}\PYG{+w}{ }\PYG{l+m}{0.00015f}\PYG{p}{)}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k+kt}{float}\PYG{+w}{ }\PYG{n}{minScale}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{rigidBody}\PYG{p}{.}\PYG{n}{mass}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{l+m}{50f}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k+kt}{float}\PYG{+w}{ }\PYG{n}{maxScale}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{minScale}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{l+m}{2f}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{for}\PYG{+w}{ }\PYG{p}{(}\PYG{k+kt}{int}\PYG{+w}{ }\PYG{n}{i}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+m}{0}\PYG{p}{;}\PYG{+w}{ }\PYG{n}{i}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{+w}{ }\PYG{l+m}{3}\PYG{p}{;}\PYG{+w}{ }\PYG{n}{i}\PYG{o}{++}\PYG{p}{)}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{GameObject}\PYG{+w}{ }\PYG{n}{go}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{Instantiate}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{instance}\PYG{p}{.}\PYG{n}{asteroidPrefab}\PYG{p}{)}\PYG{+w}{ }\PYG{k}{as}\PYG{+w}{ }\PYG{n}{GameObject}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{go}\PYG{p}{.}\PYG{n}{transform}\PYG{p}{.}\PYG{n}{position}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{transform}\PYG{p}{.}\PYG{n}{position}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{go}\PYG{p}{.}\PYG{n}{GetComponent}\PYG{o}{\PYGZlt{}}\PYG{n}{Asteroid}\PYG{o}{\PYGZgt{}}\PYG{+w}{ }\PYG{p}{().}\PYG{n}{SetScale}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{minScale}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{maxScale}\PYG{p}{);}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
|
||||
\PYG{+w}{ }\PYG{c+c1}{// if there are no more asteroids left, start next level }
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{GameObject}\PYG{p}{.}\PYG{n}{FindGameObjectsWithTag}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}asteroid\PYGZdq{}}\PYG{p}{).}\PYG{n}{Length}\PYG{+w}{ }\PYG{o}{==}\PYG{+w}{ }\PYG{l+m}{0}\PYG{p}{)}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
|
||||
\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{StartNextLevel}\PYG{p}{();}
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\end{Verbatim}
|
@ -0,0 +1,39 @@
|
||||
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{System.Collections}\PYG{p}{;}
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{System.Collections.Generic}\PYG{p}{;}
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{UnityEngine}\PYG{p}{;}
|
||||
|
||||
\PYG{k}{public}\PYG{+w}{ }\PYG{k}{class}\PYG{+w}{ }\PYG{n+nc}{GUIScript}\PYG{+w}{ }\PYG{p}{:}\PYG{+w}{ }\PYG{n}{MonoBehaviour}
|
||||
\PYG{p}{\PYGZob{}}
|
||||
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{n}{Canvas}\PYG{+w}{ }\PYG{n}{menu}\PYG{p}{;}
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{n}{Canvas}\PYG{+w}{ }\PYG{n}{gameCanvas}\PYG{p}{;}
|
||||
|
||||
\PYG{+w}{ }\PYG{c+c1}{// Start is called before the first frame update}
|
||||
\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{Start}\PYG{p}{()}
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZob{}}
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
|
||||
|
||||
\PYG{+w}{ }\PYG{c+c1}{// Update is called once per frame}
|
||||
\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{Update}\PYG{p}{()}
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZob{}}
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
|
||||
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{OnButtonClick}\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
|
||||
\PYG{+w}{ }\PYG{n}{menu}\PYG{p}{.}\PYG{n}{gameObject}\PYG{p}{.}\PYG{n}{SetActive}\PYG{p}{(}\PYG{k}{false}\PYG{p}{);}
|
||||
\PYG{+w}{ }\PYG{n}{gameCanvas}\PYG{p}{.}\PYG{n}{gameObject}\PYG{p}{.}\PYG{n}{SetActive}\PYG{p}{(}\PYG{k}{true}\PYG{p}{);}
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{inMenuState}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{k}{false}\PYG{p}{;}
|
||||
\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{StartNewGame}\PYG{p}{();}
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
|
||||
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{SwitchToMenu}\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
|
||||
\PYG{+w}{ }\PYG{n}{menu}\PYG{p}{.}\PYG{n}{gameObject}\PYG{p}{.}\PYG{n}{SetActive}\PYG{p}{(}\PYG{k}{true}\PYG{p}{);}
|
||||
\PYG{+w}{ }\PYG{n}{gameCanvas}\PYG{p}{.}\PYG{n}{gameObject}\PYG{p}{.}\PYG{n}{SetActive}\PYG{p}{(}\PYG{k}{false}\PYG{p}{);}
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{inMenuState}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{k}{true}\PYG{p}{;}
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
|
||||
\PYG{p}{\PYGZcb{}}
|
||||
\end{Verbatim}
|
@ -0,0 +1,86 @@
|
||||
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{System.Collections}\PYG{p}{;}
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{System.Collections.Generic}\PYG{p}{;}
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{UnityEngine}\PYG{p}{;}
|
||||
|
||||
\PYG{k}{public}\PYG{+w}{ }\PYG{k}{class}\PYG{+w}{ }\PYG{n+nc}{Spaceship}\PYG{+w}{ }\PYG{p}{:}\PYG{+w}{ }\PYG{n}{MonoBehaviour}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// inspector settings }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{n}{Rigidbody}\PYG{+w}{ }\PYG{n}{rigidBody}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{n}{GameObject}\PYG{+w}{ }\PYG{n}{bulletPrefab}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{n}{GUIScript}\PYG{+w}{ }\PYG{n}{guiScript}\PYG{p}{;}
|
||||
|
||||
\PYG{+w}{ }\PYG{c+c1}{// public member data }
|
||||
\PYG{+w}{ }\PYG{n+na}{[HideInInspector]}\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{k+kt}{bool}\PYG{+w}{ }\PYG{n}{isInvulnerable}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{k}{true}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// private member data }
|
||||
\PYG{+w}{ }\PYG{k}{private}\PYG{+w}{ }\PYG{k+kt}{float}\PYG{+w}{ }\PYG{n}{lastFiredTime}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+m}{0f}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{Start}\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{Invoke}\PYG{+w}{ }\PYG{p}{(}\PYG{l+s}{\PYGZdq{}MakeVulnerable\PYGZdq{}}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m}{2f}\PYG{p}{);}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{private}\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{MakeVulnerable}\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{isInvulnerable}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{k}{false}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// Update is called once per frame }
|
||||
\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{FixedUpdate}\PYG{+w}{ }\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{Input}\PYG{p}{.}\PYG{n}{GetKey}\PYG{p}{(}\PYG{n}{KeyCode}\PYG{p}{.}\PYG{n}{UpArrow}\PYG{p}{))}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{rigidBody}\PYG{p}{.}\PYG{n}{AddForce}\PYG{p}{(}\PYG{n}{transform}\PYG{p}{.}\PYG{n}{forward}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{rigidBody}\PYG{p}{.}\PYG{n}{mass}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{n}{Time}\PYG{p}{.}\PYG{n}{fixedDeltaTime}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{l+m}{500f}\PYG{p}{));}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{Input}\PYG{p}{.}\PYG{n}{GetKey}\PYG{p}{(}\PYG{n}{KeyCode}\PYG{p}{.}\PYG{n}{LeftArrow}\PYG{p}{))}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{rigidBody}\PYG{p}{.}\PYG{n}{AddTorque}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{n}{transform}\PYG{p}{.}\PYG{n}{up}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{rigidBody}\PYG{p}{.}\PYG{n}{mass}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{n}{Time}\PYG{p}{.}\PYG{n}{deltaTime}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{l+m}{500f}\PYG{p}{));}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{else}\PYG{+w}{ }\PYG{n+nf}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{Input}\PYG{p}{.}\PYG{n}{GetKey}\PYG{p}{(}\PYG{n}{KeyCode}\PYG{p}{.}\PYG{n}{RightArrow}\PYG{p}{))}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{rigidBody}\PYG{p}{.}\PYG{n}{AddTorque}\PYG{p}{(}\PYG{n}{transform}\PYG{p}{.}\PYG{n}{up}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{rigidBody}\PYG{p}{.}\PYG{n}{mass}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{n}{Time}\PYG{p}{.}\PYG{n}{deltaTime}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{l+m}{500f}\PYG{p}{));}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// firing is only allowed at most once per 0.25 seconds }
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{Input}\PYG{p}{.}\PYG{n}{GetKey}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{KeyCode}\PYG{p}{.}\PYG{n}{Space}\PYG{p}{)}\PYG{+w}{ }\PYG{o}{\PYGZam{}\PYGZam{}}\PYG{+w}{ }\PYG{n}{lastFiredTime}\PYG{+w}{ }\PYG{o}{+}\PYG{+w}{ }\PYG{l+m}{0.25f}\PYG{+w}{ }\PYG{o}{\PYGZlt{}=}\PYG{+w}{ }\PYG{n}{Time}\PYG{p}{.}\PYG{n}{time}\PYG{p}{)}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{lastFiredTime}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{Time}\PYG{p}{.}\PYG{n}{time}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{FireBullet}\PYG{+w}{ }\PYG{p}{();}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
|
||||
\PYG{+w}{ }\PYG{c+c1}{// methods for testing, should be removed for actual gameplay}
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{Input}\PYG{p}{.}\PYG{n}{GetKeyDown}\PYG{p}{(}\PYG{n}{KeyCode}\PYG{p}{.}\PYG{n}{Escape}\PYG{p}{))}
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZob{}}
|
||||
\PYG{+w}{ }\PYG{n}{Destroy}\PYG{p}{(}\PYG{n}{gameObject}\PYG{p}{);}\PYG{+w}{ }\PYG{c+c1}{// destroy spaceship}
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{Input}\PYG{p}{.}\PYG{n}{GetKeyDown}\PYG{p}{(}\PYG{n}{KeyCode}\PYG{p}{.}\PYG{n}{Return}\PYG{p}{))}
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZob{}}
|
||||
\PYG{+w}{ }\PYG{c+c1}{// destroy all asteroids and start next level}
|
||||
\PYG{+w}{ }\PYG{k}{foreach}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{GameObject}\PYG{+w}{ }\PYG{n}{asteroid}\PYG{+w}{ }\PYG{k}{in}\PYG{+w}{ }\PYG{n}{GameObject}\PYG{p}{.}\PYG{n}{FindGameObjectsWithTag}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}asteroid\PYGZdq{}}\PYG{p}{))}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
|
||||
\PYG{+w}{ }\PYG{n}{Destroy}\PYG{p}{(}\PYG{n}{asteroid}\PYG{p}{);}
|
||||
\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{StartNextLevel}\PYG{p}{();}
|
||||
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{OnDestroy}\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
|
||||
\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{numLives}\PYG{o}{\PYGZhy{}\PYGZhy{}}\PYG{p}{;}
|
||||
|
||||
\PYG{+w}{ }\PYG{c+c1}{// if the spaceship has more lives, respawn}
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{numLives}\PYG{+w}{ }\PYG{o}{\PYGZgt{}}\PYG{+w}{ }\PYG{l+m}{0}\PYG{p}{)}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
|
||||
\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{CreatePlayerSpaceship}\PYG{p}{();}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
|
||||
\PYG{+w}{ }\PYG{c+c1}{// else destroy all asteroids and go to menu}
|
||||
\PYG{+w}{ }\PYG{k}{else}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
|
||||
\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{highScore}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{currentScore}\PYG{+w}{ }\PYG{o}{\PYGZgt{}}\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{highScore}\PYG{+w}{ }\PYG{o}{?}\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{currentScore}\PYG{+w}{ }\PYG{p}{:}\PYG{+w}{ }\PYG{n}{GameManager}\PYG{p}{.}\PYG{n}{highScore}\PYG{p}{;}
|
||||
\PYG{+w}{ }\PYG{k}{foreach}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{GameObject}\PYG{+w}{ }\PYG{n}{asteroid}\PYG{+w}{ }\PYG{k}{in}\PYG{+w}{ }\PYG{n}{GameObject}\PYG{p}{.}\PYG{n}{FindGameObjectsWithTag}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}asteroid\PYGZdq{}}\PYG{p}{))}\PYG{+w}{ }\PYG{p}{\PYGZob{}}
|
||||
\PYG{+w}{ }\PYG{n}{Destroy}\PYG{p}{(}\PYG{n}{asteroid}\PYG{p}{);}
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
|
||||
\PYG{+w}{ }\PYG{n}{guiScript}\PYG{p}{.}\PYG{n}{SwitchToMenu}\PYG{p}{();}
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{private}\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{FireBullet}\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{GameObject}\PYG{+w}{ }\PYG{n}{go}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{Instantiate}\PYG{p}{(}\PYG{n}{bulletPrefab}\PYG{p}{);}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{go}\PYG{p}{.}\PYG{n}{transform}\PYG{p}{.}\PYG{n}{position}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{transform}\PYG{p}{.}\PYG{n}{position}\PYG{+w}{ }\PYG{o}{+}\PYG{+w}{ }\PYG{n}{transform}\PYG{p}{.}\PYG{n}{forward}\PYG{o}{*}\PYG{l+m}{3f}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{go}\PYG{p}{.}\PYG{n}{transform}\PYG{p}{.}\PYG{n}{rotation}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{transform}\PYG{p}{.}\PYG{n}{rotation}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\end{Verbatim}
|
@ -0,0 +1,22 @@
|
||||
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{System.Collections}\PYG{p}{;}
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{System.Collections.Generic}\PYG{p}{;}
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{UnityEngine}\PYG{p}{;}
|
||||
|
||||
\PYG{k}{public}\PYG{+w}{ }\PYG{k}{class}\PYG{+w}{ }\PYG{n+nc}{Bullet}\PYG{+w}{ }\PYG{p}{:}\PYG{+w}{ }\PYG{n}{MonoBehaviour}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// inspector settings }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{n}{Rigidbody}\PYG{+w}{ }\PYG{n}{rigid}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// Use this for initialization }
|
||||
\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{Start}\PYG{+w}{ }\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{rigid}\PYG{p}{.}\PYG{n}{velocity}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{transform}\PYG{p}{.}\PYG{n}{forward}\PYG{+w}{ }\PYG{o}{*}\PYG{+w}{ }\PYG{l+m}{30f}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// Update is called once per frame }
|
||||
\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{Update}\PYG{+w}{ }\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\end{Verbatim}
|
@ -0,0 +1,20 @@
|
||||
\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{System.Collections}\PYG{p}{;}
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{System.Collections.Generic}\PYG{p}{;}
|
||||
\PYG{k}{using}\PYG{+w}{ }\PYG{n+nn}{UnityEngine}\PYG{p}{;}
|
||||
|
||||
\PYG{k}{public}\PYG{+w}{ }\PYG{k}{class}\PYG{+w}{ }\PYG{n+nc}{SpeedLimiter}\PYG{+w}{ }\PYG{p}{:}\PYG{+w}{ }\PYG{n}{MonoBehaviour}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// inspector settings }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{n}{Rigidbody}\PYG{+w}{ }\PYG{n}{rigid}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{public}\PYG{+w}{ }\PYG{k+kt}{float}\PYG{+w}{ }\PYG{n}{speedLimit}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+m}{5f}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// }
|
||||
\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{c+c1}{// Update is called once per frame }
|
||||
\PYG{+w}{ }\PYG{k}{void}\PYG{+w}{ }\PYG{n+nf}{FixedUpdate}\PYG{+w}{ }\PYG{p}{()}\PYG{+w}{ }\PYG{p}{\PYGZob{}}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k+kt}{float}\PYG{+w}{ }\PYG{n}{spd}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n}{rigid}\PYG{p}{.}\PYG{n}{velocity}\PYG{p}{.}\PYG{n}{magnitude}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{k}{if}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{spd}\PYG{+w}{ }\PYG{o}{\PYGZgt{}}\PYG{+w}{ }\PYG{n}{speedLimit}\PYG{p}{)}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{n}{rigid}\PYG{p}{.}\PYG{n}{velocity}\PYG{+w}{ }\PYG{o}{*=}\PYG{+w}{ }\PYG{n}{speedLimit}\PYG{+w}{ }\PYG{o}{/}\PYG{+w}{ }\PYG{n}{spd}\PYG{p}{;}\PYG{+w}{ }
|
||||
\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{+w}{ }
|
||||
\PYG{p}{\PYGZcb{}}
|
||||
\end{Verbatim}
|
@ -0,0 +1,102 @@
|
||||
|
||||
\makeatletter
|
||||
\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax%
|
||||
\let\PYG@ul=\relax \let\PYG@tc=\relax%
|
||||
\let\PYG@bc=\relax \let\PYG@ff=\relax}
|
||||
\def\PYG@tok#1{\csname PYG@tok@#1\endcsname}
|
||||
\def\PYG@toks#1+{\ifx\relax#1\empty\else%
|
||||
\PYG@tok{#1}\expandafter\PYG@toks\fi}
|
||||
\def\PYG@do#1{\PYG@bc{\PYG@tc{\PYG@ul{%
|
||||
\PYG@it{\PYG@bf{\PYG@ff{#1}}}}}}}
|
||||
\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+\PYG@do{#2}}
|
||||
|
||||
\@namedef{PYG@tok@w}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}}
|
||||
\@namedef{PYG@tok@c}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}}
|
||||
\@namedef{PYG@tok@cp}{\def\PYG@tc##1{\textcolor[rgb]{0.61,0.40,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@k}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@kp}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@kt}{\def\PYG@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}}
|
||||
\@namedef{PYG@tok@o}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
|
||||
\@namedef{PYG@tok@ow}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}}
|
||||
\@namedef{PYG@tok@nb}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@nf}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
|
||||
\@namedef{PYG@tok@nc}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
|
||||
\@namedef{PYG@tok@nn}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
|
||||
\@namedef{PYG@tok@ne}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.80,0.25,0.22}{##1}}}
|
||||
\@namedef{PYG@tok@nv}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
|
||||
\@namedef{PYG@tok@no}{\def\PYG@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@nl}{\def\PYG@tc##1{\textcolor[rgb]{0.46,0.46,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@ni}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.44,0.44,0.44}{##1}}}
|
||||
\@namedef{PYG@tok@na}{\def\PYG@tc##1{\textcolor[rgb]{0.41,0.47,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@nt}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@nd}{\def\PYG@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}}
|
||||
\@namedef{PYG@tok@s}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@sd}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@si}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.64,0.35,0.47}{##1}}}
|
||||
\@namedef{PYG@tok@se}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.67,0.36,0.12}{##1}}}
|
||||
\@namedef{PYG@tok@sr}{\def\PYG@tc##1{\textcolor[rgb]{0.64,0.35,0.47}{##1}}}
|
||||
\@namedef{PYG@tok@ss}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
|
||||
\@namedef{PYG@tok@sx}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@m}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
|
||||
\@namedef{PYG@tok@gh}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}}
|
||||
\@namedef{PYG@tok@gu}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}}
|
||||
\@namedef{PYG@tok@gd}{\def\PYG@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@gi}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.52,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@gr}{\def\PYG@tc##1{\textcolor[rgb]{0.89,0.00,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@ge}{\let\PYG@it=\textit}
|
||||
\@namedef{PYG@tok@gs}{\let\PYG@bf=\textbf}
|
||||
\@namedef{PYG@tok@ges}{\let\PYG@bf=\textbf\let\PYG@it=\textit}
|
||||
\@namedef{PYG@tok@gp}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}}
|
||||
\@namedef{PYG@tok@go}{\def\PYG@tc##1{\textcolor[rgb]{0.44,0.44,0.44}{##1}}}
|
||||
\@namedef{PYG@tok@gt}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}}
|
||||
\@namedef{PYG@tok@err}{\def\PYG@bc##1{{\setlength{\fboxsep}{\string -\fboxrule}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}}}
|
||||
\@namedef{PYG@tok@kc}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@kd}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@kn}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@kr}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@bp}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@fm}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
|
||||
\@namedef{PYG@tok@vc}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
|
||||
\@namedef{PYG@tok@vg}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
|
||||
\@namedef{PYG@tok@vi}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
|
||||
\@namedef{PYG@tok@vm}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
|
||||
\@namedef{PYG@tok@sa}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@sb}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@sc}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@dl}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@s2}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@sh}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@s1}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@mb}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
|
||||
\@namedef{PYG@tok@mf}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
|
||||
\@namedef{PYG@tok@mh}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
|
||||
\@namedef{PYG@tok@mi}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
|
||||
\@namedef{PYG@tok@il}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
|
||||
\@namedef{PYG@tok@mo}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
|
||||
\@namedef{PYG@tok@ch}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}}
|
||||
\@namedef{PYG@tok@cm}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}}
|
||||
\@namedef{PYG@tok@cpf}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}}
|
||||
\@namedef{PYG@tok@c1}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}}
|
||||
\@namedef{PYG@tok@cs}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}}
|
||||
|
||||
\def\PYGZbs{\char`\\}
|
||||
\def\PYGZus{\char`\_}
|
||||
\def\PYGZob{\char`\{}
|
||||
\def\PYGZcb{\char`\}}
|
||||
\def\PYGZca{\char`\^}
|
||||
\def\PYGZam{\char`\&}
|
||||
\def\PYGZlt{\char`\<}
|
||||
\def\PYGZgt{\char`\>}
|
||||
\def\PYGZsh{\char`\#}
|
||||
\def\PYGZpc{\char`\%}
|
||||
\def\PYGZdl{\char`\$}
|
||||
\def\PYGZhy{\char`\-}
|
||||
\def\PYGZsq{\char`\'}
|
||||
\def\PYGZdq{\char`\"}
|
||||
\def\PYGZti{\char`\~}
|
||||
% for compatibility with earlier versions
|
||||
\def\PYGZat{@}
|
||||
\def\PYGZlb{[}
|
||||
\def\PYGZrb{]}
|
||||
\makeatother
|
||||
|
Reference in New Issue
Block a user