Android Open Source - TileArena Joystick






From Project

Back to project page TileArena.

License

The source code is released under:

MIT License

If you think the Android project TileArena listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package game.tile.arena.util.controller;
//  w  w  w .  j a v a 2  s . co m
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

import game.tile.arena.Game;
import game.tile.arena.sprite.Image;
import game.tile.arena.util.Position;
import game.tile.arena.util.input.JoystickInput;

public class Joystick {

    boolean captured;
    final int radius;
    Position center;
    Position position;
    int lastPointer;
    Image stick;
    Image bg;

    JoystickInput inputProcessor;

    Joystick(Position pos, int size, String stickImg, String bgImg) {
        center = pos;
        position = pos;
        radius = size;

        stick = new Image(stickImg);
        bg = new Image(bgImg);

        inputProcessor = new JoystickInput(pos, size, this);
        Game.rawInput.addInputProcessor(inputProcessor);
    }

    public Position getStickPosition() {
        return position.subtract(center).scale(1d/radius);
    }

    public boolean onDown(Position pos, int pointer) {
        if (center.inRange(radius, pos)) {
            captured = true;
            position = pos;
            lastPointer = pointer;
            return true;
        }
        return false;
    }

    public boolean onDrag(Position pos, int pointer) {
        if (captured && lastPointer == pointer) {
            lastPointer = pointer;
            position = center.limit(radius, pos);
            return true;
        }
        return false;
    }

    public boolean onUp(Position pos, int pointer) {
        if (captured && lastPointer == pointer) {
            captured = false;
            position = center;
            lastPointer = pointer;
            return true;
        }
        return false;
    }

    void renderStick(SpriteBatch batch, double delta) {
        bg.renderNoCamera(batch, center, radius / bg.getWidth());
        stick.renderNoCamera(batch, position, 4);
    }
}




Java Source Code List

game.tile.arena.Game.java
game.tile.arena.TileArena.java
game.tile.arena.android.AndroidLauncher.java
game.tile.arena.client.HtmlLauncher.java
game.tile.arena.desktop.DesktopLauncher.java
game.tile.arena.entity.Entity.java
game.tile.arena.entity.Player.java
game.tile.arena.entity.attack.AttackBow.java
game.tile.arena.entity.attack.AttackList.java
game.tile.arena.entity.attack.Attack.java
game.tile.arena.entity.enemy.Enemy.java
game.tile.arena.entity.enemy.ai.EnemyAI.java
game.tile.arena.entity.enemy.ai.EnemyDodgeAI.java
game.tile.arena.entity.enemy.ai.EnemyRandomAI.java
game.tile.arena.entity.projectile.LinearProjectile.java
game.tile.arena.entity.projectile.Projectile.java
game.tile.arena.sprite.EntitySprite.java
game.tile.arena.sprite.Image.java
game.tile.arena.util.MathHelper.java
game.tile.arena.util.Position.java
game.tile.arena.util.Preferences.java
game.tile.arena.util.controller.Joystick.java
game.tile.arena.util.controller.KeyboardController.java
game.tile.arena.util.controller.MouseAttackInput.java
game.tile.arena.util.controller.PlayerController.java
game.tile.arena.util.controller.TouchController.java
game.tile.arena.util.input.InputManager.java
game.tile.arena.util.input.JoystickInput.java
game.tile.arena.util.input.KeyboardMoveInput.java
game.tile.arena.util.input.WeaponSwitchInput.java
game.tile.arena.world.Tile.java
game.tile.arena.world.World.java