밤과 주말 프로젝트로 Android 플랫폼 용 비디오 게임을 진행하고 있습니다.게임 제어용 TouchScreens 사용
잘 지내고 있지만, 나는 통제 감각에 매우 만족하지 않습니다.
이 게임에서는 화면에서 오브젝트를 좌우로 움직입니다. 화면 하단에는 손가락이 있어야하는 "터치 패드"가 있습니다.
/-------------------------\
| |
| |
| |
| Game Area |
| |
| |
| |
| |
| |
/-------------------------\
| |
| Touch Area |
| |
\-------------------------/
I는 현재 "MOVING_LEFT, MOVING_RIGHT, NOT_MOVING"을 보유하는 상태 변수를 이용하고, 플레이어 오브젝트의 위치에 해당 변수에 기초하여 각각의 프레임을 갱신하고있다. 터치 스크린 입력을 읽고이 상태 변수가 설정 그러나
, 내 코드 중 하나를 너무 sensative, 또는 너무 랙이, 내가 그것을 조정할 방식에 따라public void doTouch (MotionEvent e) {
int action = e.getAction();
if (action == MotionEvent.ACTION_DOWN) {
this.mTouchX = (int)e.getX();
this.mTouchY = (int)e.getY();
}
else if (action == MotionEvent.ACTION_MOVE) {
if ((int)e.getX() >= this.mTouchX) {
this.mTouchX = (int)e.getX();
this.mTouchY = (int)e.getY();
if (this.TouchRect.contains(this.mTouchX, this.mTouchY)) {
this.mTouchDirection = MOVING_RIGHT;
}
}
else if ((int)e.getX() <= this.mTouchX) {
this.mTouchX = (int)e.getX();
this.mTouchY = (int)e.getY();
if (this.TouchRect.contains(this.mTouchX, this.mTouchY)) {
this.mTouchDirection = MOVING_LEFT;
}
}
else {
this.mTouchDirection = NOT_MOVING;
}
}
else if (action == MotionEvent.ACTION_UP) {
this.mTouchDirection = NOT_MOVING;
}
}
아이디어는 어떤 움직임이있을 때 그 , 나는 사용자 손가락의 이전 위치를 확인한 다음 플레이어를 움직일 방향을 결정합니다.
이것은 잘 작동하지 않습니다. 여기에 일부 IPhone/Android 개발자가 터치 스크린을 통해 올바른 컨트롤을 수행하는 방법을 알아 냈고 조언을 해줄 수 있다고 생각합니다.
"너무 잘 작동하지 않습니다"와 "너무 지저분하거나 너무 민감합니다"를 정의 할 수 있습니까? 이 동작 방법에 대한 설명은 유용 할 것입니다 –
2 개의 민감한 의미는 손가락을 10 분의 1 인치 이동시키고 플레이어가 화면을 가로 지르는 것을 의미합니다. 뒤떨어지면 플레이어를 움직이기 위해 전체 화면에서 손가락을 움직여야 함을 의미합니다 인치. :) – FlySwat