hedgewars/uTouch.pas
changeset 6950 f34ff54b0cbd
parent 6949 615cc50903c8
child 6951 a37e470c8694
equal deleted inserted replaced
6949:615cc50903c8 6950:f34ff54b0cbd
    57 procedure printFinger(finger: TTouch_Data);
    57 procedure printFinger(finger: TTouch_Data);
    58 implementation
    58 implementation
    59 
    59 
    60 const
    60 const
    61     clickTime = 200;
    61     clickTime = 200;
    62     longClickTime = 400;
       
    63     nilFingerId = High(TSDL_FingerId);
    62     nilFingerId = High(TSDL_FingerId);
    64 
    63 
    65 var
    64 var
    66     pointerCount : Longword;
    65     pointerCount : Longword;
    67     fingers: array of TTouch_Data;
    66     fingers: array of TTouch_Data;
   214 x := x;
   213 x := x;
   215 y := y;
   214 y := y;
   216 finger:= updateFinger(x,y,0,0,pointerId);
   215 finger:= updateFinger(x,y,0,0,pointerId);
   217 //Check for onTouchClick event
   216 //Check for onTouchClick event
   218 if not(fingerHasMoved(finger^)) then
   217 if not(fingerHasMoved(finger^)) then
       
   218     begin
   219     if (RealTicks - finger^.timeSinceDown) < clickTime then
   219     if (RealTicks - finger^.timeSinceDown) < clickTime then
   220         onTouchClick(finger^)
   220         onTouchClick(finger^)
   221     else
   221     else
   222         onTouchLongClick(finger^);
   222             onTouchLongClick(finger^);
       
   223     end;
   223 
   224 
   224 if aimingCrosshair then
   225 if aimingCrosshair then
   225     begin
   226     begin
   226     aimingCrosshair:= false;
   227     aimingCrosshair:= false;
   227     upKey:= false;
   228     upKey:= false;
   260 end;
   261 end;
   261 
   262 
   262 procedure onTouchLongClick(finger: TTouch_Data);
   263 procedure onTouchLongClick(finger: TTouch_Data);
   263 begin
   264 begin
   264 {$IFDEF USE_TOUCH_INTERFACE}
   265 {$IFDEF USE_TOUCH_INTERFACE}
       
   266 WriteLnToConsole('blabla');
   265 if isOnWidget(jumpWidget, finger) then
   267 if isOnWidget(jumpWidget, finger) then
       
   268     begin
   266     ParseTeamCommand('ljump');
   269     ParseTeamCommand('ljump');
       
   270     exit;
       
   271     end;
       
   272 
       
   273 if (CurrentHedgehog <> nil) and (Ammoz[CurrentHedgehog^.CurAmmoType].Ammo.Propz and ammoprop_NeedTarget <> 0)then
       
   274     ParseTeamCommand('put');
   267 {$ENDIF}
   275 {$ENDIF}
   268 end;
   276 end;
   269 
   277 
   270 procedure onTouchClick(finger: TTouch_Data);
   278 procedure onTouchClick(finger: TTouch_Data);
   271 begin
   279 begin
   539 end;
   547 end;
   540 
   548 
   541 //Method to calculate the distance this finger has moved since the downEvent
   549 //Method to calculate the distance this finger has moved since the downEvent
   542 function fingerHasMoved(finger: TTouch_Data): boolean;
   550 function fingerHasMoved(finger: TTouch_Data): boolean;
   543 begin
   551 begin
   544     fingerHasMoved := trunc(sqrt(sqr(finger.X-finger.historicalX) + sqr(finger.y-finger.historicalY))) > 330;
   552     fingerHasMoved := trunc(sqrt(sqr(finger.X-finger.historicalX) + sqr(finger.y-finger.historicalY))) > 30;
       
   553     WriteLnToConsole(inttostr(ord(fingerHasMoved)) + ' xy' + inttostr(finger.x) + ' ' + inttostr(finger.historicalx));
   545 end;
   554 end;
   546 
   555 
   547 function calculateDelta(finger1, finger2: TTouch_Data): LongInt; inline;
   556 function calculateDelta(finger1, finger2: TTouch_Data): LongInt; inline;
   548 begin
   557 begin
   549     calculateDelta := Round(sqrt(sqr(finger2.x-finger1.x) + sqr(finger2.y-finger1.y)));
   558     calculateDelta := Round(sqrt(sqr(finger2.x-finger1.x) + sqr(finger2.y-finger1.y)));