Консультация № 61144
03.11.2006, 13:10
0.00 руб.
0 2 1
Подскажите пожалуйста как в Assembler можно нарисовать квадрат и что бы он при нажатии определнных клавиш двигался по экрану.

Обсуждение

Неизвестный
03.11.2006, 14:24
общий
В какой ОС? Под ДОС?
Неизвестный
03.11.2006, 20:00
общий
это ответ
Здравствуйте, Чеканов Владимир Витальевич/Chekanoff!
Квадрат, ровно как и любую другую геометрическую фигуру можно нарисовать при помощи OpenGL, двигать, поворачивать, прятать и что только вашей душе угодно.
Я думаю Вас интересует как это сделать на АСМе при помощи API функции. Ну так вот квадрат рисуется при помощи Rectangle(HDC, int, int, int, int);(2 ,3 - X и Y начала квадрата, 4,5- X,Y конца квадрата)
Клавиши обрабатываются WM_CHAR:обрабатываем нужную нам клавишу и меняем 2-5 параметры.
А вообще, рисуют с помощью OpenGL,DirectX etc. А вот передвигают АСМом, выполняют арифметические операции, расчитывают что-либо.


Приложение:
;-----------Пробел и энтер он движется;------------X_Start dd 0Y_Start dd 0X_End dd 50Y_End dd 50key WPARAM 20h;------------.elseif uMsg==WM_PAINTinvoke BeginPaint,hWnd,addr psmov hdc,eaxinvoke Rectangle,hdc,X_Start,Y_Start,X_End,Y_Endinvoke EndPaint,hWnd, ADDR ps.elseif uMsg==WM_CHARpush wParampop keycmp key,20hje XXXcmp key,0Dhje YYYXXX:add X_Start,10add X_End,10invoke InvalidateRect, hWnd,NULL,TRUEjmp goYYY:add Y_Start,10add Y_End,10invoke InvalidateRect, hWnd,NULL,TRUEgo:
Форма ответа