![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 2 Всего: 97 |
У меня есть игра "змейка", можно ли сделать так, чтобы каждый новый сегмент двигался самостоятельно, не добавляя указателей, счётчиков, просто связать событие его образование с какой-то функцией?
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
а теперь еще раз, только медленнее... вообще-то у тебя все сегменты и так где-то должны храниться. поэтому дополнительных указателей вводить не нужно. смысла введения счетчиков я не вижу... может вопрос стоит в том, на ка реализовать движение? -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 2 Всего: 18 |
Обычно при создании и передвижении каждый сегмент коприует инфу о направлении движения от предыдущего элемента с хвоста до головы, и никаких счетчиков и указателей не нужно, если ты конечно не строишь змею по принципу связного списка, тк смысла нет, ну только если поле не ограничено.
|
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 2 Всего: 97 |
У меня есть вектор точек поворота, Идёт проверка координат первого и последнего сегментов, в зависимости от этого изменяется коэффициент движения. Движение происходит по формуле
Движение работает, теперь мне надо сделать "game over", если змейка таранит себя. Пока я вижу два пути: 1. Хранить все сегменты. 2. Восстанавливать их координаты из точек поворота, конца и начала. |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
дык ясен пень -- все сегменты хранить нужно.
потому как при серии поворотов ты все сегменты не востановиш -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 2 Всего: 97 |
Восстановить можно, но долго будет выполняться(по сравнению с хранением координат), а хранить - слишком просто, хочется что-то пооригинальнее.
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
зачем оригинального? ( и чем тогда восстаноновление смущает? -- оригинальнее некуда... )
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 2 Всего: 97 |
Восстановление будет работать похуже(испортит ясность кода, дольше будет работать, сложнее будет добавлять потом что-нибудь). Наверное, лучше не заморачиваться и добавить переменные для хранения координат.
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |