Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.08.2011, 18:19
faustpatron13 faustpatron13 вне форума
Прохожий
 
Регистрация: 30.05.2010
Сообщения: 17
Репутация: 10
Вопрос Флеш и Делфи

Встала задача написать что-то вроде мини-флеша, но только на делфи. Идея, какбы, есть но как реализовать - беспонятия
Должно быть по задумкам так:
полотно для рисования(image). Инструменты для рисования(speedbutton). Шкала фреймов(stringgrid). Со слоями я работать пока не хочу ибо вообще не знаю как подступиться. Для начала, как я думаю, нужно сделать массив канвасов (каждому канвасу будет соответствовать своя ячейка в шкале фреймов), потом пользователь на каждом кадре рисует, что ему нужно, а потом по нажатию на кнопку по таймеру начинают показываться эти канвасы по-порядку. как-то так.
Уважаемые программисты, подскажите пожалуйста как такое реализовать, и вообще реально-ли такое?
Заранее спасибо
Ответить с цитированием
  #2  
Старый 11.08.2011, 18:38
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Про спрайты слышал?
Это как мультик, кадры по порядку идут.
Только использовать лучше не процедуры Делфи, а все таки ВинАПИ.
И рисовать не на канве, а в памяти, а потом из буфера заменять картинку на канве.
Смотри в сторону BitBlt
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #3  
Старый 11.08.2011, 20:09
faustpatron13 faustpatron13 вне форума
Прохожий
 
Регистрация: 30.05.2010
Сообщения: 17
Репутация: 10
По умолчанию

к сожалению задание стоит использовать именно процедуры Делфи и рисование на канве(
если знаете, подскажите пожалуйста как создать массив канвасов и с ними поработать именно процедурами делфи.
Ответить с цитированием
  #4  
Старый 11.08.2011, 21:24
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Делаешь картинку как кинолента, длинную. На ней отдельные кадры. Затем выбираешь нужный кадр и отображаешь на канве, что непонятно спрашивай.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 11.08.2011, 22:23
faustpatron13 faustpatron13 вне форума
Прохожий
 
Регистрация: 30.05.2010
Сообщения: 17
Репутация: 10
По умолчанию

Совсем ничего не понятно.
Для начала, что значит
Цитата:
Делаешь картинку как кинолента, длинную.
?
Ответить с цитированием
  #6  
Старый 11.08.2011, 22:39
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Пердставь себе киноленту. Представил? Вот и создай, для начала, подобное из отдельных рисунков будущего, скажем, мультика.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #7  
Старый 11.08.2011, 22:48
faustpatron13 faustpatron13 вне форума
Прохожий
 
Регистрация: 30.05.2010
Сообщения: 17
Репутация: 10
По умолчанию

Всмысле, поочереди подгружать разные картинки в программу?
или я совсем тупица?
Ответить с цитированием
  #8  
Старый 11.08.2011, 22:58
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Нет, всё это находится уже в памяти, на экран выводишь поочерёдно.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #9  
Старый 11.08.2011, 23:30
faustpatron13 faustpatron13 вне форума
Прохожий
 
Регистрация: 30.05.2010
Сообщения: 17
Репутация: 10
По умолчанию

Можно Вас попросить привести пример, а то я никак себе это не могу представить?
Ответить с цитированием
  #10  
Старый 11.08.2011, 23:34
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Как пример, такую ленту создаёт ImageList, когда туда добавляешь отдельные картинки. Позволяет выдёргивать изображения по индексу с выводом в нужный канвас.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #11  
Старый 11.08.2011, 23:48
faustpatron13 faustpatron13 вне форума
Прохожий
 
Регистрация: 30.05.2010
Сообщения: 17
Репутация: 10
По умолчанию

допустим это понял. хорошо.
а каким образом тогда создать массив канвасов?
Ответить с цитированием
  #12  
Старый 11.08.2011, 23:54
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Несколько TImage, TPaintBox - уже массив канвасов. Или:
Код:
var
  Canvas : array of TCanvas;
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #13  
Старый 11.08.2011, 23:59
faustpatron13 faustpatron13 вне форума
Прохожий
 
Регистрация: 30.05.2010
Сообщения: 17
Репутация: 10
По умолчанию

хорошо, спасибо.
а как присвоить каждому канвасу массива порядковый номер?
Ответить с цитированием
  #14  
Старый 12.08.2011, 00:03
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Массив уже имеет понятие индекса.
Код:
var
  I : Integer;
begin
  SetLength(Canvas, 10); // установили 10 элементов в массиве
  for I := 0 to 9 do
    Canvas[i] := TCanvas.Create; // создали 10 канвасов
  Canvas[4] := ... // обратились к 5 элементу массива канвасов
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #15  
Старый 12.08.2011, 00:16
faustpatron13 faustpatron13 вне форума
Прохожий
 
Регистрация: 30.05.2010
Сообщения: 17
Репутация: 10
По умолчанию

ага. спасибо большое за помощь!
и последний вопрос на сегодня:
как при помощи таймера их поочерёдно выводить на экран и возможно-ли потом всё это сохранить в формате флеша? *.swf
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:57.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025