![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перемещение Image
AlexXn © (2004-03-04 18:05:00)Есть Image, фон. Есть другой Image - "прицел". При перемещении "прицела" все моргает. Как изавится от етого. Может можно сделать как-нить по другому.
TButton (2004-03-04 19:06:00) [21]lol
BitBlt(Image1.Canvas.Handle,20,20,cr.Height,cr.Width,cr.Canvas.Handle,0,0,SRCCOPY);
выводит битмап в позиции 20:20
BitBlt(Image1.Canvas.Handle,cur.x,cur.y,cr.Height,cr.Width,cr.Canvas.Handle,0,0,SRCCOPY);
(cur: TPoint меняется в onMouseMove), выводит битмапу в позиции 0:0
иттересно...
TButton (2004-03-04 18:58:00) [22]2Mihey ©
>Рад, что ты не схватил молоток и не разбил монитор :).
а почему я должен был это сделать)))?
Mihey (2004-03-04 18:49:00) [23]2 TButton:
Рад, что ты не схватил молоток и не разбил монитор :).
2 AlexXn:
Надо делать по-другому. Все элементы игры, как фон, чувачки, которые бегают, прицел - всё нужно делать не на TImage. Ну представь себе, если в Doom монстрики были бы компонентами?
Нужно работать с изображениями в памяти. Заводишь переменные типа TBitmap, создаёшь объекты, загружаешь в них свои изображения фона, прицела и в общем того, что надо и работаешь. Вот посмотри тут:
http://delphigfx.mastak.ru/2d/001/2d_1.htm
TButton (2004-03-04 18:21:00) [24]Работа над ошибками
1. перепутал Height и Width
2. cr, конечно, нужно блитать не в 0, 0, а в cx, cy (позицию курсора), а если еще точнее то в cx+(cr.Width div 2), cy+(cr.Height div 2)
TButton (2004-03-04 18:14:00) [25]да.
bg: TBitMap; // фон
cr: TBitMap; // прицел
onCreate;
...
bg:=TBitMap.Create;
bg.LoadFromFile('superpuperfon.bmp');
cr:=TBitMap.Create;
cr.LoadFromFile('vsexybiuodinostanus.bmp');
...
end;
onPaint;
...
BitBlt(Image1.Canvas.Handle,0,0,bg.Height,bg.Width,bg.Canvas.Handle,0,0,SRCCOPY);
BitBlt(Image1.Canvas.Handle,0,0,cr.Height,cr.Width,cr.Canvas.Handle,0,0,SRCCOPY);
...
end;