C# game — C#, ошибка при запуске 2д игры.


Содержание

Двумерная графика. Проектирование игр

Начала анимации. Движение шара на бильярдном столе

Постановка задачи. Требуется запрограммировать движение шара или шаров на бильярдном столе без учета трения, но с учетом упругого отражения от стенок бильярда. Границы стола — прямоугольник, без луз. Начнем проектирование приложения с определения объектов и классов. Объектами являются бильярдный стол (пусть это будет форма) и шар(ы), для описания которых объявим класс Sharik, эти объекты взаимодействуют …

Кривая Безье и метод де Кастельжо

Впервые кривые были представлены в 1962 году французским инженером Пьером Безье (Рено), который, разработав независимо от де Кастельжо (Ситроен), использовал их для компьютерного проектирования автомобильных кузовов. Кривые были названы именем Безье, а именем де Кастельжо назван разработанный им рекурсивный способ определения кривых. Впоследствии это открытие стало одним из полезных инструментов компьютерной графики. Четыре опорные точки P0 …

Игра «Вторжение НЛО»

Итак, вы уже готовы (идейно и технически) к созданию игры с использованием 2D-графики и идей объектно-ориентированного программирования в среде Visual Studio C#. Начнем с создания достаточно простого шутера «Вторжение НЛО» («UFO Invasion»), в котором придется отражать нашествие на Землю армады НЛО. Дальнейшее ее развитие вы сможете выполнить самостоятельно. Проектирование шутера начинается с разработки сценария, после …

Луна за забором

Типичная задача анимации, когда движущийся объект (например, Луна) становится невидимым за неподвижными объектами (горами, домами, забором). Используем наш опыт зашиты областей холста (пример с парапланами) с анимацией. Установку забора свяжем с одним событием — кликом на форме, а анимацию — с другим событием — нажатием кнопки «Ночь».

Анимация-шутка «Заход Луны»

