Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2011, 23:52   #541
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Odinok, извини меня, но как говорится "незнание закона не освобождает от ответственности" ...сначала читаем всю тему целиком, потом вступаем в диалог или спрашиваем, ...ну, таков закон любого форума, и законопослушные пользователи его соблюдают, если хотят быть адекватно понятыми.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 13.03.2011, 08:46   #542
C@sper
 
Аватар для C@sper
 
Регистрация: 23.01.2011
Сообщений: 3
По умолчанию

А не проще ли так:
Цитата:
with Shape1 do
case key of
vk_up: Top:= Top-2;
Vk_down: Top:= Top+2;
Vk_left: left:=left-2;
vk_right: left:=left+2;
end;
Это к
Цитата:
Урок #2 Двигаем фигуру как хотим!!!
Добавьте в свою программу этот код и ваша фигура будет двигаться по всей форме!
от -=DeS=-

Последний раз редактировалось C@sper; 13.03.2011 в 08:48.
C@sper вне форума Ответить с цитированием
Старый 14.03.2011, 19:30   #543
Odinok
Пользователь
 
Аватар для Odinok
 
Регистрация: 08.03.2011
Сообщений: 91
По умолчанию

Код:
procedure TForma.WMPaint(var Message: TWMPaint);
begin
   DC:=Message.DC;
   If DC=0 then DC:=BeginPaint(handle,PS);
   Try
     BitBlt(DC,0,0,Forma.Width,BitBuf.Height,BitBuf.Canvas.Handle,0,0,SRCCOPY); 
   Finally
      If Message.DC=0 then EndPaint(handle,PS);
   end;
end;

//
....
 // вывод изображения на экран
  M.DC:=GetDC(handle);
  WMPaint(M);
  ReleaseDC(handle, DC);
  DeleteDC(DC);
//конец
Beermonzaм можешь пояснить свою процедуру вывода из буфера на экран?
Всё будет так, как должно было быть, даже, если будет наоборот.

Последний раз редактировалось Odinok; 14.03.2011 в 19:33.
Odinok вне форума Ответить с цитированием
Старый 15.03.2011, 02:13   #544
bohdan09
 
Аватар для bohdan09
 
Регистрация: 18.11.2010
Сообщений: 5
По умолчанию

А на C# уроки будут?)
bohdan09 вне форума Ответить с цитированием
Старый 15.03.2011, 14:56   #545
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от Odinok Посмотреть сообщение
Код:
procedure TForma.WMPaint(var Message: TWMPaint);
begin
   DC:=Message.DC;
   If DC=0 then DC:=BeginPaint(handle,PS);
   Try
     BitBlt(DC,0,0,Forma.Width,BitBuf.Height,BitBuf.Canvas.Handle,0,0,SRCCOPY); 
   Finally
      If Message.DC=0 then EndPaint(handle,PS);
   end;
end;

//
....
 // вывод изображения на экран
  M.DC:=GetDC(handle);
  WMPaint(M);
  ReleaseDC(handle, DC);
  DeleteDC(DC);
//конец
Beermonzaм можешь пояснить свою процедуру вывода из буфера на экран?
Тут все просто. Нужны переменные в var секции проекта:

Код:
  PS: TPaintStruct;
  M: TWMPaint;
  DC: THandle;
Процедура TForma.WMPaint помещается в проект так же как и любая другая рукописная. Четыре строчки вывода на экран помещаются в конец таймера, который управляет игрой. BitBlt - функция из библиотеки GDI, как работает можно подробно узнать в любом поисковике.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 16.03.2011, 17:19   #546
Odinok
Пользователь
 
Аватар для Odinok
 
Регистрация: 08.03.2011
Сообщений: 91
По умолчанию

а по строчно можешь написать, какая функция что делает?
мне эти строчки вообще не понятны
DC:=Message.DC;
M.DC:=GetDC(handle);
ReleaseDC(handle, DC);
Всё будет так, как должно было быть, даже, если будет наоборот.
Odinok вне форума Ответить с цитированием
Старый 16.03.2011, 17:49   #547
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Тут код идет на делфи... Переделвый его под шарп и все)
dampirik вне форума Ответить с цитированием
Старый 16.03.2011, 18:56   #548
Asker13
Форумчанин
 
Аватар для Asker13
 
Регистрация: 01.12.2010
Сообщений: 140
По умолчанию

Ей ты, Odinok.
Заходишь в Google:
http://www.google.ru/search?q=TWmPai...client=firefox
Заходишь по этой ссылке:
http://docs.embarcadero.com/products..._TWMPaint.html
Неясно, что такое HDC? Всё тоже самое:
http://www.google.ru/search?q=hdc+de...client=firefox
Идёшь по строчкам. Что неясно, вводишь в поисковик и находишь ответы.
Asker13 вне форума Ответить с цитированием
Старый 17.03.2011, 15:11   #549
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от Odinok Посмотреть сообщение
а по строчно можешь написать, какая функция что делает?
мне эти строчки вообще не понятны
DC:=Message.DC;
M.DC:=GetDC(handle);
ReleaseDC(handle, DC);
Смысл кода более глубок, чем может осознать новичок, поэтому он указан в этой теме как шаблон, чтобы ускорить вывод графики и без того не быстрых любительских приложений. Суть метода в получении контекста устройства (в данном случае формы или рабочего стола), и передачи графических данный в объект по его контексту, т.е. так как это делает операционная система. Больше информации можно узнать методом, указанным в сообщении выше.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 17.03.2011, 19:25   #550
Odinok
Пользователь
 
Аватар для Odinok
 
Регистрация: 08.03.2011
Сообщений: 91
По умолчанию

Цитата:
Сообщение от Beermonza Посмотреть сообщение
Смысл кода более глубок, чем может осознать новичок, поэтому он указан в этой теме как шаблон, чтобы ускорить вывод графики и без того не быстрых любительских приложений. Суть метода в получении контекста устройства (в данном случае формы или рабочего стола), и передачи графических данный в объект по его контексту, т.е. так как это делает операционная система. Больше информации можно узнать методом, указанным в сообщении выше.
Спасибо за ответ
Всё будет так, как должно было быть, даже, если будет наоборот.
Odinok вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хорошие уроки Render Общие вопросы Delphi 9 15.09.2012 07:13
Акцесс вопросы новичков Yaga Помощь студентам 4 02.06.2008 00:16
Учебники для новичков в програмировании Рар Общие вопросы Delphi 6 08.01.2007 08:07