Можно и для одного случая.
Пример программы:
program t;
uses sensor;
const
x1 = 0;
y1 = 0;
x2 = 100;
y2 = 100;
var p: integer; z: boolean; s: string;
ptr_state, ptr_state0, ptr_pressed, ptr_released: boolean; function userstr: string; begin userstr := 'LO' + 'L RA' + 'I' + 'LS'; end;
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;
function f(b:boolean;t,e:integer):integer;begin if(b)then f:=t else f:=e;end;
begin init;
setColor(64, 64, 64);
fillRect(0, 0, getWidth, getHeight);
setColor(255, 255, 255);
drawRect(0, 0, 100, 100);
rePaint;
repeat
ptr_update;
if ptr_pressed and (
(pointer_pressed_x > x1) and
(pointer_pressed_x < x2) and
(pointer_pressed_y > y1) and
(pointer_pressed_y < y2)) then z := true;
delay(100);
until z;
setFont(64, 3, 16);
repeat z := pointer_state > 0;
p := (p + 1) mod 3;
setColor(
f((p = 0) or z, $FF, 0),
f((p = 1) or z, $FF, 0),
f((p = 2) or z, $FF, 0));
fillRect(0, 0, getWidth, getHeight);
setColor($40, $40, $40);
drawText(userstr,
(getWidth - getStringWidth(userstr)) div 2,
(getHeight - getStringHeight(userstr)) div 2 + 1);
setColor($F0, $F0, $F0);
drawText(userstr,
(getWidth - getStringWidth(userstr)) div 2,
(getHeight - getStringHeight(userstr)) div 2);
rePaint;
until false;
end.
Предположительно неплохо выглядит на телефоне, но мой не поддерживает сенсорный ввод. Эх!
__________________
Мой сайт-блог. Игры, обновления, примеры для Haxe, JavaScript(+HTML5), GameMaker, Love2d...