Иногда бывает полезна психологическая разгрузка. Добавим в класс Form1 метод, который будет вызываться при возникновении некоторого события, например, клика на форме. Тогда в течении некоторого времени в окне формы можно будет наблюдать заход Луны. Первая реакция пользователя — компьютерный вирус. Однако все последствия от его действия — перекраска фона формы (добавка двух операторов позволит избежать …

Двумерная графика. Проектирование игр

Двумерная графика на C#, классы Graphics, Pen и Brush Пример рисования в C#. «Кораблик» Рисование контура и закраска области, ограниченной ломаной прямой Рисование сплайнами и кривыми Безье Кривая Безье и метод де Кастельжо Рисование и защита произвольных областей на холсте Начала анимации. Движение шара на бильярдном столе Спрайтовая анимация Анимация-шутка «Заход Луны» Луна за забором …

Спрайтовая анимация

Цель примера — показать способ рисования спрайтов в динамике. Спрайт (англ. Sprite — фея; эльф) — графический объект в компьютерной графике, чаще всего — растровое изображение, которое можно отобразить на экране. Предварительные действия. Создадим в Paint три изображения на белом фоне, каждый размером 100х100 пикселей. Нарисуем (без рамок) в первом квадрате красный круг, во втором …

Рисование и защита произвольных областей на холсте

Постановка задачи. Часто бывает необходимо изображение разделить на две составляющие: предметы (движущиеся) и фон (неподвижный), или наоборот, неподвижный забор с дырками в нем и некоторые предметы, двигающиеся за ним. Форма дырок в заборе может быть произвольная, как и форма движущихся предметов. В предыдущем примере была продемонстрирована возможность задания произвольных контуров предметов, теперь мы перейдем к …

Рисование сплайнами и кривыми Безье

Постановка задачи. Требуется рисовать объекты 2d-графики, используя плавные кривые. Обсуждение. В примере с корабликом мы уже рисовали окружности и сектора, хотя очевидно они не исчерпывают все необходимые нам графические объекты. В этом примере мы продемонстрируем другие варианты решения этой задачи. Ключевыми понятиями будут сплайн и кривая Безье.

Рисование контура и закраска области, ограниченной ломаной прямой

В предыдущем примере («Кораблик») мы использовали простые и очевидные методы рисования графических объектов класса Graphics, такие как FillRectangle() — закрасить прямоугольник, FillPie() — закрасить сектор и DrawEllipse() — нарисовать эллипс. Чуть более сложный метод FillPolygon() — закрашенный полигон. Постановка задачи: «Требуется нарисовать в небе несколько парапланов, имеющих разные цвета и размеры».

Учебник 3. Создание игры «Подбери пару!» Tutorial 3: Create a matching game

В этом учебном руководстве вы создадите игру «Подбери пару!», в которой игрок должен подобрать пару скрытым значкам. In this tutorial, you build a matching game, where the player must match pairs of hidden icons.

В этом учебнике приведены примеры как на C#, так и на Visual Basic, поэтому обращайте внимание на информацию, которая относится к используемому вами языку программирования. This tutorial covers both C# and Visual Basic, so focus on the information that’s specific to the programming language that you’re using.

В этом учебнике выполняются перечисленные ниже задачи. This tutorial walks you through the following tasks:

сохранять объекты, например значки, в объекте List ; Store objects, such as icons, in a List object.

использовать цикл foreach в C# или цикл For Each в Visual Basic для перебора элементов в списке; Use a foreach loop in C# or a For Each loop in Visual Basic to iterate through items in a list.

отслеживать состояние формы с помощью ссылочных переменных; Keep track of a form’s state by using reference variables.

создавать обработчик событий, который можно использовать для нескольких объектов; Build an event handler to respond to events that you can use with multiple objects.

создавать таймер, который отсчитывает время и вызывает событие ровно один раз после запуска. Make a timer that counts down and then fires an event exactly once after being started.

По завершении приложение должно выглядеть следующим образом. When you finish, your app should look similar to the following image:

Заголовок Title ОПИСАНИЕ Description
Шаг 1. Создание проекта и добавление таблицы в форму Step 1: Create a project and add a table to your form Начните с создания проекта и добавления элемента управления TableLayoutPanel , чтобы все элементы управления были правильно выровнены. Begin by creating the project and adding a TableLayoutPanel control to keep the controls aligned properly.
Шаг 2. Добавление случайного объекта и списка значков Step 2: Add a random object and a list of icons Добавление объектов Random и List для создания списка значков. Add a Random object and a List object, to create a list of icons.
Шаг 3. Назначение каждому элементу управления Label случайного значка Step 3: Assign a random icon to each label Случайным образом назначьте значки элементам управления Label , чтобы каждая игра отличалась от остальных. Assign the icons randomly to the Label controls, so that each game is different.
Шаг 4. Добавление обработчика событий Click к каждому элементу управления Label Step 4: Add a click event handler to each label Добавление обработчика события Click , изменяющего цвет метки, которую щелкнули. Add a Click event handler that changes the color of the label that is clicked.
Шаг 5. Добавление ссылок на элементы управления Label Step 5: Add label references Добавление ссылочных переменных для отслеживания меток, которые щелкнули. Add reference variables to keep track of which labels are clicked.
Шаг 6. Добавление таймера Step 6: Add a timer Добавьте таймер в форму, чтобы отслеживать время, прошедшее с начала игры. Add a timer to the form to keep track of the time that has passed in the game.
Шаг 7. Отмена исчезновения пар значков Step 7: Keep pairs visible Отмена исчезновения пар значков, если выбрана одинаковая пара. Keep pairs of icons visible, if a matching pair is selected.
Шаг 8. Добавление метода для проверки того, выиграл ли игрок Step 8: Add a method to verify whether the player won Добавление метода CheckForWinner() для проверки, выиграл ли игрок. Add a CheckForWinner() method to verify whether the player won.
Шаг 9. Изучение других возможностей Step 9: Try other features Изучение других функций, таких как изменение значков и цветов, добавление сетки и добавление звуков. Try other features, such as changing icons and colors, adding a grid, and adding sounds. Увеличение игрового поля и изменение настроек таймера. Try making the board bigger and adjusting the timer.

Кроме того, вы можете найти отличные бесплатные учебные видеоматериалы. There are also great, free video learning resources available to you. Дополнительные сведения о программировании на языке C# см. в разделе Основы C#. Разработка для начинающих. To learn more about programming in C#, see C# fundamentals: Development for absolute beginners. Дополнительные сведения о программировании на Visual Basic см. в руководстве Основы Visual Basic. Разработка для начинающих. To learn more about programming in Visual Basic, see Visual Basic fundamentals: Development for absolute beginners.

Следующие шаги Next steps

Начните работу с руководством с шага 1: Создание проекта и добавление таблицы в форму . To begin the tutorial, start with Step 1: Create a project and add a table to your form.

Age of Mythology: The Titans: Ошибка Direct3D initialization error при запуске игры: Что делать?

У меня в Windows 10 при запуске некоторых игр появляется ошибка «Direct3D initialization error». Windows шла вместе с ноутбуком, версия «Домашняя для одного языка». Скажите, может ли эта ошибка быть из-за версии Windows, и как ее исправить?

Вообще, подобная ошибка не редкость, особенно после переустановки Windows (в вашем случае, после покупки ноутбука, так как в магазинах редко устанавливаются все необходимые библиотеки и драйвера, необходимые для комфортной работы устройства). Появляется она, как правило, после попытки запустить какую-нибудь игру — либо сразу, либо в игре будет просто черный экран, а свернув ее вы увидите это окно.

В этой статье остановлюсь на основных причинах появления подобной ошибки, и покажу на примере как от нее избавиться.

Типичный вид ошибки

Что делать с ошибкой Direct3D.

Обновление DirectX

Самая частая причина появления подобной ошибки связана с отсутствием библиотеки DirectX. Причем, не обязательно, что она у вас не установлена, возможно у вас просто нет какого-то конкретного файла из библиотеки.

DirectX — специальная библиотека для программистов. Используется в большинстве случаев при разработке игр. Пакет доступен для установки и обновления на официальном сайте Microsoft. Более подробно от этом можете узнать на сайте Википедии.

Страница на сайте Microsoft для загрузки современной версии DirectX — https:www.microsoft.com/ru-ru/Download/confirmation.aspx?

Поэтому, рекомендую посмотреть требования запускаемой вами игры, и посмотреть, какая версия DirectX установлена у вас на ПК.

Чтобы узнать, какой DirectX у вас на ПК, нажмите:

  1. сочетание кнопок Win+R, чтобы открылось окно » Выполнить «;
  2. далее впишите команду dxdiag и нажмите Enter (см. скриншот ниже).

Запускаем средство диагностики DirectX (DxDiag)

Далее во вкладке «Система» будут представлены все необходимые данные: версия вашей ОС Windows, ваша видеокарта, звуковое устройства, версия BIOS, и версия DirectX (см. на красный квадрат на скрине ниже) .

Средство диагностики DirectX / Кликабельно

Для обновления DirectX на сайте Microsoft есть специальный веб-установщик. Перейдите на нужную страницу и скачайте его. Далее запустите, согласитесь с условиями лицензионного соглашения, и ждите пока работает мастер.

Принятие условий лиц. соглашения DirectX

В конце операции вы должны увидеть сообщение о том, что установка DirectX завершена, нужные пакеты обновлены и пр. Либо, как вариант, мастер сообщит вам о том, что новая версия DirectX уже установлена и в обновлении не нуждается. Рекомендую после этого перезагрузить компьютер, а затем попробовать запустить игру.

Установка DirectX завершена

Как правило, после такого обновления, игра начинает работать как нужно.

Если у вас нет интернета (либо он медленный или сайт Microsoft недоступен, выдает ошибку и т.д.), DirectX можно обновить с помощью игр: почти на половине дисков с играми есть новая версия DirectX (прим.: новая на момент запуска игры, конечно) . Поэтому, вам достаточно взять более-менее современную игру и установив ее, обновите DirectX.

Проблема с драйвером видеокарты

Если ошибка все так же появляется, возможно ваша видеокарта отключена в диспетчере устройств (такое может быть, например, у ноутбуков с 2-мя видеокартами), либо у вас просто не обновлены/не установлены драйвера на видеокарту.

Как проверить наличие драйверов и включена ли видеокарта

Самый простой способ, воспользоваться диспетчером устройств. Чтобы его открыть:

  1. нажмите кнопки Win+R;
  2. далее введите devmgmt.msc и нажмите Enter.

Запуск диспетчера устройств — devmgmt.msc

Далее откройте вкладку «Видеоадаптеры» , и посмотрите, все ли видеокарты включены, и не горит ли напротив них желтый восклицательный знак (указывающий на проблемы с драйверами, пример — ).

Ниже на скриншоте показано, что один видеоадаптер отключен и не задействован. Часто ошибка с Direct3D связана как раз с этим.

Чтобы включить адаптер, просто щелкните по нему правой кнопкой мышки и выберите функцию «Задействовать» . Пример на скрине ниже.

После этого перезагрузите компьютер, затем попробуйте открыть игру.

В некоторых случаях одна из видеокарт может быть отключена в BIOS компьютера (например, если у вас на ноутбуке стоит дискретная и встроенная видеокарты) . Чтобы проверить так ли это, зайдите в BIOS, обычно, в разделе MAIN можно найти режим работы графики (Graphic mode). Пример показан на фото ниже.

Как обновить драйвера на видеокарту:

  1. Способ №1 : зайти на официальный сайт производителя вашего ноутбука и скачать их оттуда. Если не знаете точную модель ноутбука, воспользуйтесь программами для определения характеристик компьютера — https:ocomp.info/harakteristiki-kompyutera.html
  2. Способ №2 : воспользоваться специальными программами для автоматического поиска и обновления драйверов. Самый простой и быстрый вариант, на самом деле. К тому же, программы проверят необходимые библиотеки для игр (например, Drive Booster, рекомендую) — https:ocomp.info/update-drivers.html
  3. Способ №3 : работать в ручном режиме, через диспетчер устройств. Более подробно об этом см. здесь: https:ocomp.info/kak-nayti-i-ustanovit-drayver-dlya-neizvestnogo-ustroystva.html

Используйте режим совместимости

Не так давно я тестировал ноутбук с относительно новым процессором AMD Ryzen 5 2500U и столкнулся с одной интересной особенностью.

Обновил DirectX, установил все необходимые драйвера, различные пакеты и дополнения к играм — однако, часть игр не запускалась, показывая ошибку Direct3D. (особенность: все игры были старыми, что наводило на разные мысли. ) .

Довольно сильно я был удивлен, когда открыл свойства исполняемого файла игры, перешел во вкладку «Совместимость» и поставил галочку напротив пункта «Запустить игру в режиме совместимости с Windows XP SP 2» — игра стала нормально работать, никаких ошибок, связанных с Direct3D, больше не было.

Примеры, что нужно сделать, приведены на скринах ниже.

Открываем свойства исполняемого файла игры

Запустить игру в режиме совместимости с Windows XP SP 2

PS

Если ничего не помогло из выше написанного, то также рекомендую еще обновить пакет Microsoft Visual C++ и NET Framework.

Разработка вашей первой игры с помощью Unity и C#. Часть 2

Продукты и технологии:

Unity, C#, Microsoft .NET Framework

В статье рассматриваются:

  • работа с двухмерной графикой в Unity;
  • спрайты;
  • распространенная функциональность, в том числе коллайдеры, учет попаданий (очков) и анимация;
  • создание заготовок (prefabs) для повторного использования.

В первой статье я рассказал о некоторых основах и об архитектуре Unity. В этой статье я намерен исследовать работу с двухмерной графикой в Unity, которая опирается на поддержку двухмерной графики (далее для краткости 2D) в Unity, добавленную в версии 4.3. Вы могли работать с такой графикой и в Unity до версии 4.3, но этот процесс был весьма тяжелый без стороннего инструментария. Я хочу просто перетаскивать изображения в свою сцену, после чего она должна появляться в ней и работать, как ожидалось. Это как раз часть того, что предлагается в Unity 4.3, и в этой статье я рассмотрю другие возможности, разрабатывая базовую двухмерную игру-аркаду, что позволит вам освоить некоторые значимые концепции Unity.

2D в Unity

Чтобы получить поддержку 2D в Unity при создании нового проекта, выберите 2D из раскрывающегося списка в диалоге создания нового проекта. После этого все свойства проекта по умолчанию подстраиваются под 2D (можно увидеть в Edit | Project Settings | Editor), и любые изображения, импортируемые в ваш проект, становятся спрайтами, а не просто текстурами. (Об этом я расскажу подробнее в следующем разделе.) Кроме того, представление сцены переключается по умолчанию в режим 2D. На самом деле в этом режиме просто предоставляется вспомогательная кнопка, которая фиксирует две оси при разработке сцены, но никак не влияет на саму игру. Вы можете щелкнуть ее в любой момент, чтобы войти в режим 2D или выйти из него. 2D-игра в Unity реально остается 3D-средой — просто ваша работа ограничивается осями X и Y. На рис. 1 и 2 показаны варианты с выбранным режимом 2D и без него. Я выделил камеру, чтобы вы видели контуры области просмотра камеры, но она смотрит в пространство как фигура прямоугольной формы.

Рис. 1. Режим 2D выбран — камера имеет фокус

Рис. 2. Режим 2D не выбран — камера имеет фокус


2D-игра в Unity реально остается 3D-средой — просто ваша работа ограничивается осями X и Y.

Выделенная камера настроена как прямоугольная (orthographic camera) — это один из двух режимов камеры в Unity. Этот тип камеры, широко применяемый в 2D, не масштабирует объекты, отстоящие дальше от ваших глаз, т. е. нет глубины от позиции камеры. Другой тип камеры — перспектива (perspective), которая показывает объекты так, как их видят ваши глаза, с глубиной. Причин использовать каждый из типов камеры много, но, как правило, следует выбирать перспективу, когда требуется визуальная глубина, если только вы не хотите соответственно масштабировать свои объекты. Вы можете сменить тип камеры, просто выбрав камеру и изменив тип проекции. Советую опробовать это и посмотреть, как изменяется область просмотра вашей камеры, когда вы начинаете смещать объекты дальше от глаз по оси Z. Режим по умолчанию можно сменить в любой момент, что повлияет только на изображения, которые будут потом импортироваться в ваш проект.

Когда по умолчанию выбран режим 3D, изображения распознаются как тип Texture.

Если у вас есть существующий проект в Unity или если вы не уверены, выбран ли режим 2D в диалоге проекта, то можете задать свойствам проекта значения по умолчанию для 2D через Edit | Project Settings | Editor; иначе вам придется вручную задавать тип каждого импортируемого вами 2D-изображения, что несколько утомительно при большом количестве изображений.

Все дело в спрайте

Когда по умолчанию выбран режим 3D, изображения распознаются как тип Texture. Перетащить текстуру в сцену нельзя; текстура должна быть применена к какому-то объекту. Создавать 2D-игры таким путем вовсе не забавно. Я хочу просто перетаскивать изображения, чтобы они появлялись в моей сцене. Однако, если режим по умолчанию — 2D, все становится проще. Теперь, когда я перетаскиваю изображение в Unity, оно распознается как тип Sprite.

Это позволяет перетаскивать в Unity все изображения, образующие графику игры, а затем из Unity в сцену. Если какие-то изображения выглядят мелкими, то вместо их масштабирования везде, где они встречаются, вы можете просто уменьшить значение Pixels To Units. Это очень распространенная операция в Unity как для 2D, так и для 3D и обычно более производительная, чем масштабирование объектов через свойство scale преобразования.

Отпуская объекты, вы наверняка заметите, что один объект оказывается поверх другого. Unity на внутреннем уровне создает серию вершин, даже для 2D-изображений, поэтому порядок рисования может различаться в разных частях изображений. Всегда лучше явно указывать z-порядок своих изображений. Это делается одним из трех методов, перечисленных в порядке, в котором Unity рисует ваши спрайты.

  1. Вы задаете свойство Sorting Layer в Sprite Renderer.
  2. Вы задаете свойство Order in layer в Sprite Renderer.
  3. Вы задаете значение позиции по оси Z в Transform.

Уровень сортировки имеет высший приоритет, за ним следует порядок в уровне, а затем z-значение в преобразовании.

Уровни сортировки рисуются в порядке определения. Когда вы добавляете другие уровни (в Edit | Project Settings | Tags and Layers), Unity сначала рисует любой объект, который обнаруживается в уровне Default (затем учитывается Order in Layer, потом — значение позиции по оси Z в Transform), далее Background, Platforms и т. д. Поэтому вы можете легко поправить перекрытие объектов, присвоив их уровню Platforms, а объекту, который должен быть поверх, указав Order in Layer со значением 1; тогда он будет нарисован после всего, что имеет Order in Layer, равный 0.

Распространенная функциональность

На рис. 3 показан уровень, содержащий некоторые изображения платформ и фона, которые были созданы перетаскиванием и заданием уровней сортировки (sorting layers).

Рис. 3. Игровой уровень

В нынешнем состоянии он выглядит, как игра, но не работает в таковом качестве. Как минимум, ему нужен ряд средств, чтобы игра стала функциональной. Некоторые из этих средств я рассмотрю в следующих подразделах.

Перемещение с помощью клавиатуры, мыши и жестов В Unity клавиатура, мышь, акселерометр и сенсорный ввод считываются через систему ввода. Это легко делается с помощью скрипта наподобие показанного ниже в основном уровне (вскоре я расширю этот скрипт):

Если вы проверите Edit | Project Settings | Input, то увидите варианты ввода по умолчанию (Unity предоставляет целый набор таких вариантов в каждом новом проекте) и сможете задать новые. На рис. 4 показаны умолчания для считывания перемещения по горизонтали. Параметры left и right представляют клавиши-стрелки «влево» и «вправо», но заметьте, что для перемещения по горизонтали используются «a» и «d». Их можно сопоставить со вводом от джойстика. Вы можете добавить новые значения или изменить умолчания. Поле Sensitivity контролирует, насколько быстро Unity будет проходить от 0 до 1 или –1. При нажатии стрелки вправо первый кадр может получить значение .01, а затем возможно довольно быстрое ускорение до 1, хотя скорость можно подстроить так, чтобы игровой персонаж мгновенно получал горизонтальную скорость. Вскоре я покажу код для применения этих значений к вашим игровым объектам. Для чтения этих значений необходимость в компоненте GameObject на самом деле нет; вы просто используете ключевое слово Input в своем коде для доступа к функциональности, обеспечивающей чтение ввода. Как общее правило, ввод следует считывать в функции Update в противоположность FixedUpdate, чтобы избежать потери событий ввода.

Рис. 4. Значения по умолчанию для ввода перемещений по горизонтали

Линейное перемещение Вещи нужно иметь возможность перемещать. Если это игра, где экран прокручивается сверху вниз (top-down game), то гравитация обычно не играет важной роли. Если же это аркада (platformer), гравитация, наоборот, крайне важна. В любом случае обнаружение коллизии объектов весьма критично. Вот базовые правила. Компонент Rigidbody2D или RigidBody (используется для 3D), добавленный к игровому объекту, автоматически придаст ему массу, сделает его поддерживающим гравитацию и способным реагировать на прикладываемые к нему силы. Согласно Википедии: «В физике абсолютно твердое тело (rigid body) является идеализацией твердого тела (solid body), в котором пренебрегается деформацией. Другими словами, расстояние между любыми двумя данными точками абсолютно твердого тела остается постоянным во времени независимо от действующих на него внешних сил». Тот же принцип применяется в играх. Добавление абсолютно твердого тела позволяет вам делает вызовы наподобие показанных на рис. 5.

Рис. 5. Добавление перемещения и скорости

Как общее правило, линейное перемещение должно происходить через Update, а перемещение с ускорением — через FixedUpdate. Если вы новичок, вам может показаться непонятным, когда что использовать, и, по сути, линейное перемещение будет работать в обоих случаях. Но вы добьетесь лучших визуальных результатов, следуя этому правилу.

Обнаружение коллизий Объект получает массу от своего компонента RigidBody, но, кроме того, вы должны сообщить Unity, как обрабатывать коллизии с этим объектом. Здесь размер и форма ваших изображений или моделей не имеют значения, хотя масштабирование все же влияет на физику самого объекта. Важны размер и форма компонента коллайдера (collider component), который представляет собой просто определенную область вокруг или внутри объекта, для которого нужно, чтобы Unity обнаруживала соприкосновение с другим объектом. Это обеспечивает поддержку таких ситуаций, когда вы входите в область неактивного зомби или когда при приближении к горе на вас скатывается валун.

Коллайдеры бывают самых разнообразных форм. Коллайдер для 2D может быть окружностью, границей (гранью), многоугольником или прямоугольником. Прямоугольные коллайдеры хороши для объектов с формой наподобие квадратов или прямоугольников, или когда вы просто хотите обнаруживать коллизии в квадратной области. Подумайте о платформе, на которой вы стоите, — это хороший пример прямоугольного коллайдера. Простое добавление этого компонента к вашему игровому объекту позволяет задействовать преимущества физических столкновений. На рис. 6 я добавил персонажу коллайдер в виде окружности и абсолютно твердое тело, а к платформе — прямоугольный коллайдер. Когда я запускаю игру в Editor, игрок немедленно падает на платформу и останавливается. Никакого кода не требуется.

Рис. 6. Добавление коллайдеров

Вы можете перемещать и изменять размер области, охватываемой коллайдером, изменяя свойства компонента коллайдера. По умолчанию объекты с коллайдерами не проходят друг сквозь друга (кроме триггеров, о которых я расскажу в следующем подразделе). Поддержка коллизий требует наличия коллайдеров в обоих игровых объектах и, по крайней мере, один объект должен иметь компонент RigidBody, если только это не триггер.

Объект получает массу от своего компонента RigidBody, но, кроме того, вы должны сообщить Unity, как обрабатывать коллизии с этим объектом.

Если я хочу, чтобы Unity вызывала мой код, когда впервые происходит этот случай коллизии, то просто добавляю следующий код в игровой объект через компонент скрипта (о нем мы говорили в предыдущей статье):

Триггеры Иногда нужно обнаруживать коллизию, но безо всякой физики. Возьмите такую ситуацию, когда вы подбираете в игре какой-то ценный предмет. Вы же не хотите, чтобы монеты разлетелись перед игроком, когда он подойдет к ним; вам нужно, чтобы монеты были собраны и никак не мешали перемещению игрока. В этом случае используется коллайдер, который называется триггером. Это не более чем коллайдер с помеченным флажком IsTrigger в его свойствах. Тем самым физика отключается, и Unity будет лишь вызывать ваш код, когда объект A (содержащий коллайдер) попадет в область объекта B (тоже содержащего коллайдер). В данном случае в коде применяется метод OnTriggerEnter2D вместо OnCollisionEnter2D:

Важно помнить, что в случае триггеров никакого физического взаимодействия нет, это в основном просто уведомление. Триггеры также не требуют наличия компонента Rigidbody в игровом объекте, так как никаких вычислений сил не осуществляется.

Одна вещь, о которую часто спотыкаются разработчики-новички, — поведение абсолютно жестких тел при добавлении к ним коллайдеров. Если в моем объекте есть коллайдер, имеющий форму окружности, и я помещаю этот объект на наклонную плоскость (как указывается формой ее коллайдера), он начинает катиться (рис. 7). Это моделирует то, что вы видите в физическом мире, когда колесо попадает на склон. Я не использую прямоугольный коллайдер для своего персонажа из-за того, что у этого коллайдера есть границы, которые могут задевать границы других коллайдеров, что будет приводить к перемещению с рывками. Коллайдер с формой окружности обеспечивает более плавное перемещение. Однако, когда плавное вращение неприемлемо, вы можете использовать параметр Fixed Angle в компоненте Rigidbody.

Рис. 7. Применение коллайдера с формой окружности для плавного перемещения

Звук Чтобы слышать звук, нужен компонент Audio Listener, который по умолчанию существует в любой камере. Для проигрывания звука просто добавьте компонент Audio Source к игровому объекту и укажите аудиоклип. Unity поддерживает большинство основных форматов звука и будет кодировать более длинные клипы в MP3. Если у вас множество источников звука с клипами, назначенными в Unity Editor, учитывайте, что все они будут загружены в период выполнения. Вместо этого вы можете загружать звук через код, размещенный в специальной папке ресурсов и уничтожать его, когда он больше не нужен.

Импортировав звук в свой проект, я сохранил его как WAV-файл, который представляет собой несжатое аудио. Unity перекодирует более длинный звук для оптимизации, поэтому всегда используйте звук максимального качества, которым вы располагаете. Это особенно верно для коротких файлов вроде звуковых эффектов, которые Unity не станет кодировать. Я также добавил компонент Audio Source к своей главной камере, хотя мог бы добавить его к любому игровому объекту. Затем я назначил аудиоклип Adventure этому компоненту Audio Source и сбросил флажок Loop, поэтому он постоянно проигрывается как петля. Три простых шага, и теперь в игре есть фоновая музыка.

GUI/элементы HUD (Heads-Up Display) Система GUI может охватывать многие вещи в игре. Она может включать систему меню, индикатор здоровья, текущий счет, арсенал оружия и др. Как правило, систему GUI вы постоянно видите на экране независимо от того, куда смотрит камера (хотя это не обязательно). GUI-функционал в Unity в настоящее время полностью перерабатывается, и в Unity 4.6 появится новая система uGUI. Поскольку эта версия еще не вышла, мы рассмотрим здесь лишь некоторую базовую функциональность, но, если вас интересуют подробности о новой системе GUI, загляните в мой блог на channel9 по ссылке channel9.msdn.com/Blogs/AdamTuliper.

Чтобы вывести на экран простой текстовый дисплей (например, score: 0), я открыл Game Object | Create Other | GUI Text. Этой команды в Unity 4.6 больше нет, поэтому советую посмотреть видеоролик по uGUI, о котором я упоминал. В версии 4.6 по-прежнему можно добавить компонент GUI Text к игровому объекту, щелкнув кнопку Add Component; он просто убран из меню Editor. В существующей (устаревшей) системе GUI в Unity вы не можете увидеть свои GUI-объекты в представлении сцены — только в представлении Game, что превращает создание разметки в несколько странное занятие. Если хотите, используйте чисто программный подход к настройке своего GUI, и для этого есть класс GUILayout, позволяющий автоматически отслеживать виджеты. Но я предпочитаю систему GUI, где можно легко работать, используя мышь; вот почему я нахожу гораздо совершеннее систему uGUI. (До uGUI лидером в этой области был довольно основательный сторонний продукт — NGUI, который и задействовали как исходную кодовую базу для uGUI.)

Самый простой способ обновлять текстовый дисплей — найти и назначить в Editor ссылку на игровой объект с этим GUIText и обрабатывать его подобно метке в .NET, обновляя его свойство text:

Это несколько укороченный пример. Для большей производительности ссылку на компонент GUIText следовало бы кешировать в методе Start, чтобы не запрашивать его при каждом вызове метода.

Отслеживание счета Это несложная задача. У вас просто есть класс, предоставляющий открытый метод или свойство, с помощью которого задается счет. В играх обычно есть объект Game Controller, действующий как организатор игры. Game Controller может отвечать за инициацию сохранений игры, загрузку, учет текущего счета и др. В этом примере у меня есть класс, предоставляющий переменную score, как показано на рис. 8. Я назначаю этот компонент пустому игровому объекту, чтобы он был доступен при загрузке сцены. Когда счет обновляется, происходит обновление и GUI. Переменная _scoreText назначена в Unity Editor. Просто перетащите любой игровой объект с GUIText на это поле или используйте виджет поиска, где данный компонент скриптов предоставляет переменную Score Text в редакторе.

Рис. 8. Создание переменной _scoreText

После этого я могу просто обновить (в данном примере) код триггера гриба для увеличения счета при каждом подборе ценного предмета:

Анимации Как и в XAML, анимации создаются выполнением различных действий в ключевых кадрах. Я мог бы легко посвятить целую статью одним только анимациям в Unity, но буду краток из-за нехватки места. В Unity есть две системы анимации: устаревшая и более новая — Mecanim. В устаревшей системе используются файлы анимации (.ani), а в Mecanim — состояния, управляющие тем, какой файл анимации воспроизводится.

В двухмерной графике по умолчанию применяется Mecanim. Самый простой способ создать анимацию — перетащить изображения в сцену и разрешить Unity создать анимацию за вас. Для начала я перетащил некоторые отдельные спрайты в Unity, а та в свою очередь создала за меня несколько вещей. Прежде всего она создала игровой объект с компонентом рендера спрайтов (sprite renderer component) для рисования спрайтов. Затем — файл анимации. Вы можете увидеть это, перейдя в Window | Animator и выделив свой игровой объект. Аниматор показывает назначенный файл анимации, который в моем случае содержит шесть ключевых кадров, поскольку я перетащил в сцену шесть изображений. Каждый ключевой кадр контролирует один или более параметров в каком-либо компоненте; здесь изменяется свойство Sprite компонента Sprite Renderer. Анимации — это не более чем отдельные изображения, показываемые с некоей частотой, воспринимаемой глазом как движущиеся картинки.

Далее Unity создала компонент Animator в игровом объекте, как показано на рис. 9.

Рис. 9. Компонент Animator, указывающий на контроллер

Этот компонент указывает на простой конечный автомат, называемый контроллером анимации. Это файл, создаваемый Unity, который просто показывает состояние по умолчанию; иначе говоря, он всегда находится в состоянии «idle» («простаивает»), так как это единственное доступное состояние. Это состояние простоя ничего не делает, а просто указывает на мой файл анимации. На рис. 10 представлены реальные данные ключевых кадров на временном графике.

Рис. 10. Анимационные данные в простое

Может показаться, что для подготовки анимации требуется много усилий. Однако мощь конечных автоматов в том, что вы можете управлять ими, задавая простые переменные. Вспомните: состояние не делает ничего — только указывает на файл анимации (хотя в 3D можно изощряться и делать такие вещи, как смешивание анимаций).

Затем я взял больше изображений, что создать анимацию run (run animation) и перетащил их на свой игровой объект Yeti. Так как у меня уже есть компонент аниматора в этом объекте, Unity просто создает новый файл анимации и добавляет новое состояние «run» («выполняется»). Я могу просто щелкнуть правой кнопкой мыши состояние idle и создать переход к run. При этом появляется стрелка между состояниями idle и run. Далее можно добавить новую переменную Running, использовать которую очень легко: вы просто щелкаете стрелку между состояниями и изменяете условие использования этой переменной, как показано на рис. 11.

Рис. 11. Смена состояний из idle в run

Когда Running становится равной true, анимация idle сменяется анимацией run, что означает лишь воспроизведение файла анимации с состоянием run. Вы можете легко контролировать эти переменные в коде. Если вы хотите запустить свою анимацию run инициацией состояния run при щелчке кнопки мыши, то можете добавить код, приведенный на рис. 12.

Рис. 12. Смена состояния программным способом

В моем примере я использовал отдельные спрайты для создания анимации. Однако довольно часто используют ленту спрайтов (sprite sheet) — один файл более чем с одним изображением в нем. Unity поддерживает ленты спрайтов, так что достаточно сообщить Unity, как разделить на части ваш спрайт, а затем включить эти части в вашу сцену. В этом случае от вас потребуется выполнить ряд операций: сменить в свойствах спрайта Sprite Mode с Single на Multiple и открыть Sprite Editor, который потом сможет автоматически поделить спрайт и применить изменения, как показано на рис. 13. Наконец, вы раскрываете спрайт (в режиме просмотра проекта на значке спрайта есть небольшая стрелка), выделяете полученные спрайты и перетаскиваете их в свою сцену, как обычно.

Рис. 13. Создание ленты спрайтов

Анимация может быть делом сложным, пока вы не поймете систему. Подробности см. в моем блоге на channel9 или один из многих превосходных ресурсов на сайте обучения Unity.

Конец уровня Когда игрок доходит до конца уровня, можно ограничиться просто коллайдером, работающим как триггер, и позволить игроку попасть в эту зону. После этого вы загружаете следующий уровень или перезагружаете текущий:

Игровой объект и его соответствующие свойства показаны на рис. 14. Заметьте, что высота коллайдера достаточно велика, чтобы игрок не мог перепрыгнуть через него, и, кроме того, этот коллайдер настроен как триггер.

Рис. 14. Игровой объект и его свойства

Ход игры (game play) В просто 2D-игре вроде этой поток управления довольно прямолинеен. Игрок начинает игру. Гравитация абсолютно твердого тела заставляет персонаж в игре упасть. У персонажа и платформы есть по коллайдеру, поэтому персонаж останавливается. Считывается сенсорный ввод, от клавиатуры и мыши, что приводит к перемещению игрового персонажа. Игрок перепрыгивает между платформами с помощью rigidbody.AddForce, который заставляет персонаж прыгнуть, и перемещается влево и вправо за счет считывания Input.GetAxis(«Horizontal») и его применения к rigidbody.velocity. Игрок собирает грибы, которые являются коллайдерами, настроенными как триггеры. Когда игрок касается их, они увеличивают счет и разрушаются. Как только игрок доходит до финала уровня, срабатывает триггер, перезагружающий текущий уровень. Здесь следовало бы добавить большой коллайдер под землей, чтобы обнаруживать, когда игрок сваливается с платформы, и просто перезагружать уровень.

Заготовки (prefabs) Повторное использование важно как в кодировании, так и в дизайне. Назначив своим игровым объектам несколько компонентов и настроив их, вы будете часто использовать их снова и снова в рамках одной сцены или даже нескольких сцен либо игр. Вы можете создать другой экземпляр игрового объекта в сцене, но также можете создать экземпляр заготовки, которой пока нет в вашей сцене. Возьмем, к примеру, платформы и их коллайдеры. Если вы хотите повторно использовать их в других сценах, то, увы, на данный момент это невозможно. Но, создав заготовки, вы получаете нужную возможность. Просто перетащите любой игровой объект из иерархии обратно в папку проекта, и будет создан новый файл с расширением .prefab, содержащий любые дочерние иерархии. Теперь вы можете перетаскивать этот файл в другие сцены и повторно использовать его. Исходный игровой объект теперь оказывается соединенным с заготовкой. Обновление файла .prefab обновляет все экземпляры в ваших сценах; кроме того, вы можете оправлять изменения из модифицированной заготовки сцены обратно в файл .prefab.

Щелкнув заготовку, вы увидите содержащиеся в нем игровые объекты, как показано на рис. 15. Если вы внесете здесь изменения, все экземпляры в вашей сцене будут обновлены.

Рис. 15. Просмотр содержимого заготовки

Заключение

Во всех играх выполняется ряд общих операций. В этой статье я рассказал об основах аркадных игр (игр-платформеров), в который используются коллайдеры, абсолютно твердые тела, анимации, учет текущего счета, базовый вывод текста в GUI и чтение пользовательского ввода для применения силы к игровому персонажу с целью его перемещения. Эти строительные блоки можно повторно использовать в играх самых разнообразных типов. В следующей статье мы обсудим трехмерные игры.

Дополнительные материалы для изучения

  • Данный проект в скомпилированном виде channel9.msdn.com/Events/Build/2014/2-503.
  • Microsoft Virtual Academy. «Developing 2D & 3D Games with Unity for Windows» aka.ms/UnityMVA.
  • Блог Adam’s Channel 9 aka.ms/AdamChannel9.
  • Ресурсы Unity unity3d.com/learn.

Адам Тьюлипер (Adam Tuliper)старший идеолог по технологиям в Microsoft; живет в солнечной Южной Калифорнии. Разработчик инди-игр, один из администраторов Orange County Unity Meetup и автор на pluralsight.com. Скоро в его семье появится третий ребенок, так что связывайтесь с ним, пока у него еще есть свободные минуты, по адресу adamt@microsoft.com или через twitter.com/AdamTuliper.

Выражаю благодарность за рецензирование статьи экспертам Мэтту Ньюмену (Matt Newman) из Subscience Studios и Тоутвидасу Цилису (Tautvydas Žilys) из Unity.

Создание 2D и 3D игр на C#

C# («си шарп») – востребованный и многофункциональный язык программирования. Hа нем пишутся самые разные приложения: от небольших десктопных программ до крупных веб-порталов и веб-сервисов, обслуживающих ежедневно миллионы пользователей.

Чтобы создать свою первую игру на C#, совсем не обязательно знать язык досконально. На занятиях курса ваш ребенок овладеет набором несложных приемов, познакомится с основными принципами создания игры и сумеет быстро достичь результата — создаст собственную 2D или 3D-игру на C#!

Курс «Создание 2D и 3D игр на C#» рекомендован каждому коддику от 12 лет, потому, что он:

  • освоит универсальный, применяющийся во многих языках программирования, синтаксис;
  • познакомится с редактором визуальных компонент wysiwig;
  • создаст с нуля свою первую 2D-игру или 3D-игру.

Курс ориентирован на обучение программированию, а игры используются для наглядности.

Еще немного о преимуществах C#:

  • Современность. Асинхронное программирование, анонимные типы, лямбда выражения, type inference, функциональное программирование и LINQ – все это позволяют писать выразительный и легко поддерживаемый код и превращает скучное, монотонное и щедрое на ошибки программирование в простое и приятное занятие.
  • Мощные возможности. C# сочетает простоту и выразительность современных объектно-ориентированных языков (вроде Java) c богатством возможностей и мощью C++.
  • Автоматическое управление памятью. Разработчику не нужно управлять памятью вручную и он может сосредоточится на реальных задачах.
  • Надежность. C#-разработчики не ждут падения программы после запуска для поиска очевидных ошибок, компилятор делает это за них.
  • Простота изучения. Научиться программировать на C# очень просто – огромное количество доступной документации поможет разобраться с любой проблемой.
  • Скорость. C# сочетает высокую продуктивность с производительностью низкоуровневого языка.
  • Кросс-платформенность. На C# пишут под iOS и Android, а также для многих встраиваемых, десктопных и серверных платформ. Суперпопулярный игровой движок Unity поддерживает C#.

Объектно-ориентированное мышление (2014)
Автор: Мэтт Вайсфельд
Скачать книгу на английском — здесь.

Как мы понимаем, что учащийся освоил программу?

Во время обучения мы оцениваем как практическую сторону вопроса (как это сделать?), так и понимание темы (почему и зачем).

Ученики демонстрируют свои знания, решая задачи своим собственным способом, объясняя алгоритмы своими словами, помогая одногруппникам исправлять ошибки и создавая презентации по своим законченным проектам.

C# game — C#, ошибка при запуске 2д игры.

При запуске игры The Elder Scrolls 5 Skyrim — Dragonborn.Вылезает ошибка:»Запуск программы не возможен,так как на компьютере отсутсвует Steam_api.dll.Попробуйте переустановить программу.(Переустанавливал 3 раза!)Что делать.

Возможно отсутствует steam — установить его! Если у вас пиратка ищите этот файл в карантине антивируса!

Что делать если при установки любый игр приложений через setup выдает ощибку «. . ?? . ?»

Проблемы с памятью, либо переустановка Windows!

тут вероятно поможет только смена ОСи, писал выше

Я установил гта5 запускаю игру и пишет версия этого файла несовместима с использувоемой версией винодвс. С помощью сведений о системе определите необъходимую версию программы (32- или 64- разрядную. Что делать ответьте по эмэилу malsim.www.com@gmail.com. у меня виндовс 7 корпоративная

Это значит не подходит система тоесть у тебя 32 разрядная а нужна 64

у меня 64 и не запускает

Добрый день!У меня такая проблема, я устанавливаю игру Линейдж 2 и выдает вот такую ошибку :The game may not be consistant because AGP is deactivated.Please activate AGP for consistancy.Я посмотрела AGP включен.в чем дело не пойму но игра не работает


Здравствуйте, я скачал Far Cry 4. Но пр запуске файла игры на рабочем столе пишет ошибка «Версия этого файла несовместима с используемой версией Windows. С помощью сведений о системе определите необходимую версию программы (32- или 64- разрядную) и так далее…..Не буду дальше писать.

Друг,у тебя просто установлен windows 32-разрядная операционная система,этой игре нужен 64 разряд,да и собственно почти все новые игры идут только для 64/bit,всё что тебе нужно сделать что бы Far Cry запустился,установить windows 7 64/bit,и она заработает)

у меня 64 и фифа15 не идет,вот тоже самое пишет,что делать ?

Здравствуйте вчера купила игру Симс 4 начела скачивать все хорошо но потоп когда вставила второй диск где-то на 36 % выскакивает вот это помоги ; невозможно выполнить файл : C:\ Program Files (x86)\ The SIMS 4\Game\Bin\TS4.exe.
CreateProcess: сбой;код 267 Неверно задано имя папки помоги пожайлуста

Вообщем жмешь правой кнопкой мыши на папку или диск,куда хочешь установить игру,жмешь на »свойства»далее выскочит окно там жмешь на »Безопасность,там будет как бы окошечко называется »Группы или Пользователи»под ним будет кнопка »изменить»жмешь на неё и выбираешь пользователя,на котором нету галочек,галочки будут показаны чуть ниже в »Разрешения для группы»выставляешь галочки разрешить,на тех пользователях,на которых можно поставить галочку,далее жмешь ок и всё должно работать)

