Страница: 1 | 2 |
Вопрос: Помогите заставить графику двигаться в VB 2010
Добавлено: 07.01.11 22:41
Автор вопроса:
Nakeji
Всё просто - мне нужен например круг, и чтобы он двигался посредством таймера. Тобишь стирался старый и рисовался новый. В этом новом VB так и не смог разобраться... Так что очень прошу, напишите мне КОД, который будет осуществлять вышеописанную операцию. Заранее спасибо.
Ответы
Всего ответов: 16
Номер ответа: 1
Автор ответа: Лёха
Вопросов: 20
Ответов: 79
Web-сайт:
Профиль | | #1
Добавлено: 07.01.11 23:20
Кароче берёшь изображение,по которому должен двигаться твой круг,загружаешь его в Bitmap
Потом вычисляешь в процедуре координаты шарика,далее создаешь копию Origin`а,и в кидаешь это в таймер!
Номер ответа: 2
Автор ответа: EROS
Вопросов: 58
Ответов: 4255
Профиль | | #2
Добавлено: 07.01.11 23:24
прикольно...
такой подход всю память отожрет которая есть в компе
Номер ответа: 3
Автор ответа: Nakeji
Вопросов: 2
Ответов: 3
Профиль | | #3
Добавлено: 07.01.11 23:50
копернул это в VB, нормально так 20 ошибок выдало -_-
не понимаю к чему эти точки с запятой в конце каждой строки
я вообще не шарю (тупой), прошу ВЕСЬ КОД, вот вообще всё что у вас в form1 написано, чтобы мне было достаточно просто скопировать это в код, и она работала (ну, я добавлю таймер уж)
Номер ответа: 4
Автор ответа: Захарка
Вопросов: 0
Ответов: 42
Профиль | | #4
Добавлено: 08.01.11 03:39
1)Обьявляеш глобальные переменные x и y типа int
2)добавляеш обработчик события paint
3)в нём пишеш:
4)добавляеш обработчик события timer_tick, в нём пишеш:
всё
Номер ответа: 5
Автор ответа: Just
Вопросов: 4
Ответов: 330
Профиль | | #5
Добавлено: 08.01.11 11:02
я один вижу что нужен не нэт? )
вот примерчик на 6 бэйсике
Номер ответа: 6
Автор ответа: EROS
Вопросов: 58
Ответов: 4255
Профиль | | #6
Добавлено: 08.01.11 11:05
А ты вообще вопрос читал? Там вроде ясно написано
Или в 2010 году вышел новый релиз 6-го бейсика?
Номер ответа: 7
Автор ответа: Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #7
Добавлено: 08.01.11 11:51
да just ты один
Номер ответа: 8
Автор ответа: Лёха
Вопросов: 20
Ответов: 79
Web-сайт:
Профиль | | #8
Добавлено: 08.01.11 16:29
EROS,у меня при таком подходе вообще мало памяти жрёт!!!!!!!!!!
Номер ответа: 9
Автор ответа: EROS
Вопросов: 58
Ответов: 4255
Профиль | | #9
Добавлено: 08.01.11 17:31
Ну так радуйся,что в NET придумали GC .. Без него твой говнокод бы недолго проработал..
Номер ответа: 10
Автор ответа: Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #10
Добавлено: 08.01.11 18:01
GC действительно в данном случае помогает избавиться от утечек. Но это не значит что у течек в этом коде нет.
Bitmap связан с неуправляемым ресурсом GDI, который называется (внезапно) bitmap (http://msdn.microsoft.com/en-us/library/dd183377(VS.85).aspx)
Сборщик мусора может обработать управлемый экземпляр класса Bitmap. И если этот объект удаляется сборщиком мусора, то будет вызван финализатор класса Bitmap, который знает как освобождать неуправляемые ресурсы, связанные с этим объектом. Поэтому в этом примере и не заметно утечки памяти.
Однако следует помнить что:
1) .NET не гарантирует время когда будет запущен финализатор (он не обязательно будет вызван сразу после сборки мусора)
2) .NET вообще не гарантирует что финализатор будет запущен.
Поэтому, несмотря на то, что ты сейчас не имеешь утечек памяти, у тебя нет гарантии того что они не появятся в определенных условиях. Причем речь идет о вполне тяжелых ресурсах (битмапах)
Поэтому я бы советовал явно выполнять удаление объектов GDI+ после их использования (с помощью метода Dispose с блоком Try или одного блока Using).
Номер ответа: 11
Автор ответа: EROS
Вопросов: 58
Ответов: 4255
Профиль | | #11
Добавлено: 08.01.11 18:26
Все сказанное коллегой выше в равной мере относится и к объекту Graphics
Номер ответа: 12
Автор ответа: Just
Вопросов: 4
Ответов: 330
Профиль | | #12
Добавлено: 08.01.11 19:16
я так понял что человек перепутал бэйсики тк он писал что выдало 20 ошибок
Номер ответа: 13
Автор ответа: AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #13
Добавлено: 08.01.11 22:26
верно, Лёха дал говнокод для шарпа, никак не для васика.
Номер ответа: 14
Автор ответа: Nakeji
Вопросов: 2
Ответов: 3
Профиль | | #14
Добавлено: 09.01.11 00:47
Захарка, спасибо. Всё работает ) Я просто змейку делаю, мне надо было разобраться в этом. Кстати я ее сделал! У меня есть только одна проблема - они мигают, и чем больше змейка, тем больше мигает графика, в конце вообще невозможно становится. Это можно как нибудь исправить?
Номер ответа: 15
Автор ответа: EROS
Вопросов: 58
Ответов: 4255
Профиль | | #15
Добавлено: 09.01.11 09:08
Если ты использовал код Захарки, то включение двойной буферизации тебе должно помочь.