Курсы создания компьютерных игр на C/C++ ( Часть 7 )

Для самых-самых начинающих программистов :] Часть 6.2 - http://pikabu.ru/story/_3461077
Курсы создания компьютерных игр на C/C++ ( Часть 7 ) Для самых-самых начинающих программистов :]  Часть 6.2 - <a href="http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_na_cc__chast_62__3461077">http://pikabu.ru/story/_3461077</a>
1
Автор поста оценил этот комментарий

Много читателей дожило до этого поста ? 

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Лишь самые сильнейшие :)

показать ответы
1
Автор поста оценил этот комментарий

поделки от слоу)


https://yadi.sk/i/LXJm8M0qsBdHK

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Keep go on :)

Предпросмотр
1
Автор поста оценил этот комментарий

А вот моя работа, взял идею у одного из комментаторов с выводом еще и косинусоиды

https://yadi.sk/d/-7PPbK-Nsz0HxQ

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Лайк однозначно! :) Есть мнение, что следующий урок должен очень понравится

1
Автор поста оценил этот комментарий

Вот этот весь набор функций и т.п. называется Windows API ? В нем мне стоит разобраться, да?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Можно и так сказать, но WinAPI - это очень обширная область :) Скорее это подраздел WinAPI касательно работы с консолью :)

показать ответы
1
Автор поста оценил этот комментарий

Просто я даже не знаю что гуглить )

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Ну все те консольные функции, макросы, типы о которых хочешь узнать больше :)

показать ответы
1
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Не знаю, по идее обычный гугл подойдет :)

показать ответы
1
Автор поста оценил этот комментарий

А нам вообще нужны будут в дальнейшем все эти штуки для консоли Windows, типа положения курсора, цвета символов и фона? Просто очень сложно все это понимать, если не знаешь в целом как и для чего это используется. А писать код не думая - бессмысленно.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Все эти трюки с рисованием в консоли вполне подойдут для написания реальной системы логирования с подкрашиванием ошибок и предупреждений :)

А консольная система рендера - это прототип реальной системы рендера :)

показать ответы
1
Автор поста оценил этот комментарий

@Dansken, напомни, пожалуйста, почему в "void RenderSystemDrawText(int r, int c, const char* text,...)" идет ссылка на адрес символа  "const char*"?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Потому что текстовые строки в С/С++ - это последовательные массивы символов :)
Мы берем адрес самого первого символа( указатель на него ) и дальше сдвигаемся по одному символу пока не встретим символ с кодом ноль.

показать ответы
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Да программ - полный интернет :) Ищи - не хочу, на любой вид и вкус :)

P.S. А фамилия какая? )))

показать ответы
Автор поста оценил этот комментарий

Куда ты пропал Т_Т

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Та тут дела семейные - сплю мало.. Скоро вернусь, новая часть уже в процессе ;)

Иллюстрация к комментарию
показать ответы
Автор поста оценил этот комментарий

Спасибо Вам за Ваши труды. В свободное время учу программирование, вроде как теории хватает, но вот как раз подобных примеров не хватает. Причем вот отрисовка поля меня вообще поразила, на столько просто Вы это сделали, я бы кагутил как мог, а тут все легко и просто. Еще раз спасибо.

раскрыть ветку (1)
Автор поста оценил этот комментарий

А в C# можно использовать данный рендер ?(обновлять только изменившийся символ), а то у меня сатана какая то выходит. Каждый раз обновляет всё и жутко дергается. Пытался совместить прошлый РПГ урок, с рендером из текущего, но стало только хуже. 

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Тааак.. А код можешь показать?
показать ответы
1
Автор поста оценил этот комментарий

Хэлп все сделал как в уроке вроде без ошибок при запуске 2 ошибки одна из них lnk2019 кто то знает в чем причина и как пофиксить ?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Полный скриншот ошибки пожалуйста

1
Автор поста оценил этот комментарий