ЗДРАВСТВУЙТЕ ПОЧЕМУ ПРИ ЗАПУСКЕ ИГРЫ ДЕАД РАСИНГ 3 У МЕНЯ ВЫДАЕТ ОШИБКУ appcrash КАК РЕШИТЬ ПРОБЛЕМУ У МЕНЯ ВИНДОВТ 7 МАКСИМ.4 ГИГА ОЗУ

у меня windows xp и не работает игра 60 second. Выдает ошибку: 60 second.exe не является приложением vin32. Как решить проблему? Плииз.

Помогите!пожалуйста,когда я запускаю игру гта Сан Андрес,выходит ошибка-Инструкция по адресу «0x-0158017a» обратилась к памяти по адресу «0x000000b8».Память не может быть «read»

Здравствуйте что делать если при запуске игры hatred не чего не происходи,и не выдаёт ошибки просто рабочий стол и все ??

Добрый день! Помогите пожалуйста, установил игру Hatred установка прошла нормаль, но когда запускаю игру выдаёт ошибку! Пишет что запуск программы не возможен, так как на компьютере отсутствует MSVCP120.dll попробуйте переустановить программу. Обновил дерет икс и всё равно такая ошибка

Брр у меня такая же ерунда но только 100 вместо120 поставил Микрософт как написано и нихера не помогает что делать пробовал через пуск в поисковике CMD и прописывал как советовали пишет файл есть но не может найти точку доступа

