Показать сообщение отдельно
Старый 01.09.2008, 08:14   #27
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_game (Game API Support)

Try to use Lib_sensor. You can download this lib below.

List of new functions:
  • init
  • integer pointer_state
  • integer pointer_pressed_x
  • integer pointer_pressed_y
  • integer pointer_dragged_x
  • integer pointer_dragged_y
  • integer pointer_released_x
  • integer pointer_released_y
  • integer has_pointer_events
  • integer has_pointer_motion_events

Here some examples:

Program PointerTest;
Uses    sensor;
Var    
oxoypxpystateinteger;
Begin
    sensor
.init// Инициализация библиотеки
    
repeat // Бесконечный цикл
        
state:=pointer_state// Читаем состояние сенсора
        
if state=1 then // Если нажали, то...
        
begin
            
if (ox=0) and (oy=0then
            begin
                ox
:=pointer_dragged_xoy:=pointer_dragged_y;
            
end;
            
px:=pointer_dragged_xpy:=pointer_dragged_y// Выясняем куда именно нажали (координаты)
            
DrawLine(ox,oy,px,py); // Рисуем линию
                        
ox:=pxoy:=py// Запоминаем предыдущую точку для рисования следующей линии
        
end;
        else 
begin ox:=0oy:=0end// Если ничего не нажали - сбрасываем координаты в 0
        
RepaintDelay(20); // Отрисовка линии и небольшая пауза
    
until false;
End
Program PointerTest2;
Uses    sensor;
Var    
xxyystatekeyinteger;

Procedure DrawButtons// Вспомогательная процедурка, которая рисует на экране кнопки
begin
    SetColor
(255,255,255); // Белый цвет
    
if key=1 then SetColor(255,0,0); // Если была нажата кнопка 1 - ставим красный цвет
    
if key=2 then SetColor(0,255,0); // Если кнопка 2 - зеленый
    
FillRect(0,0,GetWidth,GetHeight); // Закрашиваем весь экран выбранным цветом
    
SetColor(0,0,0); // Ставим черный цвет
    
DrawRect(101010025); DrawText('Button 1'1515); // Рисуем первую кнопку
    
DrawRect(104010025); DrawText('Button 2'1545); // Рисуем вторую кнопку
    
DrawRect(107010025); DrawText('Quit'1575); // Рисуем третью
    
Repaint// Окончательный вывод всего нарисованного на дисплей
end;

Begin // Начало нашей программы
    
sensor.init// Инициализация библиотеки
    
DrawButtons// Рисуем кнопки на экране (см. процедуру выше)
    
repeat // Начинаем бесконечный цикл
        
state:=pointer_state// Читаем состояние сенсора
        
if state=1 then // Если произошло нажатие, то...
        
begin
            xx
:=pointer_pressed_xyy:=pointer_pressed_y// Считываем координаты нажатия
            
if (xx>9) and (xx<111then // Проверяем сначала x координату...
            
begin
                
if (yy>9) and (yy<36then key:=1// Нажали на кнопку 1
                
if (yy>39) and (yy<66then key:=2// Нажали на кнопку 2
                
if (yy>69) and (yy<96then Halt// Нажали на кнопку 3 (Выход)
                
DrawButtons// Рисуем кнопки
            
end;
        
end;
                
Delay(30);
    
until false;
End
Вложения
Тип файла: zip Lib_sensor.zip (1.2 Кб, 857 просмотров)
(Offline)
 
Ответить с цитированием