Кстати случаем не знаешь как окно на весь экран, с скрытием рамки окна, сделать? В инете не могу найти на с++((

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Забудь пока про это :) Консоль - это не то место, где стоит делать такие штуки :) В 10м уроке можно будет сделать нормальный полноэкранный рендер :)

показать ответы
1
Автор поста оценил этот комментарий

@Tinaynox, Привет, прости только руки дошли, обещаю ускориться)))

https://drive.google.com/open?id=14bD9-eVNGGofA3vYIKDn7UQsTbDS2_pY

Так все норм, все понятно, но информации много не лезет в голову))

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Весьма неплохо, только что-то грузит все приложение :) FPS всего 17, а должен быть несколько тысяч :)

показать ответы
1
Автор поста оценил этот комментарий

@Tinaynox, Добрый день уважаемый. Вот моё ДЗ https://yadi.sk/d/Njgium4l3QJYvx . Походу я тут первый у кого, при смещении, синусоида потихоньку сваливает вниз( если движение вправо). Исправлял по-всякому, создавал отдельный массив со значениями оси Y( заполненный по формуле).... не помогло.... Вернул все в более менее рабочий вариант, Ж-жопорукость=))). п.с. ещё раз спасибо за ваш труд.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Да нестрашно :) Все с чего-то начинают :)) Главное, чтоб энтузиазм не пропадал никуда :)
1
Автор поста оценил этот комментарий

Ни как не пойму как работает RenderSystemDrawText, объясните пожалуйста, кому не сложно.

А точнее не понимаю про text++, как мы указателю прибавляем единицу?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Строка текста - это последовательный массив однобайтовых(char) ASCII-символов( заканчивающийся нулевым символом ). Поэтому для работы со строками используют указатель на первый символ строки. Смещая этот указатель последовательно по одному символу(байту) до нулевого символа, мы сможем пройтись по всем символам строки.
text++ - это собственно смещение указателя на один байт.

Иллюстрация к комментарию
показать ответы
1
Автор поста оценил этот комментарий

Капец, забыл я тригонометрию уже конечно....
А это норм что он жрет четверть проца?

Я конечно понимаю что это бесконечный цикл, но не много ли для фактически пустой и не меняющейся консоли?

Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Для консоли Windows - это норма :)

1
Автор поста оценил этот комментарий

У меня вопросы возникли по поводу вот этой части. Я пытался с этим разобраться, и правильно ли я понял, что сначала мы сохраняем в переменную дескриптор выходного потока. Потом создаем переменную типа CONSOLE_CURSOR_INFO. Она является структурой и имеет две переменные: dwSize - это размер курсора в процентах от 1 до 100, bVisible - это виден курсор или нет.
Дальше мы вызываем функцию SetConsoleCursorInfo, которая устанавливает значения в консоль. Только вот я не понимаю, зачем там нужен первый аргумент. Понятно, что второй нам нужен для курсора, но зачем первый?

Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

У тебя же может быть не одно, а (теоретически) несколько консольных окон :) Нужно указать в каком именно устанавливается новое cursorInfo :)

показать ответы
2
Автор поста оценил этот комментарий
Все эти трюки с рисованием в консоли вполне подойдут для написания реальной системы логирования с подкрашиванием ошибок и предупреждений :)

А консольная система рендера - это прототип реальной системы рендера :)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
А если вопрос конкретно в тему уроков - то да, я ничего не даю просто так, вся теория закрепляется практикой :)
показать ответы
1
Автор поста оценил этот комментарий

Можете помочь разобрать с ошибками? Директива stdafx.h подключена к основному файлу "game6"

Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Проект создан с использованием Precompiled Header (stdafx.h) :) При создании проекта нужно не забывать ставить галку "Empty project", чтобы этого не было.

1
Автор поста оценил этот комментарий

Кое какую синусоиду всё таки сделал. Но вот заставить её двигаться, так и не сообразил как.

https://pp.vk.me/c631618/v631618965/21f43/phXC9hR85H8.jpg


