danilaxxl danilaxxl

CollectableItemData.cs

[CreateMenuItem(fileName = "newItem", menuName = "Data/Items/Collectable", order = 51]

GoloGames GoloGames

vadya_ivan, рад, что вам игра показалась интересной : )

P.S. Кстати уже доступна бесплатная демо-версия в Steam

vadya_ivan vadya_ivan

Визуал, задумка, музыка , механики, все в цель

GoloGames GoloGames

Ato_Ome, спасибо за позитивные эмоции, будем стараться : )

Ato_Ome Ato_Ome

Потрясающий результат, все так четенько, плавненько)
То ли саунд, то ли плавность напомнили мне игрушку World of Goo, удачи вам в разработке и сил побольше дойти до релиза!)

Cute Fox Cute Fox

Graphics are a little cool, good HD content. But this game doesn't cause nary interest me.
However the game is well done.

GMSD3D GMSD3D

Почему действие после всех условий выполняется?
[step another object]

Zemlaynin Zemlaynin

Jusper, Везде, но наугад строить смысла нет. Нужно разведать сперва территорию на наличие ресурсов.

Jusper Jusper

Zemlaynin, а карьеры можно будет везде запихать?
Или под них "особые" зоны будут?

Zemlaynin Zemlaynin

Это так скажем тестовое строительство, а так да у города будет зона влияния которую нужно будет расширять.

Jusper Jusper

А ссылка есть?

Jusper Jusper

Я не оч понял из скриншота, как вообще работает стройка. У игрока будет как бы поле строительства?

split97 split97

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

split97 split97

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

ViktorJaguar ViktorJaguar

Почему я нигде не могу найти нормальный туториал, где покажут как экипировать предмет (например, меч) в определенную (выделенную под оружие) ячейку???

Логотип проекта Программирование

C# Для психов или извращенцев?

В данной статье автор начнет с основ C#. Или не основ? Не важно! Важно то, что в C# есть полный мешок вариантов как скопипастить код "Hello ALL!", который новичок сразу не утащит.

C# Для психов или извращенцев? — Программирование — DevTribe: инди-игры, разработка, сообщество

Внимание! Данная статья не рекомендована лицам с высоким порогом горения, по причине крайне странного диалекта русского языка использованным автором, пометки "Crazy" и перегруженного содержания

Данная статья не обучающая, и не является насмешка над языком. Статья задумывалась для показа читателям какими способами можно вывести "Привет мир" на консоль в виде краткого обзора языка.
void main() 
{
Console.WriteLine("Hello World!");
}

Классика

Начнем с классики жанра:

static void Main()
{
    Console.Write("Hi All!");		// Классический способ вывести сообщение "Hi All" в консоль
	// Console.ReadKey();			// Закомментированный статический метод ReadKey() класса System.Console возвращающий объект System.ConsoleKeyInfo  
}

Разбираемся. Так как автор давно ушел в дары MS'ту, он не знает другого классического способа, способного работать в VS Visual C#. Здесь указывается, что авторы языка работали на MS, если Вы не знакомы с данным языком рекомендую почитать.

Класс Console является статичным. Это означает, что скомпилированная программа создаст единственный и неповторимый объект данного класса, с которым и будет взаимодействовать программа. И да все его поля, свойства и методы также статичны.

Console.Write() - Метод вывода сообщений на консоль, умеет выводить строки, различные числа, даты и объекты с определенным методом String ToString(). Первоначально метод ToString() определен классом System.Object и возвращает строку типа "{...}" в которой перечисляются характеристики, поля и их значения.
Также в качестве входных параметров можно указать форматирующую строку типа "A = {0}" а дальше через запитую указать аргументы форматирования. Так это выглядит:

Console.Write("{0} {1}!", "Hello", "World");
// Hello World!

Также существует метод WriteLine(), роль которого такая же, что и у Write(), но он дополнительно переводит курсор строки на новую строку. Оба эти метода ничего не возвращают (хотя... возвращают void, но это тоже самое что и не чего)

