Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> движение объектов в форме 
:(
    Опции темы
KoLiZeI
Дата 18.12.2008, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



Нард помогите с проблемой, нужно реализовать класс "зоопарка", т.е объекты будут двигаться по полю и при столкновении со стенкой или с другим объектом менять направление. Нужна ОО модель, т.е. за животных должен отвечать 1 класс. Поиск не принёс результатов.

Это сообщение отредактировал(а) KoLiZeI - 18.12.2008, 11:50
PM MAIL WWW ICQ Skype   Вверх
Partizan
Дата 18.12.2008, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



KoLiZeI, какое у объекта должно быть представление?


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
KoLiZeI
Дата 18.12.2008, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



Partizan По идее объект на форме должен быть рисунком, но рисунок будет 1 и прямоугольный. Он двигается по полю и если встречает стенку или себе подобный объект движется в другую сторону. Или ты не об этом? Если проще использовать круг для определения радиуса столкновения пусть будет круг не принципиально.

Это сообщение отредактировал(а) KoLiZeI - 18.12.2008, 11:56
PM MAIL WWW ICQ Skype   Вверх
Partizan
Дата 18.12.2008, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



KoLiZeI, ну а в чём пробелема? ) По таймеру передвигать рисунок в нужном направлении =) При столкновении - менять направление на противоположное =) Это ж не сложно)

з.ы. с прямоугольными объектами всяко легче будет =)


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
KoLiZeI
Дата 18.12.2008, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



ээээ.... )) 
 smile 
PM MAIL WWW ICQ Skype   Вверх
Partizan
Дата 18.12.2008, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



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 секунд
Идея ясна?


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
KoLiZeI
Дата 18.12.2008, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



А столкновение объектов?
PM MAIL WWW ICQ Skype   Вверх
Partizan
Дата 18.12.2008, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



KoLiZeI,

у тебя есть двумерная плоскость с координатами x и y... как опеределить, что два прямоугольника пересекаются?


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
KoLiZeI
Дата 18.12.2008, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



Класс "коровы" описал так, правильно?
Код

public class Cow
    {
        //public Cow()
        //{

        //}

        //public Cow(int xCoordinate, int yCoordinate, int radius)
        //{
        //    this.XCoordinate = xCoordinate;
        //    this.YCoordinate = yCoordinate;
        //    this.Radius = radius;
        //}

        public Cow(int xCoordinate, int yCoordinate, int radius, int xVector, int yVector)
        {
            this.XCoordinate = xCoordinate;
            this.YCoordinate = yCoordinate;
            this.Radius = radius;
            this.XVector = xVector;
            this.yVector = yVector;
        }

        public int XCoordinate
        {
            get;
            private set;
        }

        public int YCoordinate
        {
            get;
            private set;
        }

        public int Radius
        {
            get;
            private set;
        }

        public int XVector
        {
            get;
            private set;
        }

        public int YVector
        {
            get;
            private set;
        }

        public void Move()
        {
            this.XCoordinate += XVector;
            this.YCoordinate += YVector;
        }

        public void Crash(int x, int y)
        {
            this.XVector -= x * 2;
            this.YVector -= y * 2;
        }
    }



Это сообщение отредактировал(а) KoLiZeI - 18.12.2008, 12:17
PM MAIL WWW ICQ Skype   Вверх
Partizan
Дата 18.12.2008, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



KoLiZeI, Если чесно - лень в коде разбираться...


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0710 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.