Форум программистов, компьютерный форум, киберфорум
Наши страницы

Закон отражения в ограниченой зоне на консольном приложении - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Мировые координаты и координаты устройства http://www.cyberforum.ru/cpp-beginners/thread636616.html
Пишу программу с интерфейсом напоминающем Autocad. А точнее ту часть в которой происходит черчение. Т.е. хочу создать поле которое отображало объекты хранящиеся в памяти в мировых координатах с...
C++ Как преобразовать string в int ? С++ Здравствуйте, можете объяснить как преобразовать string в int ? С++. Объясните как можно проще, так-как я недавно начал изучать программирование. Допустим: #include <iostream> using namespace... http://www.cyberforum.ru/cpp-beginners/thread636607.html
static_cast<char>() не выводит некоторые символы C++
Редактор geany, компилятор gcc. cout<< static_cast<char>(4) заместо ожидаемого знака бубей ничего не выводится. При этом cout<< static_cast<char>(100) например, работает коректно.
C++ Ошибка типов данных
У меня возник вопрос: Запускаю программу Я должен ввести число от одного до трех, после значение записывается в переменную типа int Если мое число не подходит под это описание(меньше 0 или больше...
C++ Объявление функций внутри других функций http://www.cyberforum.ru/cpp-beginners/thread636558.html
Иногда вижу в некоторых исходниках на c объявление функций, внутри main. Например: main(){ double sum(int max_num); } Так вот, хотел спросить зачем это делают?
C++ Закрытый файл У меня программа использует обычный текстовой файл для хранения различный параметров. Мне нужно сделать так, чтобы никакой пользователь не смог изменить их, иначе могут повредить программу. Как можно... подробнее

Показать сообщение отдельно
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
13.08.2012, 20:13
ну кода дофига и мне лень в него смотреть. если же пренепременно нужно затереть старое положение, то в моем коде это можно было бы сделать так, но не без проблем конечно.

C++
1
2
3
4
5
6
7
8
9
10
// тут весь код, который не стоит повторять
...
      Object& obj = *it;
      // вот тут перед процессингом объекта у него еще старые координаты. и чтобы
      // его затереть, нужно на его месте нарисовать пробел
      screen.Draw(obj.x, obj.y, ' '); // стираем объект из буфера
 
      ProcessObject(screen, *it); // изменяем координаты и скорость объекта
      screen.Draw(obj.x, obj.y, obj.symbol); // рисуем объект в буфере
...
Но тут такие проблемы могут быть:
1. У меня объекты как бы входят в границу поля и точка будет затерта. Но это решаемо.
2. Что, если объект не один и какой-то другой объект уже оказался с новыми координатами такими же, что и текущий. Получается что затирание текущего сотрет и тот другой объект. Самое простое что можно сделать: разбить обработку объектов на три части:
1. проход по всем объектам и затирание каждого из буфера
2. проход по всем объектам и обработка их нового положения (процессинг)
3. проход по всем объектам и отрисовка каждого в буфер


У вас же слишком много кода чтобы в нем разобраться. Так что пробуйте как-нибудь сами.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru