我是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;
}
当我按右侧做其他动作时。有人可以帮我解决这个问题吗?
答案 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()
类中引用布局,则此解决方案会更好。
我想,你知道如何处理显示宽度。