Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Smalltalk
Перезагрузить страницу Squeak. Рисование по таймеру
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
imported_NIK_ imported_NIK_ вне форума
Новичок
 
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 04.12.2009
По умолчанию Squeak. Рисование по таймеру - 11.12.2009, 17:36

Как использовать таймер?
К примеру, надо показать движение точки - как правильно это делается?
Ответить с цитированием
  (#2 (permalink)) Старый
imported_NIK_ imported_NIK_ вне форума
Новичок
 
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 04.12.2009
По умолчанию 14.12.2009, 15:58

Наверное не точно задал вопрос.
Есть клас точка, у этого класа есть метод движение в котором координаты точки меняются определенным образом.
Чтобы переместить точку из одного места в другое вызывается метод движение, но он работает очень быстро и естественно - самого движения не видно.
Как быть в такой ситуации?
Буду благодарен за любые пинки в правильном направлении ).
Спасибо
Ответить с цитированием
  (#3 (permalink)) Старый
danio danio вне форума
Member
 
Сообщений: 366
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.01.2004
По умолчанию 14.12.2009, 17:42

Для начала должно хватить чего-нибудь из двух способов ниже.

1) Первый - как обычно это бы захотелось сделать в другом языке программирования. Есть какой-то высокоуровневый процедурный код, который отвечает за отрисовку всего. Где-нибудь в него вставляется задержка (экземпляр Delay). В качестве примера снова адапация рисования спирали:

| bic delay |
delay := Delay forMilliseconds: 100.
bic := Pen new.
bic defaultNib: 2.
bic color: Color blue.
bic combinationRule: Form over.
1 to: 100 do: [:i |
delay wait.
bic go: i*4. bic turn: 89].


Как я понимаю, это примерно то, в каком духе сейчас у тебя там все шевелится.

2) Если же графику делать в духе Squeak, где графические объекты сами себя рисуют, то для этого есть группа методов Morph>>step (прежде всего step и stepTime). Их надо переопределить для подкласса Morph (например, Morph который отрисовывает поле) так, чтобы периодическое дейcтвие (необязательно рисование) описанное в step выполнялось через каждый stepTime. Этот способ более веселый, так как можно запустить кучу морфов которые могут вести себя как независимые зверушки на экране, система получается более распределенная. Описание Morph>>step:
Код:
step
    "Do some periodic activity. Use startStepping/stopStepping to start and stop getting sent this message. The time between steps is specified by this morph's answer to the stepTime message.  The generic version dispatches control to the player, if any.  The nasty circumlocation about owner's transformation is necessitated by the flexing problem that the player remains in the properties dictionary both of the flex and the real morph.  In the current architecture, only the top renderer's pointer to the player should actually be honored for the purpose of firing."
Ответить с цитированием
  (#4 (permalink)) Старый
imported_NIK_ imported_NIK_ вне форума
Новичок
 
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 04.12.2009
По умолчанию 14.12.2009, 23:05

danio, спасибо. Это был пинок в нужную сторону.

Цитата:
Если же графику делать в духе Squeak...
Именно так и буду делать.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функции по таймеру в с++ Garet Вопросы начинающих программистов 0 21.05.2011 01:33
Squeak. Рисование в окне как реализовать imported_NIK_ Smalltalk 4 05.12.2009 19:40
Работа с сетью в Squeak rv82 Smalltalk 2 11.06.2008 07:57
Функция выключения программы по таймеру NewGirl C++ Builder 2 30.05.2007 01:24
Выполнение сценария по таймеру Aist++ PHP 2 16.08.2006 03:24
Можно ли из программы по таймеру запускать музыку new_programer Visual C++ 28 30.06.2006 15:55
Дифференцирование в Squeak steel_rat Smalltalk 13 19.06.2006 11:14
Вопрос по таймеру в VBA! БурундуК Visual Basic 3 10.02.2006 15:12
Отключение компьютера по таймеру в С++ Builder Sanixs C++ Builder 2 11.08.2005 13:07
Как написать программу которая по таймеру будет выключать компьютер 123 Вопросы начинающих программистов 2 05.07.2005 09:25
Squeak как с ним работать Daniq Smalltalk 7 28.03.2005 15:47
Как зациклить передаче файлов из директории по таймеру Алекc_1 Delphi 0 28.09.2004 12:01



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов