如何在Eclipse中将触摸屏分离到左侧和右侧?

时间:2015-08-13 07:39:59

标签: java android eclipse

我是android的新手,这是我的第一个android项目。我想将屏幕分开到左侧和右侧,当您按左侧时,我想要做一些动作,而在右侧则采取其他动作。这是我的输入类:

package com.vratsasoftware.zbhelpers;

import java.util.ArrayList;
import java.util.List;
import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.InputProcessor;
import com.vratsasoftware.gameobjects.BonusLogo;
import com.vratsasoftware.gameobjects.Logo;
import com.vratsasoftware.gameworld.GameWorld;
import com.vratsasoftware.ui.SimpleButton;

public class InputHandler implements InputProcessor {
    private Logo myLogo;
    BonusLogo bullet;
    private GameWorld myWorld;
    private List<SimpleButton> menuButtons;
    private SimpleButton playButton;
    private float scaleFactorX;
    private float scaleFactorY;

    public InputHandler(GameWorld myWorld, float scaleFactorX, float scaleFactorY) {
        this.myWorld = myWorld;
        myLogo = myWorld.getLogo();
        int midPointY = myWorld.getMidPointY();
        this.scaleFactorX = scaleFactorX;
        this.scaleFactorY = scaleFactorY;
        menuButtons = new ArrayList<SimpleButton>();
        playButton = new SimpleButton(136 / 2 - (AssetLoader.playButtonUp.getRegionWidth() / 2), midPointY + 50, 29, 16,
                AssetLoader.playButtonUp, AssetLoader.playButtonDown);
        menuButtons.add(playButton);
        bullet = myWorld.getScroller().getBullet();
    }

    @Override
    public boolean touchDown(int screenX, int screenY, int pointer, int button) {
        screenX = scaleX(screenX);
        screenY = scaleY(screenY);
        System.out.println(screenX + " " + screenY);
        if (myWorld.isMenu()) {
            playButton.isTouchDown(screenX, screenY);
        } else if (myWorld.isReady()) {
            myWorld.start();
        }

        myLogo.onClick();

        if (myWorld.isGameOver() || myWorld.isHighScore()) {
            myWorld.restart();
        }
        return true;
    }

    @Override
    public boolean touchUp(int screenX, int screenY, int pointer, int button) {
        screenX = scaleX(screenX);
        screenY = scaleY(screenY);

        if (myWorld.isMenu()) {
            if (playButton.isTouchUp(screenX, screenY)) {
                myWorld.ready();
                return true;
            }
        }
        return false;
    }

    @Override
    public boolean keyDown(int keycode) {
        // Can now use Space Bar to play the game
        if (keycode == Keys.SPACE) {
            if (myWorld.isMenu()) {
                myWorld.ready();
            } else if (myWorld.isReady()) {
                myWorld.start();
            }
            myLogo.onClick();
            if (myWorld.isGameOver() || myWorld.isHighScore()) {
                myWorld.restart();
            }
        } else if (keycode == Keys.CONTROL_RIGHT && bullet.isScrolledRight()) {
            Sound.playKick();
            bullet.resetBullet(myWorld.getLogo().getX(), (int) myWorld.getLogo().getY());
        }

        return false;
    }

    @Override
    public boolean keyUp(int keycode) {

        return false;
    }

    @Override
    public boolean keyTyped(char character) {
        return false;
    }

    @Override
    public boolean touchDragged(int screenX, int screenY, int pointer) {
        return false;
    }

    @Override
    public boolean mouseMoved(int screenX, int screenY) {
        return false;
    }

    public boolean scrolled(int amount) {
        return false;
    }

    private int scaleX(int screenX) {
        return (int) (screenX / scaleFactorX);
    }

    private int scaleY(int screenY) {
        return (int) (screenY / scaleFactorY);
    }

    public List<SimpleButton> getMenuButtons() {
        return menuButtons;
    }
}

我想按左侧做这个

@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
    screenX = scaleX(screenX);
    screenY = scaleY(screenY);
    System.out.println(screenX + " " + screenY);
    if (myWorld.isMenu()) {
        playButton.isTouchDown(screenX, screenY);
    } else if (myWorld.isReady()) {
        myWorld.start();
    }

    myLogo.onClick();

    if (myWorld.isGameOver() || myWorld.isHighScore()) {
        myWorld.restart();
    }
    return true;
}

当我按右侧做其他动作时。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

如我所见,您有点击事件的conn = conn() |> put_private(:authenticated_current_user_id, context[:user].id) |> post("/posts", %{ post: %{ title: "title", body: "body" } }) assert get_flash(conn, :info) == "Post created successfully." 坐标。我知道有两种方法可以检测它是什么方式。

1)使用X检测显示宽度。只有当您的工作空间扩展为全屏时,它才会起作用。

2)获取主要活动布局的参考并致电getWindowManager().getDefaultDisplay().getWidth()。如果您在getWidth()类中引用布局,则此解决方案会更好。

我想,你知道如何处理显示宽度。