Показать сообщение отдельно
Старый 07.05.2011, 14:39   #2
YellowAfterlife
ПроЭктировщик
 
Аватар для YellowAfterlife
 
Регистрация: 19.02.2011
Сообщений: 134
Написано 81 полезных сообщений
(для 219 пользователей)
Ответ: Мда, не дружу с сенсором...хелп

Все зависит от библиотеки... некоторые дают возможность определять момент нажатия на экран, некоторые оставляют это на вас.

Сделал библиотеку первого вида:
Функции:
ptr_update - обновляет состояния (нужен для использования ptr_pressed \ ptr_released)
ptr_clear - сбрасывает переменные, отвечающие за нажатие на экран
ptr_x, ptr_y - возращают текущие координаты
ptr_down - возращает нажат ли "курсор" в данный момент
ptr_pressed - возращает, был ли нажат курсор с момента предыдущего вызова ptr_update
ptr_released - возращает, были ли отпущен курсор с момента предыдущего вызова ptr_update
ptr_events - возращает, поддерживает ли телефон сенсорный ввод
ptr_motion - возращает, поддерживает ли телефон "события движения" (отслеживание положения курсора пока он нажат)
Пример программы:
program t;
uses pointer;
var 
f: integer;
begin
  f 
:= 64;
  
repeat
    ptr_update
;
    
setColor(f, f, f);
    
fillRect(0, 0, getWidth, getHeight);
    if (
f < 128) then setColor(255, 255, 255) else setColor(0, 0, 0);
    
drawText('X: ' + ptr_x + '; Y: ' + ptr_y, 0, 0);
    if 
ptr_pressed > 0 then f := Random(255);
    
rePaint;
    
delay(32);
  
forever
end
. 
Добавлено:
Пример на Lib_sensor:
program t;
uses sensor;
var 
f: integer;
  
ptr_state, ptr_state0, ptr_pressed, ptr_released: boolean;
procedure ptr_update; begin
  ptr_state 
:= pointer_state > 0;
  
ptr_pressed := (ptr_state xor ptr_state0) and ptr_state;
  
ptr_released := (ptr_state xor ptr_state0) and ptr_state0;
  
ptr_state0 := ptr_state;
end;
begin
  f 
:= 64;
  
init;
  
repeat
    ptr_update
;
    
setColor(f, f, f);
    
fillRect(0, 0, getWidth, getHeight);
    if (
f < 128) then setColor(255, 255, 255) else setColor(0, 0, 0);
    
drawText('X: ' + pointer_dragged_x + '; Y: ' + pointer_dragged_y, 0, 0);
    if 
ptr_pressed then f := Random(255);
    
rePaint;
    
delay(32);
  
forever
end
. 
Вложения
Тип файла: zip Lib_pointer.zip (1.0 Кб, 1241 просмотров)
__________________

Мой сайт-блог. Игры, обновления, примеры для Haxe, JavaScript(+HTML5), GameMaker, Love2d...

Последний раз редактировалось YellowAfterlife, 07.05.2011 в 15:15. Причина: Добавил ответ на сообщение ниже.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо YellowAfterlife за это полезное сообщение:
bormotan (13.12.2011), Rock2roll (07.05.2011)