Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.home.game.org.home.game.sprite;
- import com.badlogic.gdx.graphics.Color;
- import com.badlogic.gdx.graphics.g2d.Batch;
- import com.badlogic.gdx.graphics.g2d.TextureAtlas;
- import com.badlogic.gdx.math.MathUtils;
- import com.badlogic.gdx.math.Rectangle;
- import com.badlogic.gdx.scenes.scene2d.Actor;
- import com.badlogic.gdx.scenes.scene2d.actions.Actions;
- import org.home.game.org.home.util.Constans;
- import org.home.game.org.home.util.Direction;
- public class Box extends Actor{
- private TextureAtlas.AtlasRegion boxTexture;
- private Rectangle bounds;
- private Direction direction;
- private float toX, toY;
- public boolean isMoving;
- public int speed = 1;
- public Box(int direction) {
- boxTexture = new TextureAtlas.AtlasRegion(TextureManager.getRegionByName("box"));
- switch (direction) {
- case 0:
- this.direction = Direction.RIGHT;
- setPosition(Constans.BOX_RIGHT_X, Constans.BOX_RIGHT_Y);
- break;
- case 1:
- this.direction = Direction.LEFT;
- setPosition(Constans.BOX_LEFT_X, Constans.BOX_LEFT_Y);
- break;
- default:
- this.direction = Direction.RIGHT;
- setPosition(Constans.BOX_RIGHT_X, Constans.BOX_RIGHT_Y);
- break;
- }
- toX = MathUtils.random(0, Constans.BOX_COUNT_INLINE) * 64;
- toY = 0;
- bounds = new Rectangle(getX(), getY(), Constans.BOX_WIDTH, Constans.BOX_HEIGHT);
- isMoving = false;
- }
- @Override
- public void draw(Batch batch, float parentAlpha) {
- Color color = this.getColor();
- batch.setColor(color.r, color.g, color.b, color.a * parentAlpha);
- batch.draw(boxTexture, getX(), getY(), Constans.BOX_WIDTH, Constans.BOX_HEIGHT);
- super.draw(batch, batch.getColor().a);
- }
- public void update(){
- check();
- }
- private void moveY() {
- if(!isMoving){
- this.addAction(Actions.moveTo(getX() + speed, Constans.HEIGHT));
- // setY(getY() - speed);
- this.isMoving = true;
- }
- }
- private void moveX() {
- if(!isMoving){
- this.addAction(Actions.moveTo(getX() + speed, 0));
- // setX(getX() + speed);
- this.isMoving = true;
- }
- }
- private void check() {
- if (toX != getX()) {
- moveX();
- this.isMoving = false;
- this.addAction(Actions.fadeOut(speed * 0.025f));
- } else if (toY != getY()) {
- moveY();
- this.isMoving = false;
- this.addAction(Actions.fadeOut(speed * 0.025f));
- }
- }
- public Rectangle getBounds() {
- return bounds;
- }
- public void setToY(int toY) {
- this.toY = toY;
- }
- public void setToX(int toX) {
- this.toX = toX;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement