![]() |
|
|
|
|
#1
|
||||
|
||||
|
Допустим есть TImage размером 256х256 в него загрузено изоражение 1024х768. Как двигать попиксельно изображение внтури Image?
|
|
#2
|
||||
|
||||
|
Что ты имеешь ввиду???
Анимацию??? Или просто в Image видно только часть изображения??? Посмотри на функцию BitBlt...удобна для создания спрайтов...и не только... Копирует часть изображения в другое... Последний раз редактировалось NIch, 04.03.2010 в 14:26. |
|
#3
|
||||
|
||||
|
нет. не анимацию. нужно загружать в Image карту города и спомощю мышки передвигатся по ней.
|
|
#4
|
||||
|
||||
|
Обязательно в Image???
Код:
var
Map : TBitMap;
begin
Map := TBitMap.Create;
Map.LoadFromFile('Map.bmp');
BitBlt (Form1.Canvas.Handle,//на какую форму вывести изображение
100, 100, 256, 256, //2 координаты и размеры изображения
Map.Canvas.Handle,//какую картинку вывести
0, 0,//координаты начала прямоугольника картинки должны изменяться
SRCCOPY);//способ копирования изображения , бывают разные
end;Выводится изображение способом SRCCOPY на Form1 размером 256х256 по координатам 100, 100, взятое из Map. При этом из Map берется только кусок 256х256 начиная с 0, 0 (в данном случае)... При движении мыши ты должен пересчитывать последние координаты... |
|
#5
|
||||
|
||||
|
Большое спасибо NIch!!! Буду пробывать.
Если не сложно еще показать маленький пример как обрабатывать движение мыши. Только учусь работать с графикой... |
|
#6
|
||||
|
||||
|
Есть такие события как MouseMove, MouseUp, MouseDown...
Обрабатывай эти события...У них в параметрах есть переменные X и Y мыши... Поэкспериментируй с таким кодом и все поймешь... Код:
onMouseDown(X, Y ...) или Move или Up и т.д.
begin
ShowMessage('X = '+IntToStr(X)+' Y = '+IntToStr(X));
end; |