Здравствуйте,проблема с игрой симс 4,скачивала с Origin.При загрузке вылетает окно «искать решение в интернете»после этого игра вылетает.Дело в том,что до переустановки винды все работало.
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: TS4.exe

Помогите пожайлуста при входе в skyrim чорный екран спустя минуту вылетает

Здравствуйте, у меня проблема с запуском гта 5 на виндоус 8.1. При запуске лаунчера или игры(там 2 эксешных файла), виндоус выдает ошибку. Вот подробный текст ошибки: Невозможно запустить это приложение на вашем ПК
Обратитесь к издателю приложения, что бы найти версию для вашего компьютера. Качалась 6 часов с торрента, весит 60 гигов, не купил раньше т к боялся, что просто выкину деньги на ветер, и она мне не пойдет. Но у друга она работает. Я пробовал отключать видеокарты, но все равно она не запускается. Что делать?

Здравствуйте. У меня проблема с игрой Titan Quest. Раньше, на прошлой версии Windows 7 она работала исправно без каких-либо ошибок и прочего, даже не висла ни разу. А сейчас, после того как мне переустановили комп — кошмар. Загрузка прошла успешно и никаких ошибок при этом не было. Игра включается все нормально , но только первые 3-5 минут, потом комп выключается. Помимо этой игры есть и другие -King’s Bounty, Герои 5-6, Асассин Крид , Diablo II … из всех игр бес проблем работает только последняя , остальные как и Титан — выключаются. Комп «засыпает» только на играх, в остальном все прекрасно. Что мне делать ? (Заранее хочу предупредить, что в компах я не разбираюсь и заумные вопросы мне задавать нежелательно.)

