2015-04-28 3 views
0

Я изучаю C# на данный момент, и недавно у меня был экзамен. Мне пришлось создать консольную игру с движущимися объектами. Мне в значительной степени удалось сделать все, что требовалось, за исключением того, что я не мог придумать, как заставить каждый игровой объект двигаться с разной скоростью (на самом деле есть только два движущихся объекта, полы и персонаж), одна из задач было делать бонусы, которые увеличивают либо скорость персонажа, либо скорость по этажам .... Я не мог придумать способ изменения скорости отдельно. Я в настоящее время пытаюсь закончить игру, но я не получу свои мысли вокруг этого, мой «эндшпиль» должен иметь две переменные charSpeed ​​и floorSpeed ​​... Может ли кто-нибудь объяснить мне, как я могу это достичь?C# - Перемещение объектов в консольном приложении с разной скоростью

Спасибо!

Мой код - http://pastebin.com/TkPd37xD - В настоящее время это беспорядок, я просто хочу выяснить, что является логикой того, что я хочу делать. «Общее решение», здесь у меня всего 2 объекта, что, если я хочу изменить скорость 10 объектов?

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

+3

Разместите код, в противном случае мы не имеем ни малейшего представления, о чем вы говорите. –

+0

Мой код в настоящее время беспорядок Я не извлек его в методах (или прокомментировал его), но вот он - http://pastebin.com/TkPd37xD, я просто ищу основную логику того, что я хочу делать, если у вас есть два движущихся объекта в консольном приложении, и вы хотите, чтобы они двигались с разной скоростью, как вы обычно это делаете ... – Darkbound

+0

Добавьте свойство «Speed» для каждого объекта (или создайте родительский класс с этим свойством), сделайте по умолчанию говорят 10 (что является нормальным движением). При перемещении вещей переместите их, умноженные на скорость. Чтобы двигаться быстрее, увеличьте скорость объектов выше 10, чтобы замедлить скорость снижения ниже 10. –

ответ

0

Я бы использовал таймер для каждой разной скорости. Обратный вызов таймера будет выполнять логику движения.

Это, безусловно, требовал рефакторинга кода;)

+0

Я знаю, что один из парней сделал что-то подобное, не могли бы вы объяснить, как это работает? Я никогда не видел его – Darkbound

+0

Посмотрите на: https://msdn.microsoft.com/fr-fr/library/system.timers.timer%28v=vs.110%29.aspx – Pak

+0

Спасибо, но я собираюсь нужно больше, что такое логика реализации таймеров в моей текущей ситуации (или любая другая игра, требующая подобного контроля)? Что я в конечном итоге пытаюсь сделать с таймером? – Darkbound

Смежные вопросы