P.S. не знаю как вы картинки в посты добавляете. На пикабу исключительно ради данных уроков зарегался

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Норм норм :) 


Для движения введи дополнительную переменную типа float и прибавляй к ней dt умноженный на какой-нибудь коэффициент :) В рендере синусоиды прибавляй этот коэффициент к x при вычислении синуса. :)


P.S. Картинки можно вставлять только если набрать достаточное количество рейтинга (лайков) :)

показать ответы
2
Автор поста оценил этот комментарий

Спасибо за урок.

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

Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Супер :)
1
Автор поста оценил этот комментарий

Вот

Иллюстрация к комментарию
Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Проблема в том, что нет ОБЪЯВЛЕНИЯ этих функций в renderSystem.h.

Получается подключая renderSystem.h в game.cpp мы не видим там ничего кроме размера экрана и структуру ConsoleSymbolData :)

показать ответы
1
Автор поста оценил этот комментарий
У меня проблемка появилась, main.cpp не видит функцию из renderSystem.cpp, хотя и там и там подключен renderSystem.h. В чем может быть проблема?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Конкретнее плиз :) Покажи как это в коде выглядит :)

показать ответы
1
Автор поста оценил этот комментарий

Классная система рендера, так всё просто)

Спасибо за урок)

Какая-то такая вышла синусоида и поверх нанёс еще косинусоиду)

Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Милота :))
Автор поста оценил этот комментарий

Мать моя женщина, чтож это за звиздец. Обьясни будь добр что происходит когда мы пишем так: return(bla bla > 0) и если возможно про побитовые И и ИЛИ.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

При (bla_bla > 0) получим true, если bla_bla больше нуля и false если bla_bla меньше или равно нулю. Return просто вернет это true или false как результат функции.


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

показать ответы
Автор поста оценил этот комментарий

https://github.com/Sacerdus/Thats-for-Learning/blob/master/R... вот ссылка(если так работает). Пока пытаюсь починить лаги, по этому близко к краю карты(или выходу) не подходить. Не додумал механику игры и расположение некоторых объектов условно. (просто теневой набросок раскрытия тумана войны косячит, условий недобавил)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Мне кажется. что дело в "Console.WriteLine()" внутри RenderSystemFlush.. Зачем там этот вызов?

показать ответы
Автор поста оценил этот комментарий

https://yadi.sk/i/3g8kzZyLhnaAk main.cpp

https://yadi.sk/i/dnFkd-luhnaAv renderSystem.cpp

https://yadi.sk/i/Zmn-5XxQhnaAz renderSystem.h

https://yadi.sk/i/rKxaO9u9hnaAa consoleColor.h

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

В main.cpp в функции main вместо вызовов функций - их объявления :)

Автор поста оценил этот комментарий
Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
renderSystem.cpp не скомпилирован и следовательно не слинкован
показать ответы
Автор поста оценил этот комментарий

Все, понял о чем вы.Да, он ни на что не влияет. что есть он там что нету, попробывал без него(просто мой косяк что он там есть, но эффекта он не дает, это как лишняя строка)

раскрыть ветку (1)
Автор поста оценил этот комментарий

Console.SetCursorPosition(0, 0) и Console.ForegroundColor в void DrawMap() тоже лишние

показать ответы
Автор поста оценил этот комментарий

Осилил :)
https://github.com/deadly-cat/cpp-mario-console

Сделал оба ДЗ. Правда синусоида почему-то мне не нравится. Видимо потому что с математикой у меня плохо.


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


Спасибо за уроки! :)


раскрыть ветку (1)
Автор поста оценил этот комментарий

Супер! Нормальная синусоида :) Главное понять принцип :)

Автор поста оценил этот комментарий

выводит ошибку 

"... undefined reference to" к каждой функции, в renderSystem (.h или .cpp - я не знаю ((  )


раскрыть ветку (1)
Автор поста оценил этот комментарий

Принтскрин плиз всего окна студии и ошибки :)

показать ответы