здравствуйте,выдает ошибку времени игры,что делать?

ntdll.dll—-как справиться с этой проблемой??

Здравствуйте. В какой программе конкретно проблема? ntdll.dll — чаще всего ошибки с этим модулем связаны: недавно установлено какое-то программное обеспечение или вирус (решение удалить ПО и почистить сканером вирусов); сбой какого-либо драйвера (если обновляли недавно драйвера на видеокарту, сделайте это снова только перед этим желательно удалить старые драйвер свипером); нарушение целостности системы (проверить системные файлы на целостность или откатиться на старую точку восстановления, когда ошибки не возникало); проблема с оборудованием — самый редкий случай. После выше сделанного обновите все компоненты системы (ссылки в правом блоке)

Здравствуйте!
У меня такая проблема, купил в стиме farcry 2 и 3, и не одна не запускается, при запуске пишет, что «у вас не достаточно прав для запуска данной игры, свяжитесь с вашим администратором.», учетка админская, прописал так же админку для диска где установлена игра и всех папок(включая папку с игрой), так же переустанавливал винду и все программы, так же все обновлял, но ничего не помогло. Так же пробовал кучу версий пиратки и тоже самое. Подскажите что делать?

Здравствуйте. При запуске любых игр либо видео какое-то время игра работает ( запускается — примерно 10-30 с), далее экран смазывается полосами, выдается синий экран с системной ошибкой и все. Видеокарта ATI Radeon HD 4850. Удалил драйверы видеокарты, скачал новые, обновил Driver Booster»ом — все тоже самое, вытащил видеокарту, продул разъем — аналогично. Что бы это могло быть.

