| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > движение объектов в форме |
| Автор: KoLiZeI 18.12.2008, 11:40 |
| Нард помогите с проблемой, нужно реализовать класс "зоопарка", т.е объекты будут двигаться по полю и при столкновении со стенкой или с другим объектом менять направление. Нужна ОО модель, т.е. за животных должен отвечать 1 класс. Поиск не принёс результатов. |
| Автор: Partizan 18.12.2008, 11:51 |
| KoLiZeI, какое у объекта должно быть представление? |
| Автор: KoLiZeI 18.12.2008, 11:54 |
| Partizan По идее объект на форме должен быть рисунком, но рисунок будет 1 и прямоугольный. Он двигается по полю и если встречает стенку или себе подобный объект движется в другую сторону. Или ты не об этом? Если проще использовать круг для определения радиуса столкновения пусть будет круг не принципиально. |
| Автор: Partizan 18.12.2008, 11:58 |
| KoLiZeI, ну а в чём пробелема? ) По таймеру передвигать рисунок в нужном направлении =) При столкновении - менять направление на противоположное =) Это ж не сложно) з.ы. с прямоугольными объектами всяко легче будет =) |
| Автор: KoLiZeI 18.12.2008, 12:00 |
| ээээ.... )) |
| Автор: Partizan 18.12.2008, 12:05 |
| KoLiZeI, ну... 1) допустим на форме рисунок.... 2) допустим он лежит внутри прямоугольного контрола PictureBox...начальные координаты - 0,0(левый верхний угол) 3) задаёмся текущим направлением...допустим это будет право-низ В итоге по таймеру в замисимости от направления - меняем координаты если текущее направление - право-низ, то PictureBox.Top += 1; PictureBox.Left += 1; 4) если дошли до нижней границы формы, то есть (PictureBox.Top + PictureBox.Height >= (Form.Height - Высота заголовка)), то меняем текущеенаправление на право-верх...в итоге на каждой итерации PictureBox.Top -= 1; PictureBox.Left += 1; Добавлено через 11 секунд Идея ясна? |
| Автор: KoLiZeI 18.12.2008, 12:06 |
| А столкновение объектов? |
| Автор: Partizan 18.12.2008, 12:13 |
| KoLiZeI, у тебя есть двумерная плоскость с координатами x и y... как опеределить, что два прямоугольника пересекаются? |
| Автор: KoLiZeI 18.12.2008, 12:15 | ||
Класс "коровы" описал так, правильно?
|
| Автор: Partizan 18.12.2008, 12:20 |
| KoLiZeI, Если чесно - лень в коде разбираться... |