テクスチャ(画像)をドラッグしてマウスカーソルの上に置くことなく、どのようにドラッグすることができますか?テクスチャをドラッグする(ジャンプなし)
テクスチャをクリックすると、何も起こりません。ドラッグすると、マウスカーソルが(テクスチャのエッジを基準にして)所定の位置に留まる必要があります。
例:https://s31.postimg.org/ojapwbj6j/Untitled_1.jpg
SpriteBatch batch;
Texture texture;
OrthographicCamera camera;
Vector3 spritePosition = new Vector3();
float offsetX, offsetY;
Vector3 input;
@Override
public void create() {
batch = new SpriteBatch();
texture = new Texture("badlogic.jpg");
camera = new OrthographicCamera();
camera.setToOrtho(false);
}
@Override
public void render() {
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(texture, spritePosition.x, spritePosition.y);
batch.end();
if (Gdx.input.justTouched()){
int x1 = Gdx.input.getX();
int y1 = Gdx.input.getY();
input = new Vector3(x1, y1, 0);
camera.unproject(input);
offsetX = x1 - spritePosition.x;
offsetY = y1 - spritePosition.y;
}
if (Gdx.input.isTouched()) {
spritePosition.set(Gdx.input.getX() - offsetX, Gdx.input.getY() - offsetY, 0);
}
}
あなたの答えに合うように自分のコードを編集しました。しかし、私は結果の半分を得ます:)この更新されたgifを確認してください:https://s31.postimg.org/lg8nu0u2z/Animation.gif – Beckham
物理座標系が論理座標と異なっているので、y軸は反転されています - ダウン、もう一方はyアップ)。 Camera.unproject(これを修正する必要があります)を使用するか、画面の高さからyポジションを差し引いて、効果的に逆転させます。 –