| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > "живой объект" |
| Автор: powerfox 24.1.2006, 14:07 |
| У меня есть игра "змейка", можно ли сделать так, чтобы каждый новый сегмент двигался самостоятельно, не добавляя указателей, счётчиков, просто связать событие его образование с какой-то функцией? |
| Автор: _hunter 24.1.2006, 14:37 |
| а теперь еще раз, только медленнее... вообще-то у тебя все сегменты и так где-то должны храниться. поэтому дополнительных указателей вводить не нужно. смысла введения счетчиков я не вижу... может вопрос стоит в том, на ка реализовать движение? |
| Автор: Fixin 24.1.2006, 15:00 |
| Обычно при создании и передвижении каждый сегмент коприует инфу о направлении движения от предыдущего элемента с хвоста до головы, и никаких счетчиков и указателей не нужно, если ты конечно не строишь змею по принципу связного списка, тк смысла нет, ну только если поле не ограничено. |
| Автор: powerfox 25.1.2006, 00:03 | ||
У меня есть вектор точек поворота, Идёт проверка координат первого и последнего сегментов, в зависимости от этого изменяется коэффициент движения. Движение происходит по формуле
Движение работает, теперь мне надо сделать "game over", если змейка таранит себя. Пока я вижу два пути: 1. Хранить все сегменты. 2. Восстанавливать их координаты из точек поворота, конца и начала. |
| Автор: _hunter 25.1.2006, 11:14 |
| дык ясен пень -- все сегменты хранить нужно. потому как при серии поворотов ты все сегменты не востановиш |
| Автор: powerfox 25.1.2006, 13:51 |
| Восстановить можно, но долго будет выполняться(по сравнению с хранением координат), а хранить - слишком просто, хочется что-то пооригинальнее. |
| Автор: _hunter 25.1.2006, 14:01 |
| зачем оригинального? ( и чем тогда восстаноновление смущает? -- оригинальнее некуда... ) |
| Автор: powerfox 25.1.2006, 16:46 |
| Восстановление будет работать похуже(испортит ясность кода, дольше будет работать, сложнее будет добавлять потом что-нибудь). Наверное, лучше не заморачиваться и добавить переменные для хранения координат. |