• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.replica.replicaisland;
2 
3 public class InputTouchScreen extends BaseObject {
4 
5 	private int MAX_TOUCH_POINTS = 5;
6 	private InputXY mTouchPoints[];
7 
InputTouchScreen()8 	public InputTouchScreen() {
9 		mTouchPoints = new InputXY[MAX_TOUCH_POINTS];
10 		for (int x = 0; x < MAX_TOUCH_POINTS; x++) {
11 			mTouchPoints[x] = new InputXY();
12 		}
13 	}
14 
15 	@Override
reset()16 	public void reset() {
17 		for (int x = 0; x < MAX_TOUCH_POINTS; x++) {
18 			mTouchPoints[x].reset();
19 		}
20 	}
21 
press(int index, float currentTime, float x, float y)22 	public final void press(int index, float currentTime, float x, float y) {
23 		assert (index >= 0 && index < MAX_TOUCH_POINTS);
24 		if (index < MAX_TOUCH_POINTS) {
25 			mTouchPoints[index].press(currentTime, x, y);
26 		}
27 	}
28 
release(int index)29 	public final void release(int index) {
30 		if (index < MAX_TOUCH_POINTS) {
31 			mTouchPoints[index].release();
32 		}
33 	}
34 
resetAll()35 	public void resetAll() {
36 		for (int x = 0; x < MAX_TOUCH_POINTS; x++) {
37 			mTouchPoints[x].reset();
38 		}
39 	}
40 
getTriggered(int index, float time)41 	public boolean getTriggered(int index, float time) {
42 		boolean triggered = false;
43 		if (index < MAX_TOUCH_POINTS) {
44 			triggered = mTouchPoints[index].getTriggered(time);
45 		}
46 		return triggered;
47 	}
48 
getPressed(int index)49 	public boolean getPressed(int index) {
50 		boolean pressed = false;
51 		if (index < MAX_TOUCH_POINTS) {
52 			pressed = mTouchPoints[index].getPressed();
53 		}
54 		return pressed;
55 	}
56 
setVector(int index, Vector2 vector)57 	public final void setVector(int index, Vector2 vector) {
58 		if (index < MAX_TOUCH_POINTS) {
59 			mTouchPoints[index].setVector(vector);
60 		}
61 	}
62 
getX(int index)63 	public final float getX(int index) {
64 		float magnitude = 0.0f;
65 		if (index < MAX_TOUCH_POINTS) {
66 			magnitude = mTouchPoints[index].getX();
67 		}
68 		return magnitude;
69 	}
70 
getY(int index)71 	public final float getY(int index) {
72 		float magnitude = 0.0f;
73 		if (index < MAX_TOUCH_POINTS) {
74 			magnitude = mTouchPoints[index].getY();
75 		}
76 		return magnitude;
77 	}
78 
getLastPressedTime(int index)79 	public final float getLastPressedTime(int index) {
80 		float time = 0.0f;
81 		if (index < MAX_TOUCH_POINTS) {
82 			time = mTouchPoints[index].getLastPressedTime();
83 		}
84 		return time;
85 	}
86 
findPointerInRegion(float regionX, float regionY, float regionWidth, float regionHeight)87 	public InputXY findPointerInRegion(float regionX, float regionY, float regionWidth, float regionHeight) {
88 		InputXY touch = null;
89 		for (int x = 0; x < MAX_TOUCH_POINTS; x++) {
90 			final InputXY pointer = mTouchPoints[x];
91 			if (pointer.getPressed() &&
92 					getTouchedWithinRegion(pointer.getX(), pointer.getY(), regionX, regionY, regionWidth, regionHeight)) {
93 				touch = pointer;
94 				break;
95 			}
96 		}
97 		return touch;
98 	}
99 
getTouchedWithinRegion(float x, float y, float regionX, float regionY, float regionWidth, float regionHeight)100 	private final boolean getTouchedWithinRegion(float x, float y, float regionX, float regionY, float regionWidth, float regionHeight) {
101 		 return (x >= regionX &&
102 				 y >= regionY &&
103 				 x <= regionX + regionWidth &&
104 				 y <= regionY + regionHeight);
105 	}
106 
getTriggered(float gameTime)107 	public boolean getTriggered(float gameTime) {
108 		boolean triggered = false;
109 		for (int x = 0; x < MAX_TOUCH_POINTS && !triggered; x++) {
110 			triggered = mTouchPoints[x].getTriggered(gameTime);
111 		}
112 		return triggered;
113 	}
114 
115 }
116