Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Определяет порядок загрузки музыкального сопровождения.
Таблица 7. Компоненты класса Music
Название | Атрибуты | Описание |
Члены-данные | ||
a1, a2, a3, a4, a5 | public AudioClip | Индекс запускаемого музыкального сопровождения |
audio | public AudioSource | Источник звука |
Методы | ||
Start () | void | Блок выполняется при инициализации объекта |
Класс newcam
Описание действия камеры в сцене.
Таблица 8. Компоненты класса newcam
Название | Атрибуты | Описание |
Члены-данные | ||
dampTime | public float | Время задержки камеры |
velocity | private Vector3 | Вектор ускорения камеры |
target | public Transform | Цель камеры |
Методы | ||
Update () | void | Блок выполняется раз в секунду |
Класс timer
Используется для отсчета глобального таймера.
Таблица 9. Компоненты класса timer
Название | Атрибуты | Описание |
Члены-данные | ||
t | public int | Переменная глобального времени |
startTime | private int | Начало отсчета |
Методы | ||
Start () | void | Блок выполняется при старте программ |
Update () | void | Блок выполняется раз в секунду |
OnGUI() | void | Блок вывода текста на экран |
OnDestroy() | void | Выполняется при разрушении объекта |
globalTimer() | public int | Отсчет глобального таймера |
Класс again
Класс переключения уровня при проигрыше.
Таблица 10. Компоненты класса again
Название | Атрибуты | Описание |
Члены-данные | ||
lvl | public string | Название уровня для переключения |
Методы | ||
Update () | void | Блок выполняется раз в секунду |
Класс next
Класс переключения уровня при выигрыше.
Таблица 11. Компоненты класса next
Название | Атрибуты | Описание |
Члены-данные | ||
score | int | Игровой счет |
lvl | string | Уровень для загрузки |
Методы | ||
Update () | void | Блок выполняется раз в секунду |
Полная диаграмма классов всей системы представлена на рисунке 2.


