changeset 6695 | 32de8965c62c |
parent 6693 | b6a69c0bc541 |
child 6698 | 804e9076d136 |
6694:48317632b3a9 | 6695:32de8965c62c |
---|---|
48 procedure convertToWorldCoord(var x,y: hwFloat; finger: TTouch_Data); |
48 procedure convertToWorldCoord(var x,y: hwFloat; finger: TTouch_Data); |
49 procedure convertToFingerCoord(var x,y: hwFloat; oldX, oldY: hwFloat); |
49 procedure convertToFingerCoord(var x,y: hwFloat; oldX, oldY: hwFloat); |
50 function fingerHasMoved(finger: TTouch_Data): boolean; |
50 function fingerHasMoved(finger: TTouch_Data): boolean; |
51 function calculateDelta(finger1, finger2: TTouch_Data): hwFloat; |
51 function calculateDelta(finger1, finger2: TTouch_Data): hwFloat; |
52 function getSecondFinger(finger: TTouch_Data): PTouch_Data; |
52 function getSecondFinger(finger: TTouch_Data): PTouch_Data; |
53 function isOnRect(widget: TOnScreenWidget; finger: TTouch_Data): boolean; |
|
54 function isOnRect(rect: TSDL_Rect; finger: TTouch_Data): boolean; |
53 function isOnRect(rect: TSDL_Rect; finger: TTouch_Data): boolean; |
55 procedure printFinger(finger: TTouch_Data); |
54 procedure printFinger(finger: TTouch_Data); |
56 implementation |
55 implementation |
57 |
56 |
58 const |
57 const |
97 aiming:= true; |
96 aiming:= true; |
98 aim(finger^); |
97 aim(finger^); |
99 exit; |
98 exit; |
100 end; |
99 end; |
101 |
100 |
102 if isOnRect(fireButton, finger^) then |
101 if isOnRect(fireButton.active, finger^) then |
103 begin |
102 begin |
104 stopFiring:= false; |
103 stopFiring:= false; |
105 spaceKey:= true; |
104 spaceKey:= true; |
106 exit; |
105 exit; |
107 end; |
106 end; |
108 if isOnRect(arrowLeft, finger^) then |
107 if isOnRect(arrowLeft.active, finger^) then |
109 begin |
108 begin |
110 leftKey:= true; |
109 leftKey:= true; |
111 walkingLeft := true; |
110 walkingLeft := true; |
112 exit; |
111 exit; |
113 end; |
112 end; |
114 if isOnRect(arrowRight, finger^) then |
113 if isOnRect(arrowRight.active, finger^) then |
115 begin |
114 begin |
116 rightKey:= true; |
115 rightKey:= true; |
117 walkingRight:= true; |
116 walkingRight:= true; |
118 exit; |
117 exit; |
119 end; |
118 end; |
120 if isOnRect(arrowUp, finger^) then |
119 if isOnRect(arrowUp.active, finger^) then |
121 begin |
120 begin |
122 upKey:= true; |
121 upKey:= true; |
123 aimingUp:= true; |
122 aimingUp:= true; |
124 exit; |
123 exit; |
125 end; |
124 end; |
126 if isOnRect(arrowDown, finger^) then |
125 if isOnRect(arrowDown.active, finger^) then |
127 begin |
126 begin |
128 downKey:= true; |
127 downKey:= true; |
129 aimingDown:= true; |
128 aimingDown:= true; |
130 exit; |
129 exit; |
131 end; |
130 end; |
132 |
131 |
133 if isOnRect(backjump, finger^) then |
132 if isOnRect(backjump.active, finger^) then |
134 begin |
133 begin |
135 enterKey:= true; |
134 enterKey:= true; |
136 exit; |
135 exit; |
137 end; |
136 end; |
138 if isOnRect(forwardjump, finger^) then |
137 if isOnRect(forwardjump.active, finger^) then |
139 begin |
138 begin |
140 backspaceKey:= true; |
139 backspaceKey:= true; |
141 exit; |
140 exit; |
142 end; |
141 end; |
143 if isOnRect(pauseButton, finger^) then |
142 if isOnRect(pauseButton.active, finger^) then |
144 begin |
143 begin |
145 isPaused:= not isPaused; |
144 isPaused:= not isPaused; |
146 exit; |
145 exit; |
147 end; |
146 end; |
148 moveCursor:= not bShowAmmoMenu; |
147 moveCursor:= not bShowAmmoMenu; |
541 else |
540 else |
542 getSecondFinger := @fingers[0]; |
541 getSecondFinger := @fingers[0]; |
543 end; |
542 end; |
544 |
543 |
545 function isOnRect(rect: TSDL_Rect; finger: TTouch_Data): boolean; |
544 function isOnRect(rect: TSDL_Rect; finger: TTouch_Data): boolean; |
546 var widget: TOnScreenWidget; |
545 isOnRect:= (finger.x > rect.x) and |
547 begin |
546 (finger.x < rect.x + rect.w) and |
548 widget.x:= rect.x; |
547 (cScreenHeight - finger.y > rect.y) and |
549 widget.y:= rect.y; |
548 (cScreenHeight - finger.y < rect.y + rect.h); |
550 widget.width:= rect.w; |
|
551 widget.height:= rect.h; |
|
552 widget.hOffset:= 0; |
|
553 widget.vOffset:= 0; |
|
554 exit(isOnRect(widget, finger)); |
|
555 end; |
|
556 |
|
557 function isOnRect(widget: TOnScreenWidget; finger: TTouch_Data): boolean; |
|
558 begin |
|
559 with widget do |
|
560 isOnRect:= (finger.x > x + hOffset) and |
|
561 (finger.x < x + width + hOffset) and |
|
562 (cScreenHeight - finger.y > y + vOffset) and |
|
563 (cScreenHeight - finger.y < y + height + vOffset); |
|
564 end; |
549 end; |
565 |
550 |
566 procedure printFinger(finger: TTouch_Data); |
551 procedure printFinger(finger: TTouch_Data); |
567 begin |
552 begin |
568 WriteToConsole(Format('id:%d, (%d,%d), (%d,%d), time: %d', [finger.id, finger.x, finger.y, finger.historicalX, finger.historicalY, finger.timeSinceDown])); |
553 WriteToConsole(Format('id:%d, (%d,%d), (%d,%d), time: %d', [finger.id, finger.x, finger.y, finger.historicalX, finger.historicalY, finger.timeSinceDown])); |