Console.ReadKey() - функция ожидания нажатия клавиши клавиатуры. Имеет схожую роль с system("pause") из C++++, но вместо ожидании нажатия ENTER, она срабатывает на любой клавише. На system("pause") больше похожи методы Console.Read() и Console.ReadLine(), но про них будет описание в другой статье. ReadKey() возвращает объект ConsoleKeyInfo++, который можно использовать для проверки какая клавиша была нажата или сочетание клавиш (CTRL, ALT, SHIFT). Описание на MSDN (+пример);k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.5.1);k(DevLang-csharp)&rd=true).

Crazy Mode

Далее я приведу несколько извращенных способов вывода "Hello World!" на консоль используя возможности языка.

static void Main()
{
      char[] CrazyWorld = new char[] { 'H','e','l','l','o',' ','W','o','r','l','d','!'};
      Console.WriteLine(CrazyWorld);
      Console.ReadKey();
		// Получаем Hello World! 
}

static void Main()
{
    char[] CrazyWorld = new char[] { 'H','e','l','l','o',' ','W','o','r','l','d','!'};
    foreach(var i in CrazyWorld) Console.Write(i);
    Console.ReadKey();
	// Все тот же Hello World!
}

static void Main()
{
    char[] CrazyWorld = new char[] { 'H','e','l','l','o',' ','W','o','r','l','d','!'};
    for(var i = 0; i < CrazyWorld.Length; i++) Console.Write(CrazyWorld[i]);
    Console.ReadKey();
}

static void Main()
{   
    string CrazyWorld = "Hello STALKER";
    Console.Write(CrazyWorld.Substring(0,6)); // Подстрока 6-той символ пробел
    for(var i = 6; i < CrazyWorld.Length; i++) Console.Write("{0}.", CrazyWorld[i]);
    Console.ReadKey();
    // Hello S.T.A.L.K.E.R.       
}

А теперь десерт!

namespace HelloWorld
{
    /// <summary>
    /// Объекты будут приветствовать Вас
    /// </summary>
    class HelloYou
    {
        string YourName;
        public HelloYou(string name)
        {
            YourName = name;
        }

        public override string ToString() // Переопределяем реализацию Object.ToString()
        {
            return "Hello " + YourName + '!';
        }
    }
    /// <summary>
    /// Код сей проги поведает каким извращенцем может быть C#-прогер
    /// </summary>
    class Program
    {
        static void Main()
        {
            HelloYou helloQuest = new HelloYou("Quest");
            Console.WriteLine(helloQuest);
            Console.WriteLine(new HelloYou("Author"));
            Console.ReadKey();
            // Hello Quest!
            // Hello Author!
        }
    }
}

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

Статья подошла к концу (на большее не один из модераторов не согласится, все мы люди...) А что не было изложено сейчас, будет изложено в следующих статьях.
Автор рад и благодарит Вас за Ваше внимание. Желает всего хорошего!

Смотрите также:


Комментарии



Для начинающих будет сложновато и даже я пару раз на несколько секунд притупил, но для начала пойдёт
Мда, а до меня и не доходили мысли типа

char[] CrazyWorld = new char[]
Надо будет запомнить :)

Напиши лучше продолжение вот этого: http://devtribe.ru/p/programming/very-fast-c-sharp-1

И лучше без этой показушной "craziness".

Mihahail, Вы читаете мои мысли! У меня есть идея написать о наследование и как оно реализовано в C#, а эксперименты c "craziness" больше не будет.

VessTER:

Mihahail, Вы читаете мои мысли! У меня есть идея написать о наследование и как оно реализовано в C#, а эксперименты c "craziness" больше не будет.

Удачи. По больше пишите статей)

Простите, я может не совсем правильно понял, но какова суть статьи ? Обучение или своего рода насмешка над языком ?

kano:

Простите, я может не совсем правильно понял, но какова суть статьи ? Обучение или своего рода насмешка над языком ?

Данная статья не обучающая, и не является насмешка над языком.

Я задумывал показать читателям какими способами можно вывести "Привет мир" на консоль. Но получился кратки обзор языка.

Да способ подачи крайне сложен, но я красным уже написал.

Справка