Рисунок 2. Диаграмма классов системы.
Рисунок 3.
Диаграмма последовательности для прецедента «Управление игроком с клавиатуры»
Скриншоты работы системы
На рисунках, представленных ниже, изображены некоторые сцены из игры.
Рисунок 4. Фрагмент первого уровня игры
Рисунок 5. Сцена проигрыша в игре
Рисунок 6. Сцена победы в игре
Список литературы
1. , , Объектно-ориентированный анализ и программирование: учебное пособие//Сборник «Учебные пособия». Выпуск 3– Волжский: ВПИ (филиал) ВолгГТУ, 2014 г.
2. , Лясин сведения о UML и BOUML. Диаграммы вариантов использования. Волгоград: РПК «Политехник», 2013г.
3. Э. Троелсон. Язык программирования C# 5.0 и платформа. NET 4.5. М.: Вильямс, 2105 г. – 1312с.
4. Introduction to Game Design, Prototyping, and Development: From Concept to Playable Game with Unity and C#, Jeremy Gibson, 2014г.
истинги модулей программы
Класс characterController
using UnityEngine;
using System. Collections;
public class characterController : MonoBehaviour {
public float maxSpeed = 10f;
public float jumpForce = 750f;
private bool isGrounded = false;
public Transform groundCheck;
public float groundRadius = 0.2f;
public LayerMask whatIsGround;
public float score;
public float move = 1f;
public Animator anim;
public Rigidbody2D rigid2d;
public float position;
public bool inAche = false;
public bool clockBonus = false;
public float timer = 2f, timerSlide = 3f, sltime = 2f;
public SpriteRenderer _sprite = null; // Сюда в инспекторе нужно перетащить спрайт.
public bool shine, spacePressed = false, isThrow;
public float Speed = 1f; // Задает скорость изменения цвета в единицах в секунду.
public Color colorTmp;
private bool isSlide = false;
private static characterController instance;
public void Awake()
{
instance = this;
}
public static characterController GetInstance()
{
return instance;
}
// Этот блок используется для инициализации при старте
void Start () {
anim = GetComponent<Animator> ();
rigid2d = GetComponent<Rigidbody2D> ();
colorTmp = _sprite. color;
Time. timeScale = 1f;
}
// В этом блоке все обновляется каждый кадр
void FixedUpdate () {
position = rigid2d. velocity. y;
isGrounded = GetComponent<Collider2D>().IsTouchingLayers(LayerMask. GetMask ("Ground"));
maxSpeed += 0.015f;
anim. speed += 0.0002f;
}
//Прыжок(клавиша, сила)
private void jump(float force)
{
if (!inAche && isGrounded)
rigid2d. AddForce (new Vector2 (0f, force));
}
private void slowDown(float coef)
{
move = coef+0.01f;
anim. speed = coef;
maxSpeed++;
}
private void slowMO(float coef)
{
Time. timeScale = coef;
}
private Color shining()
{
var color = _sprite. color;
if (color. a > 0.3) {
color. a -= Speed * Time. deltaTime;
} else
shine = true;
if (shine) {
color. a += Speed * Time. deltaTime;
if (color. a > 0.2)
shine = false;
}
color. a = Mathf. Clamp (color. a, 0, 1);
_sprite. color = color;
return colorTmp;
}
public bool deathTime(float time)
{
{
if (time > 0)
timer -= Time. deltaTime;
}
if (time <= 0) {
inAche = false;
timer = 2;
slowMO (1f);
}
return false;
}
public bool slowTime(float time)
{
{
if (sltime > 0 )
sltime -= Time. deltaTime;
slowMO(0.4f);
}
if (sltime <= 0) {
sltime = 2;
clockBonus = false;
slowMO (1f);
}
return false;
}
void Update ()
{
rigid2d. velocity = new Vector2 (move * maxSpeed, GetComponent<Rigidbody2D> ().velocity. y);
//Прыжок
if(Input. GetKey (KeyCode. Space)) spacePressed = true;
else spacePressed = false;
if(Input. GetKeyDown (KeyCode. Space)) jump(jumpForce);
if (spacePressed && !anim. GetBool("fall"))
rigid2d. AddForce (new Vector2 (0f, 10f));
//move = 1f;
//Замедление времени
if (Input. GetKey (KeyCode. Q) && clockBonus)
slowTime (2);
else slowMO (1f);
//Мерцание персонажа при заранении
if (inAche) {
shining ();
maxSpeed = 10f;
deathTime (timer);
} else {
_sprite. color = shining ();
isThrow = false;
}
//Выход из игры (только для разработки)
if (Input. GetKey (KeyCode. Escape)) {
Application. Quit ();
}
//Перезапуск уровня (только для разработки)
if (Input. GetKey (KeyCode. R)) {
Application. LoadLevel (Application. loadedLevel);
}
if (Input. GetKey (KeyCode. N)) {
Application. LoadLevel ("win");
}
//Анимация хождения
if (move!= 0 && isGrounded)
anim. SetBool ("walk", true);
else
anim. SetBool ("walk", false);
//Анимация прыжка
if (rigid2d. velocity. y > 0 && Input. GetKey (KeyCode. Space) && !isGrounded)
anim. SetBool ("jump", true);
else if (rigid2d. velocity. y <= 0 && !isGrounded) {
anim. SetBool ("jump", false);
anim. SetBool ("fall", true);
}
if (isSlide) {
if (timerSlide > 0) {
timerSlide -= Time. deltaTime;
anim. SetBool ("slide", false);
}
} else {
isSlide = false;
timerSlide = 3f;
}
//Запрет анимаций падения и заранения в падении, если персонаж на земле
if (isGrounded) {
anim. SetBool ("fall", false);
anim. SetBool ("ache", false);
jumpForce = 750f;
if(!isThrow) move = 1f;
}
//Ограничение максимальной скорости и задействование анимационной переменно заранения в падении
if (inAche && !isGrounded) {
anim. SetBool ("ache", true);
}
//Задействование анимации подката и изменение коллайдера игрока (по сути: удаление одного из двух на время)
if (!isSlide && Input. GetKey (KeyCode. LeftShift)) {
anim. SetBool ("slide", true);
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 |