Здравствуйте! Суде по вышеописанному проблема в видеокарте (синие полосы, различные фигуры — другим словом артефакты) Меняйте вашего старичка и будет вам счастье 100%. В ремонт можете не носить — только деньги на ветер, эффект если и будет то только временный. Еще не советую обновлять драйвера всякими бустерами и тд., только с официального сайта (у нас прямые ссылки на драйвера)

Здравствуйте. Устанавливаю игру Farming Simulator 2013 Titanium Edition, выдает ошибку 0хс00000ba. До этого устанавливал все работало нормально, что делать?

Здравствуйте. Скачал игру fermer 2013. Устанавливается нормально, при запуске выдает ошибку 0хс00000ba. До это устанавливал эту же игру, все работало нормально. Подскажите, что делать?

0хс00000ba -ошибка инициализации приложения. Иными словами приложение не нашло необходимые для его работы модули, либо само приложение некорректно откомпилировано. В вашем случае наиболее вероятен первый вариант. Если у вас стоит антивирус, то он во время установки программы мог удалить или «вылечить» подозрительный на его взгляд файл. Попробуйте переустановить и запустить игру с отключенным антивирусом, если он есть конечно, добавить папку с игрой в доверенную зону антивируса, посмотреть и восстановить файлы из карантина антивируса

Из карантина восстановил файлы игры. отключил антивирусник. Переустанавливаю игру — тоже самое. Помогите.

The game crashed. the srash report name «2014-07-16_210816» next to game executable. It would be great if you’d send it to the developer of the game
ошибка при запуске игры что делать помогите

Что за игра? Лицензия или нет? если можно файл скиньте report name «2014-07-16_210816″

Здравствуйте.Помогите пожалуйста.Купила игру Call of Duty advanced warfare на четырёх дисках,игра встала на комп,при запуске открывается заставка игры а с ней вместе выскакивает рамка с многочисленными знаками вопроса и буквой N,и слово(RAM).ЧТО МНЕ ДЕЛАТЬ?Буду очень благодарна за помощь.

Знаки вопросов выскакивают на кривой сборке Windows или же проблема с оперативной памятью? Можно поподробнее про ваш компьютер: характеристики, widows лицензия или нет, возраст компа

Комментарии перенесены со старого сайта.

Ребята помогите захожк в гта 4 как бы запускается, но потом пишет: ИСКАТЬ ПРОБЛЕМУ В ИНТЕРНЕТЕ.Ниде там написано подробности проблемы и там имя проблемы:APPCRA CH ниже написано источник проблемы GTA.exe
Цитировать

0 #28 Николай 23.12.2014 15:16
Здрасте ! Помогите пожалуйста. Скачал лицензию Mass Effect 3, купил в ориджине. Скачал игру,потом все дополнения, обновил. Запускаю…и ничего не происходит, запускал с ехе. тоже ничего. Раньше все работало, только я ставил пиратку, сверху лицензию, а потом все дополнения. Что делать ?
Цитировать

0 #27 Администратор 21.12.2014 20:07
Цитирую Александр:
Подскажите пожалуйста! Не хочет играться Assassin Creed первый (2008 года). Система Win 8.1, directx, microsoft visual c++ все обновлено, все новое. если в интернете и пишут, то хрен найдешь, а так как я понял у кого как — у кого-то идет на данной винде 8.1, у кого-то нет. . Как заколдованная. начинает запускаться, очертания вступительного ролика убисофта (темный экран, обрывок звука, непроявившаяся надпись) и — прекращение работы. Виндоус надрывается но устранить неисправность не может. Хотя на 7 -рке помню нормально шла. Притом запускал Assassin Creed 2 — тот пошел как надо. В свойствах посмотрел — автоматически при установке видимо выставился в режим совместимости с вин 7.
Неужели единственное решение проблемы с первой частью ассасинов, это установка семерки?( заранее спасибо, ответ очень жду.

Единственное что могу посоветовать это удаление дров на видео и поставить более старые))) Возможно поможет
Цитировать

0 #26 Администратор 21.12.2014 19:56
Цитирую Женя:
Помогите пожалуйста я установил far cry 4
установил все проги дрова и т.д
http://s001.youpic.su/pictures/1417294800/e097e1a92632f3cb6b950e1bc6ca74f8.jpg
игра пиратка но рабочая 100% таблетка и сам репак не знаю уже что делать

Второй скриншот выложи, только сначала нажми показать подробности проблемы
Цитировать

0 #25 Женя 21.12.2014 04:33
Помогите пожалуйста я установил far cry 4
установил все проги дрова и т.д http://s001.youpic.su/pictures/1417294800/d97bdb28c149a7ad0a3b466b27fd4dd7.jpg
но ошибка осталась
http://s001.youpic.su/pictures/1417294800/e097e1a92632f3cb6b950e1bc6ca74f8.jpg
игра пиратка но рабочая 100% таблетка и сам репак не знаю уже что делать
Цитировать

0 #24 Александр 21.12.2014 01:52
Подскажите пожалуйста! Не хочет играться Assassin Creed первый (2008 года). Система Win 8.1, directx, microsoft visual c++ все обновлено, все новое. если в интернете и пишут, то хрен найдешь, а так как я понял у кого как — у кого-то идет на данной винде 8.1, у кого-то нет. пробовал всевозможные режимы совместимости, запуски от имени администратора, разные репаки и установочники (по крайней мере 3 репака точно). Как заколдованная. начинает запускаться, очертания вступительного ролика убисофта (темный экран, обрывок звука, непроявившаяся надпись) и — прекращение работы. Виндоус надрывается но устранить неисправность не может. Хотя на 7 -рке помню нормально шла. Притом запускал Assassin Creed 2 — тот пошел как надо. В свойствах посмотрел — автоматически при установке видимо выставился в режим совместимости с вин 7.
Неужели единственное решение проблемы с первой частью ассасинов, это установка семерки?( заранее спасибо, ответ очень жду.
Цитировать

0 #23 Администратор 20.12.2014 21:54
Цитирую илья:
помогите что делать скачал ассасин крид единство а у меня вылезает окно ошибка

Илья! Какая ошибка? Скриншот выложи или напиши что нам написано
Цитировать

0 #22 илья 20.12.2014 11:47
помогите что делать скачал ассасин крид единство а у меня вылезает окно ошибка
Цитировать

0 #21 Администратор 19.12.2014 15:20
Цитирую Юрец:
Админ выручи!! тут уже был такой вопрос но никто не ответил, при запуске установщика игры(Setup) вылетает ошибака и в ней очень много знаков вопроса( помогите пжл кто нибудь игра сириус сэм 3

Цитирую Евгений:
при установки любой игры вылетает ошибка со знаками вопроса

Кривая сборка windows или неправильно установлена система. Помогает полная и правильная установка ОС.
Цитировать

0 #20 стас 09.12.2014 18:32
спасибо �� все сделал правильно и игра запустилась.

#19 стас 09.12.2014 18:30
Я сделал скачать physx и у меня все получилось, спасибо ��
Цитировать

0 #18 Николай 09.12.2014 16:21
Спасибо большое. Случайно наткнулся на ваш сайт, решал проблему с запуском игры, оказалось действительно причина в Microsoft Visual C++. Раньше решал такие проблемы сносом винды �� . Сейчас скачал по ссылке, все заработало, спасибо ! ��
Цитировать

0 #17 Кирилл 19.11.2014 17:17
я скачал Far Cry 4 запускаю и вылезает окно и написано ВОЗНИКШАЯ ПРОБЛЕМА ПРИВЕЛА К ПРЕКРАЩЕНИЮ РАБОТЫ. Windows закроет эту программу подскажи,и это не только на этой игре,а в которые я уже играл?
Цитировать

+1 #16 Юрец 09.09.2014 19:14
Админ выручи!! тут уже был такой вопрос но никто не ответил, при запуске установщика игры(Setup) вылетает ошибака и в ней очень много знаков вопроса( помогите пжл кто нибудь игра сириус сэм 3
Цитировать

+5 #15 Роман 05.09.2014 01:14
подскажите пожалуйста что делать? я скачал игру Dirt 2 установил все отлично. но как только запускать её, так оно выкидывает вот такое:»Прекраще на работа программы «Dirt2 Executable» «. что это такое? и ещё пишет что виндовс может провести поиск способа устранения этой ошибки в интернете. подскажите что делать?! умаляю очень нада. зарания огромное спасибо.
Цитировать

+1 #14 Гена 07.07.2014 13:51
Ребята помогие скачал игру скпер елита 3 не запускается
Цитировать

+1 #13 Евгений 18.06.2014 17:04
при установки любой игры вылетает ошибка со знаками вопроса
Цитировать

0 #12 Никитон 29.05.2014 15:31
Здравствуйте,ус тановил игру вылезает ошибка определите систему 32 или 64,что делать??
Цитировать

+1 #11 Александр 07.05.2014 19:43
Подскажите пожалуйста, включаю игру она тока начинается(букв ально секунды три)и раз- чёрный экран. Windows 7 не может определить причину поломки. Что делать?
Комп так-то мощный, всякие игрушки идут, новые уже все переиграл, а вот старенькую загрузил (Mass Effect 3) она ну ни как…
Цитировать

+1 #10 Администратор 15.02.2014 17:54
Цитирую иван:
ребята срочно выручайте установил GTA 4 захожу в нее появляется черный экран(как в самом начале запуска)и сразу выписует ошибку прекрощение роботы что делать не знаю(((
помогите .

Все установил и обновил? Характеристики пк напиши.

#9 иван 15.02.2014 17:40
ребята срочно выручайте установил GTA 4 захожу в нее появляется черный экран(как в самом начале запуска)и сразу выписует ошибку прекрощение роботы что делать не знаю(((
помогите .
Цитировать

+1 #8 александр 28.01.2014 16:06
подскажите пожалуйста установил игру снайпер воин призрак 2 начал играть. когда не прошел уровень высветило. задание провалено нажмете enter для повторного прохождения. нажимаю. высвечивается чёрный экран и игра не открывается. Что делать.
Цитировать

+3 #7 Администратор 17.07.2013 09:50
Виктор. Скачать, установить и обновить punkbuster. Наберите в поисковике «скачать punkbuster».
Цитировать

0 #6 виктор 17.07.2013 09:20
подскажите пожалуйста установил игру call of duty 4 modern warfare по интернету и при захооде в игру пишет ошибку не удалось инициализироват ь punkbuster. punkbuster отключëн
Цитировать

0 #5 Администратор 12.07.2013 16:14
Переустанови steam, если у тебя лицензия. Если пиратка ищи новый кряк или новый репак. Еще как вариант посмотри в карантине антивируса, если он есть, этот файл steam-api.dll и восстанови его. Не получится пиши номер, посмотрим удаленно.
Цитировать

0 #4 Ігор 12.07.2013 13:55
The program can’t start because steam-api.dll is missing from your computer.што мне делать
Цитировать

0 #3 Администратор 28.06.2013 10:03
Доброго времени суток Виктор! Попробуйте найти эту программу у себя на компьютере и запустить в ручную, затем запустить игру. Если нет ее посмотрите в карантине антивируса exeшный файл ubisoft. Удалить и переустановить в крайнем случае программу, если не поможет тогда уже и игру)
Цитировать

0 #2 виктор 28.06.2013 09:33
подскажите пожалуйста установил игру ассасин крид2 играл дня3 и вдруг начала появляться ошибка не найдена програма ubisoft game launcher что делать ?
Цитировать

0 #1 Вячеслав 22.05.2013 17:24
Добрый день! Подскажите пожалуйста, при установки ГТА 4 , у меня сразу выдает «не хватает оперативной памяти для распаковки архива». У меня 4 Гб оперативки, Windows XP SP3/ Приложения дополнительно ни какие не запущены, анти вирус отключил. Что Делать ?

10 фич в C#, о которых вы определённо должны узнать и начать их использовать

Если вы только начали изучение C# или же решили расширить свои знания, мы нашли для вас 10 фич, знание которых позволит вам избежать ошибок, писать более понятный код и сохранить кучу времени.

1. async / await

Использование паттернов async / await позволяет разблокировать UI / текущий поток во время выполнения блочных операторов. Паттерны async / await позволяют коду продолжить выполнение, даже если что-то блокирует его выполнение (например, веб-запрос).

2. Инициализаторы объектов / массивов / коллекций

Данный пример может быть особенно полезен в юнит-тестировании, но в других случаях лучше использовать конструкторы.

3. Лямбды, предикаты, делегаты и замыкания

Эти фичи просто незаменимы во многих случаях: например, при использовании LINQ. Поэтому рекомендуем вам убедиться, что вы действительно понимаете, когда и как их использовать.

4. ?? (Оператор объединения с NULL)

x ?? y — возвращает x , если значение отличается от null ; в противном случае возвращает y .

Может быть несколько операторов .

?? также может быть использован для перевода типов null в не null :

5. $”” (Интерполяция строк) — C# 6

Фича в C# 6 позволяет эффективно и элегантно собирать строки:

6. ?.(определяет null) — C# 6

x?.y — доступ к членам, определяемый условием null . Возвращает значение null , если левый операнд имеет значение null .

Больше никаких NullReferenceExceptions!

7. Выражение nameof — C# 6

Может показаться, что выражение nameof не особо полезно, но это не так. При использовании автоматических инструментов рефакторинга (например, ReSharper) иногда может потребоваться обратиться к аргументу метода по его имени:

Вот, как это должно быть:

8. Инициализаторы свойств (property) — C# 6

Инициализаторы свойств позволяют задавать начальные значения для свойств:

Польза их использования заключается в том, что вы не можете объявить setter, тем самым делая свойства неизменяемыми. Инициализаторы свойств хорошо работают в связке с синтаксисом первичного конструктора в C# 6.

9. Операторы as и is

Is — совместимость типов. Возвращает значение true, если вычисленный левый операнд может быть приведен к типу, указанному в правом операнде (статический тип).

As — преобразование типов. Возвращает левый операнд, приведенный к типу, заданному правым операндом (статический тип), но as возвращает null , где (T)x вызывает исключение.

10. Ключевое слово yield

Ключевое слово yield позволяет заполнить интерфейс IEnumerable объектами (items). Следующий пример вернет все степени двойки от 2 до 2 в степени 8 (то есть 2, 4, 8, 16, 32, 128, 256):

В правильных руках yield — очень мощная вещь. Оно позволяет с легкостью генерировать последовательность объектов, то есть системе не придется перечислять всю коллекцию целиком — это может быть сделано по требованию.


C# Разработка

Блог о создании приложений на платформе .NET Framework

14 октября 2020 г.

Симулятор игры «Жизнь» («Game of life») на WPF

.NET Framework 4.0
Требуемая версия установленного Framework.

Однажды, просматривая видео на youtube, я наткнулся на крайне занимательный рассказ про клеточные автоматы. Они мне настолько понравилось, что захотелось самому увидеть их работу, а так же реализовать алгоритм на языке C#. Ссылка на то видео:

Алгоритм (правила) работы клеточных автоматов.

Пример на C# + WPF.

Исходный код своего проект я разместил на bitbucket.org, ссылка на проект размещена в начале статьи. Так же можно скачать (выше) собранную версию, но для её работы необходимо наличие предустановленного .NET Framework 4.0.

Элементы управления:

  1. Меню содержит пункты:
    New — создание нового чистого поля.
    Open — открытие сохранённого поля.
    SaveAs — сохранение текущего заполненного поля
  2. Содержит пункты запуска и остановки цикла «Жизни»
  3. Окно «Об авторе»
  4. Дублирует кнопки меню Life.
  5. Номер текущего поколения с начала запуска поля.

Рисование:

Рисовать можно по точечно левой кнопкой мыши, либо зажав левую кнопку водить мышку по полю, оставляя след. Для стирания точек можно по ним повторно нажимать, либо если требуется полная очистка — тогда использовать пункт меню File -> New. При этом можно участвовать в процессе и добавлять клетки пока идёт игра.

В папке examples содержатся несколько примеров автоматов с необычным поведением.

    Ship.life — после запуска похоже на плывущий корабль, оставляющий лопастями разводы на воде.

Cross.life — обычный с виду крест при запуске превращается в красивую снежинку.

Glider_Gun1.life. Так же можно сделать генерирующие глайдеры фабрику.

.

В интернете можно найти много примеров схем я же только даю инструмент для их создания.

Age of Mythology: The Titans: Ошибка Direct3D initialization error при запуске игры: Что делать?

У меня в Windows 10 при запуске некоторых игр появляется ошибка «Direct3D initialization error». Windows шла вместе с ноутбуком, версия «Домашняя для одного языка». Скажите, может ли эта ошибка быть из-за версии Windows, и как ее исправить?

Вообще, подобная ошибка не редкость, особенно после переустановки Windows (в вашем случае, после покупки ноутбука, так как в магазинах редко устанавливаются все необходимые библиотеки и драйвера, необходимые для комфортной работы устройства). Появляется она, как правило, после попытки запустить какую-нибудь игру — либо сразу, либо в игре будет просто черный экран, а свернув ее вы увидите это окно.

В этой статье остановлюсь на основных причинах появления подобной ошибки, и покажу на примере как от нее избавиться.

Типичный вид ошибки

Что делать с ошибкой Direct3D.

Обновление DirectX

Самая частая причина появления подобной ошибки связана с отсутствием библиотеки DirectX. Причем, не обязательно, что она у вас не установлена, возможно у вас просто нет какого-то конкретного файла из библиотеки.

DirectX — специальная библиотека для программистов. Используется в большинстве случаев при разработке игр. Пакет доступен для установки и обновления на официальном сайте Microsoft. Более подробно от этом можете узнать на сайте Википедии.

Страница на сайте Microsoft для загрузки современной версии DirectX — https:www.microsoft.com/ru-ru/Download/confirmation.aspx?

Поэтому, рекомендую посмотреть требования запускаемой вами игры, и посмотреть, какая версия DirectX установлена у вас на ПК.

Чтобы узнать, какой DirectX у вас на ПК, нажмите:

  1. сочетание кнопок Win+R, чтобы открылось окно » Выполнить «;
  2. далее впишите команду dxdiag и нажмите Enter (см. скриншот ниже).

Запускаем средство диагностики DirectX (DxDiag)

Далее во вкладке «Система» будут представлены все необходимые данные: версия вашей ОС Windows, ваша видеокарта, звуковое устройства, версия BIOS, и версия DirectX (см. на красный квадрат на скрине ниже) .

Средство диагностики DirectX / Кликабельно

Для обновления DirectX на сайте Microsoft есть специальный веб-установщик. Перейдите на нужную страницу и скачайте его. Далее запустите, согласитесь с условиями лицензионного соглашения, и ждите пока работает мастер.

Принятие условий лиц. соглашения DirectX

В конце операции вы должны увидеть сообщение о том, что установка DirectX завершена, нужные пакеты обновлены и пр. Либо, как вариант, мастер сообщит вам о том, что новая версия DirectX уже установлена и в обновлении не нуждается. Рекомендую после этого перезагрузить компьютер, а затем попробовать запустить игру.

Установка DirectX завершена

Как правило, после такого обновления, игра начинает работать как нужно.

Если у вас нет интернета (либо он медленный или сайт Microsoft недоступен, выдает ошибку и т.д.), DirectX можно обновить с помощью игр: почти на половине дисков с играми есть новая версия DirectX (прим.: новая на момент запуска игры, конечно) . Поэтому, вам достаточно взять более-менее современную игру и установив ее, обновите DirectX.

Проблема с драйвером видеокарты

Если ошибка все так же появляется, возможно ваша видеокарта отключена в диспетчере устройств (такое может быть, например, у ноутбуков с 2-мя видеокартами), либо у вас просто не обновлены/не установлены драйвера на видеокарту.

Как проверить наличие драйверов и включена ли видеокарта

Самый простой способ, воспользоваться диспетчером устройств. Чтобы его открыть:

  1. нажмите кнопки Win+R;
  2. далее введите devmgmt.msc и нажмите Enter.

Запуск диспетчера устройств — devmgmt.msc

Далее откройте вкладку «Видеоадаптеры» , и посмотрите, все ли видеокарты включены, и не горит ли напротив них желтый восклицательный знак (указывающий на проблемы с драйверами, пример — ).

Ниже на скриншоте показано, что один видеоадаптер отключен и не задействован. Часто ошибка с Direct3D связана как раз с этим.

Чтобы включить адаптер, просто щелкните по нему правой кнопкой мышки и выберите функцию «Задействовать» . Пример на скрине ниже.

После этого перезагрузите компьютер, затем попробуйте открыть игру.

В некоторых случаях одна из видеокарт может быть отключена в BIOS компьютера (например, если у вас на ноутбуке стоит дискретная и встроенная видеокарты) . Чтобы проверить так ли это, зайдите в BIOS, обычно, в разделе MAIN можно найти режим работы графики (Graphic mode). Пример показан на фото ниже.

Как обновить драйвера на видеокарту:

  1. Способ №1 : зайти на официальный сайт производителя вашего ноутбука и скачать их оттуда. Если не знаете точную модель ноутбука, воспользуйтесь программами для определения характеристик компьютера — https:ocomp.info/harakteristiki-kompyutera.html
  2. Способ №2 : воспользоваться специальными программами для автоматического поиска и обновления драйверов. Самый простой и быстрый вариант, на самом деле. К тому же, программы проверят необходимые библиотеки для игр (например, Drive Booster, рекомендую) — https:ocomp.info/update-drivers.html
  3. Способ №3 : работать в ручном режиме, через диспетчер устройств. Более подробно об этом см. здесь: https:ocomp.info/kak-nayti-i-ustanovit-drayver-dlya-neizvestnogo-ustroystva.html

Используйте режим совместимости

Не так давно я тестировал ноутбук с относительно новым процессором AMD Ryzen 5 2500U и столкнулся с одной интересной особенностью.

Обновил DirectX, установил все необходимые драйвера, различные пакеты и дополнения к играм — однако, часть игр не запускалась, показывая ошибку Direct3D. (особенность: все игры были старыми, что наводило на разные мысли. ) .

Довольно сильно я был удивлен, когда открыл свойства исполняемого файла игры, перешел во вкладку «Совместимость» и поставил галочку напротив пункта «Запустить игру в режиме совместимости с Windows XP SP 2» — игра стала нормально работать, никаких ошибок, связанных с Direct3D, больше не было.

Примеры, что нужно сделать, приведены на скринах ниже.

Открываем свойства исполняемого файла игры

Запустить игру в режиме совместимости с Windows XP SP 2

PS

Если ничего не помогло из выше написанного, то также рекомендую еще обновить пакет Microsoft Visual C++ и NET Framework.

Введение в программирование C# на Unity

Несмотря на то, что встроенные компоненты Unity могут быть очень разносторонними, вскоре ты обнаружишь, что тебе нужно выйти за пределы их возможностей, чтобы реализовать свои собственные особенности геймплея. Unity позволяет тебе создавать свои компоненты, используя скрипты. Они позволяют активировать игровые события, изменять параметры компонентов, и отвечать на действия Игрока каким тебе угодно способом.

Unity поддерживает следующие языки программирования: C# и Javascript. Языки C# и Javascript считаются одними из самых популярных среди программистов. На C# пишутся программы для компьютера, веб приложения, а Javascript активно используется для создания интернет-страниц. В нашем случае:

Установка среды разработки

Чтобы писать скрипты, необходим редактор кода. В комплекте с Unity идет MonoDevelop, так что его не требуется устанавливать отдельно. Другой вариант — использовать Visual Studio — мы рекомендуем ее. Сменить среду разработки можно в настройках: Edit → Preferences, а затем выбери панель External Tools.

Вывод сообщения в консоль Unity

Когда ты напишешь свой первый код и добавишь его в Unity, Unity проверит код и, если в нем нет ошибок, произойдет компиляция.

Консоль (англ. — Console) – это панель в Unity, которая отображает ошибки в коде (отображаются красным значком), предупреждения (отображается желтым значком) и позволяет выводить справочную информацию (белый значок). По умолчанию эта панель отображается в нижней части программы в закладке Console. Если эта панель не отображается на экране, то в главном меню выбери Window → Console.

Чтобы создать скрипт выбери Assets → Create → C# Script. Имя скрипта должно быть обязательно на английском и начинаться с большой буквы. Открой созданный скрипт и напиши:

Скрипт не будет работать до тех пор, пока экземпляр скрипта не будет присоединен к игровому объекту. Ты можешь прикрепить скрипт перетащив его на игровой объект в окно Иерархия или через окно Инспектор выбранного игрового объекта.

Код, который должен вызываться один раз при старте программы, ты можешь написать внутри функции Start(), как в примере выше.

Код, который должен вызываться каждый кадр, ты можешь написать внутри функции Update().

Переменные

Если ты хочешь сохранить данные (количество жизней игрока, патронов или очков опыта), то для этого используются переменные. Переменные разделяются на типы, которых существует огромное множество.

Переменная — поименованная область памяти, адрес которой можно использовать для осуществления доступа к данным и изменять значение в ходе выполнения программы. Переменные хранят в себе информацию разного типа, эти данные называют значением переменной. Для каждого типа данных есть свой тип переменной. Например:

  1. Целочисленные: int (от –2 147 483 648 до 2 147 483 647), long (от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807).
  2. Символы и строки: char (элемент в кодировке UTF-16), string (последовательность элементов в кодировке UTF-16).
  3. С плавающей запятой (дробные): float (от 1,5 × 10–45 до 3,4 × 1038, с точностью до 7 цифр), double (от 5,0 × 10–324 до 1,7 × 10308, с точностью до 15 цифр).
  4. Логические: bool (значение true или false).

Инициализация переменной

Все переменные в C# должны быть объявлены (инициализированы) до их применения. Например:

Задать значение переменной можно, в частности, с помощью оператора присваивания — знак «=». Кроме того, при объявлении переменной можно сразу задать ее значение. Например:

Переменные численных типов можно складывать, вычитать, умножать и делить:

+ — операция сложения;

— операция вычитания;

* — операция умножения;

/ — операция деления.

А вот так сумму чисел можно вывести в консоль:

Счетчик времени с помощью Time.deltaTime

Практически во всех играх требуется знать сколько времени прошло с момента запуска игры (пример: игры на время). Но в Unity мы можем узнать только сколько прошло времени между кадрами (напоминаю, что игра – это набор кадров, которые быстро меняются. В одну секунду количество таких кадров может достигать 60 и больше).

Чтобы узнать сколько времени прошло между кадрами — используется Time.deltaTime.

Чтобы сделать дробное число целым, ставим перед ним (int).

Позиция объекта

Координаты объекта хранятся в компоненте Transform, свойство — position. Каждая координата имеет тип float. Вот так можно выводить координаты объекта в консоль:

Цукерберг рекомендует:  Страница с тройным слайдшоу
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих