List of usage examples for com.badlogic.gdx.scenes.scene2d Actor setScale
public void setScale(float scaleX, float scaleY)
From source file:com.bagon.matchteam.mtx.utils.UtilsActor.java
License:Apache License
/** * Set scale of multiple actors at once/* www .j a va 2 s.co m*/ * */ public static void setScale(float sx, float sy, Actor... actors) { for (Actor a : actors) { a.setScale(sx, sy); } }
From source file:com.redthirddivision.astilade.render.tweens.ActorAccessor.java
License:Apache License
@Override public void setValues(Actor target, int type, float[] newValues) { switch (type) { case TweenTypes.ALPHA: target.setColor(target.getColor().r, target.getColor().g, target.getColor().g, newValues[0]); break;/*from www. j a v a 2 s . co m*/ case TweenTypes.RGB: target.setColor(newValues[0], newValues[1], newValues[2], target.getColor().a); break; case TweenTypes.Y: target.setY(newValues[0]); break; case TweenTypes.SIZE: target.setScale(newValues[0], newValues[1]); break; default: assert false; } }
From source file:es.eucm.ead.editor.view.widgets.groupeditor.Grouper.java
License:Open Source License
/** * @param group/* w w w . j a v a2 s . co m*/ * an empty group to be the parent * @return the group with the current selection */ public Group createGroup(Group group) { // New group has the same transformation as this group.setBounds(getX(), getY(), getWidth(), getHeight()); group.setOrigin(getOriginX(), getOriginY()); group.setRotation(getRotation()); group.setScale(getScaleX(), getScaleY()); // Each children in the group must be contained by the new group Array<Actor> children = getChildren(); children.sort(new Comparator<Actor>() { @Override public int compare(Actor actor, Actor actor2) { return ((SelectionGhost) actor).getRepresentedActor().getZIndex() - ((SelectionGhost) actor2).getRepresentedActor().getZIndex(); } }); for (Actor actor : children) { SelectionGhost ghost = (SelectionGhost) actor; Actor representedActor = ghost.getRepresentedActor(); representedActor.setPosition(ghost.getX(), ghost.getY()); representedActor.setRotation(ghost.getRotation()); representedActor.setScale(ghost.getScaleX(), ghost.getScaleY()); group.addActor(representedActor); } return group; }
From source file:es.eucm.ead.editor.view.widgets.groupeditor.Modifier.java
License:Open Source License
/** * Applies the current transformation represented by the handles to given * actor/* w w w. j ava 2 s .c om*/ */ public void applyTransformation(Actor influencedActor, Vector2 origin, Vector2 tangent, Vector2 normal) { /* * We are going to calculate the affine transformation for the actor to * fit the bounds represented by the handles. The affine transformation * is defined as follows: */ // |a b tx| // |c d ty|=|Translation Matrix| x |Scale Matrix| x |Rotation // Matrix| // |0 0 1 | /* * More info about affine transformations: * https://people.gnome.org/~mathieu * /libart/libart-affine-transformation-matrices.html, To obtain the * matrix, we want to resolve the following equation system: */ // | a b tx| |0| |o.x| // | c d ty|*|0|=|o.y| // | 0 0 1 | |1| | 1 | // // | a b tx| |w| |t.x| // | c d ty|*|0|=|t.y| // | 0 0 1 | |1| | 1 | // // | a b tx| |0| |n.x| // | c d ty|*|h|=|n.y| // | 0 0 1 | |1| | 1 | /* * where o is handles[0] (origin), t is handles[2] (tangent) and n is * handles[6] (normal), w is actor.getWidth() and h is * actor.getHeight(). * * This matrix defines that the 3 points defining actor bounds are * transformed to the 3 points defining modifier bounds. E.g., we want * that actor origin (0,0) is transformed to (handles[0].x, * handles[0].y), and that is expressed in the first equation. * * Resolving these equations is obtained: */ // a = (t.x - o.y) / w // b = (t.y - o.y) / w // c = (n.x - o.x) / h // d = (n.y - o.y) / h /* * Values for translation, scale and rotation contained by the matrix * can be obtained directly making operations over a, b, c and d: */ // tx = o.x // ty = o.y // sx = sqrt(a^2+b^2) // sy = sqrt(c^2+d^2) // rotation = atan(c/d) // or // rotation = atan(-b/a) /* * Rotation can give two different values (this happens when there is * more than one way of obtaining the same transformation). To avoid * that, we ignore the rotation to obtain the final values. */ Vector2 o = tmp1.set(origin.x, origin.y); Vector2 t = tmp2.set(tangent.x, tangent.y); Vector2 n = tmp3.set(normal.x, normal.y); Vector2 vt = tmp4.set(t).sub(o); Vector2 vn = tmp5.set(n).sub(o); // Ignore rotation float rotation = influencedActor.getRotation(); vt.rotate(-rotation); vn.rotate(-rotation); t.set(vt).add(o); n.set(vn).add(o); float a = (t.x - o.x) / influencedActor.getWidth(); float c = (t.y - o.y) / influencedActor.getWidth(); float b = (n.x - o.x) / influencedActor.getHeight(); float d = (n.y - o.y) / influencedActor.getHeight(); // Math.sqrt gives a positive value, but it also have a negatives. // The // signum is calculated computing the current rotation float signumX = vt.angle() > 90.0f && vt.angle() < 270.0f ? -1.0f : 1.0f; float signumY = vn.angle() > 180.0f ? -1.0f : 1.0f; float scaleX = (float) Math.sqrt(a * a + b * b) * signumX; float scaleY = (float) Math.sqrt(c * c + d * d) * signumY; influencedActor.setScale(scaleX, scaleY); /* * To obtain the correct translation value we need to subtract the * amount of translation due to the origin. */ tmpMatrix.setToTranslation(influencedActor.getOriginX(), influencedActor.getOriginY()); tmpMatrix.rotate(influencedActor.getRotation()); tmpMatrix.scale(influencedActor.getScaleX(), influencedActor.getScaleY()); tmpMatrix.translate(-influencedActor.getOriginX(), -influencedActor.getOriginY()); /* * Now, the matrix has how much translation is due to the origin * involved in the rotation and scaling operations */ float x = o.x - tmpMatrix.getValues()[Matrix3.M02]; float y = o.y - tmpMatrix.getValues()[Matrix3.M12]; influencedActor.setPosition(x, y); }
From source file:es.eucm.ead.engine.utils.EngineUtils.java
License:Open Source License
/** * Sets position, rotation, scale and origin in actor to meet the 3 given * points/*from w ww . jav a 2s . co m*/ */ public static void applyTransformation(Actor actor, Vector2 origin, Vector2 tangent, Vector2 normal) { /* * We are going to calculate the affine transformation for the actor to * fit the bounds represented by the handles. The affine transformation * is defined as follows: */ // |a b tx| // |c d ty|=|Translation Matrix| x |Scale Matrix| x |Rotation // Matrix| // |0 0 1 | /* * More info about affine transformations: * https://people.gnome.org/~mathieu * /libart/libart-affine-transformation-matrices.html, To obtain the * matrix, we want to resolve the following equation system: */ // | a b tx| |0| |o.x| // | c d ty|*|0|=|o.y| // | 0 0 1 | |1| | 1 | // // | a b tx| |w| |t.x| // | c d ty|*|0|=|t.y| // | 0 0 1 | |1| | 1 | // // | a b tx| |0| |n.x| // | c d ty|*|h|=|n.y| // | 0 0 1 | |1| | 1 | /* * where o is handles[0] (origin), t is handles[2] (tangent) and n is * handles[6] (normal), w is actor.getWidth() and h is * actor.getHeight(). * * This matrix defines that the 3 points defining actor bounds are * transformed to the 3 points defining modifier bounds. E.g., we want * that actor origin (0,0) is transformed to (handles[0].x, * handles[0].y), and that is expressed in the first equation. * * Resolving these equations is obtained: */ // a = (t.x - o.y) / w // b = (t.y - o.y) / w // c = (n.x - o.x) / h // d = (n.y - o.y) / h /* * Values for translation, scale and rotation contained by the matrix * can be obtained directly making operations over a, b, c and d: */ // tx = o.x // ty = o.y // sx = sqrt(a^2+b^2) // sy = sqrt(c^2+d^2) // rotation = atan(c/d) // or // rotation = atan(-b/a) /* * Rotation can give two different values (this happens when there is * more than one way of obtaining the same transformation). To avoid * that, we ignore the rotation to obtain the final values. */ Vector2 tmp1 = Pools.obtain(Vector2.class); Vector2 tmp2 = Pools.obtain(Vector2.class); Vector2 tmp3 = Pools.obtain(Vector2.class); Vector2 tmp4 = Pools.obtain(Vector2.class); Vector2 tmp5 = Pools.obtain(Vector2.class); Vector2 o = tmp1.set(origin.x, origin.y); Vector2 t = tmp2.set(tangent.x, tangent.y); Vector2 n = tmp3.set(normal.x, normal.y); Vector2 vt = tmp4.set(t).sub(o); Vector2 vn = tmp5.set(n).sub(o); // Ignore rotation float rotation = actor.getRotation(); vt.rotate(-rotation); vn.rotate(-rotation); t.set(vt).add(o); n.set(vn).add(o); Vector2 bottomLeft = Pools.obtain(Vector2.class); Vector2 size = Pools.obtain(Vector2.class); calculateBounds(actor, bottomLeft, size); float a = (t.x - o.x) / size.x; float c = (t.y - o.y) / size.x; float b = (n.x - o.x) / size.y; float d = (n.y - o.y) / size.y; Pools.free(tmp1); Pools.free(tmp2); Pools.free(tmp3); Pools.free(tmp4); Pools.free(tmp5); Pools.free(bottomLeft); Pools.free(size); // Math.sqrt gives a positive value, but it also have a negatives. // The // signum is calculated computing the current rotation float signumX = vt.angle() > 90.0f && vt.angle() < 270.0f ? -1.0f : 1.0f; float signumY = vn.angle() > 180.0f ? -1.0f : 1.0f; float scaleX = (float) Math.sqrt(a * a + b * b) * signumX; float scaleY = (float) Math.sqrt(c * c + d * d) * signumY; actor.setScale(scaleX, scaleY); /* * To obtain the correct translation value we need to subtract the * amount of translation due to the origin. */ tmpMatrix.setToTranslation(actor.getOriginX(), actor.getOriginY()); tmpMatrix.rotate(actor.getRotation()); tmpMatrix.scale(actor.getScaleX(), actor.getScaleY()); tmpMatrix.translate(-actor.getOriginX(), -actor.getOriginY()); /* * Now, the matrix has how much translation is due to the origin * involved in the rotation and scaling operations */ float x = o.x - tmpMatrix.getValues()[Matrix3.M02]; float y = o.y - tmpMatrix.getValues()[Matrix3.M12]; actor.setPosition(x, y); }
From source file:mobi.shad.s3lib.gfx.g2d.EffectCreator.java
License:Apache License
/** * @param actor/* w w w. j a v a 2 s .c om*/ * @param effectType * @param value * @param duration * @param type */ public static void createEffect(Actor actor, ScreenEffectType effectType, float value, float duration, InterpolationType type) { if (actor == null) { return; } Interpolation interp = InterpolationType.getInterpolation(type); float x = 0;//actor.getX(); float y = 0;//actor.getY(); switch (effectType) { case SlideLeft: actor.setPosition(999, y); actor.addAction(Actions.moveTo(x, y, duration, interp)); break; case SlideRight: actor.setPosition(-999, y); actor.addAction(Actions.moveTo(x, y, duration, interp)); break; case SlideUp: actor.setPosition(x, -999); actor.addAction(Actions.moveTo(x, y, duration, interp)); break; case SlideDown: actor.setPosition(x, 999); actor.addAction(Actions.moveTo(x, y, duration, interp)); break; case FadeIn: Color color = actor.getColor(); color.a = 0f; actor.setColor(color); actor.addAction(Actions.fadeIn(duration, interp)); break; case FadeOut: Color color2 = actor.getColor(); color2.a = 1f; actor.setColor(color2); actor.addAction(Actions.fadeOut(duration, interp)); break; case FadeInOut: actor.addAction(fadeInOut(value, duration, interp)); break; case ScaleIn: actor.setScale(0, 0); actor.addAction(Actions.scaleTo(1, 1, duration, interp)); break; case ScaleOut: actor.setScale(1, 1); actor.addAction(Actions.scaleTo(0, 0, duration, interp)); break; case None: break; default: break; } }
From source file:mobi.shad.s3lib.gui.GuiUtil.java
License:Apache License
/** * @param source// w w w. ja va 2 s.co m * @param destination */ public static void copyActor(Actor source, Actor destination) { destination.setBounds(source.getX(), source.getY(), source.getWidth(), source.getHeight()); destination.setColor(source.getColor()); destination.setName(source.getName()); destination.setOrigin(source.getOriginX(), source.getOriginY()); destination.setRotation(source.getRotation()); destination.setScale(source.getScaleX(), source.getScaleY()); destination.setTouchable(source.getTouchable()); destination.setUserObject(source.getUserObject()); destination.setVisible(source.isVisible()); destination.setZIndex(source.getZIndex()); destination.getStage(); }
From source file:net.mwplay.cocostudio.ui.BaseWidgetParser.java
License:Apache License
/** * common attribute parser//w w w. j av a 2 s. co m * according cocstudio ui setting properties of the configuration file * * @param editor * @param widget * @param parent * @param actor * @return */ public Actor commonParse(CocoStudioUIEditor editor, ObjectData widget, Group parent, Actor actor) { this.editor = editor; actor.setName(widget.getName()); actor.setSize(widget.getSize().getX(), widget.getSize().getY()); // set origin if (widget.getAnchorPoint() != null) { actor.setOrigin(widget.getAnchorPoint().getScaleX() * actor.getWidth(), widget.getAnchorPoint().getScaleY() * actor.getHeight()); } //?Postion if (widget.getPosition() != null) { actor.setPosition(widget.getPosition().getX() - actor.getOriginX(), widget.getPosition().getY() - actor.getOriginY()); } // CocoStudioScaleX,ScaleY //?Scale if (widget.getScale() != null) { actor.setScale(widget.getScale().getScaleX(), widget.getScale().getScaleY()); } if (widget.getRotation() != 0) {// CocoStudio ?,?. actor.setRotation(360 - widget.getRotation() % 360); } // if (widget.getRotationSkewX() != 0 && widget.getRotationSkewX() == widget.getRotationSkewY()) { actor.setRotation(360 - widget.getRotationSkewX() % 360); } // ?? actor.setVisible(widget.isVisibleForFrame()); Color color = editor.getColor(widget.getCColor(), widget.getAlpha()); actor.setColor(color); actor.setTouchable(deduceTouchable(actor, widget)); // callback addCallback(actor, widget); // callback addActor(editor, actor, widget); if (widget.getChildren() == null || widget.getChildren().size() == 0) { //Action parseAction(actor, widget); return actor; } return null; }
From source file:net.mwplay.cocostudio.ui.parser.WidgetParser.java
License:Apache License
/** * ??/* w w w . j av a 2 s . c o m*/ */ public Group widgetChildrenParse(CocoStudioUIEditor editor, ObjectData widget, Group parent, Actor actor) { Table table = new Table(); table.setClip(widget.isClipAble()); table.setName(actor.getName()); Scale scale = widget.getScale(); if (scale != null) { table.setScale(scale.getScaleX(), scale.getScaleY()); } table.setRotation(actor.getRotation()); table.setVisible(actor.isVisible()); table.setTouchable(widget.isTouchEnable() ? Touchable.enabled : Touchable.childrenOnly); // editor.getActors().get(actor.getName()).removeValue(actor, true); // // addActor(editor, table, option); actor.setVisible(true); actor.setTouchable(Touchable.disabled); if (scale != null || widget.getRotation() != 0) { table.setTransform(true); } table.setSize(actor.getWidth(), actor.getHeight()); table.setPosition(actor.getX(), actor.getY()); // ? Scale anchorPoint = widget.getAnchorPoint(); if (anchorPoint != null) { table.setOrigin(anchorPoint.getScaleX() * table.getWidth(), anchorPoint.getScaleY() * table.getHeight()); } for (ObjectData childrenWidget : widget.getChildren()) { Actor childrenActor = editor.parseWidget(table, childrenWidget); if (childrenActor == null) { continue; } table.addActor(childrenActor); } sort(widget, table); // Widget?Table??.Widget?Table actor.setPosition(0, 0); actor.setScale(1, 1); table.addActorAt(0, actor); return table; }