List of usage examples for com.badlogic.gdx.math Vector2 Vector2
public Vector2()
From source file:com.intrepid.nicge.entities.AbstractEntity.java
public AbstractEntity(Long id) { this.id = id.longValue(); this.position = new Vector2(); this.elapsedTime = 0.0f; }
From source file:com.intrepid.nicge.theater.cameras.SeekerCamera.java
public SeekerCamera(int nativeResolutionWidth, int nativeResolutionHeight) { super(nativeResolutionWidth, nativeResolutionHeight); v2Camera = new Vector2(); v2Pivot = new Vector2(); // Somente valores iniciais das variaveis // Torna ZONA MORTA (a camera no segue o pivot) uma area igual // a 1/3 das extremidades da tela x0 = nativeResolutionWidth / 3;/*from w ww . j ava2 s . c om*/ y0 = nativeResolutionHeight / 3; xf = nativeResolutionWidth - x0; yf = nativeResolutionHeight - y0; avoidHookEffect = false; }
From source file:com.jmd.asteroidshooter.entities.Player.java
public Player(AsteroidShooter game) { super(new Sprite(new Texture("res/images/spaceship.png"))); this.velocity = new Vector2(); this.game = game; }
From source file:com.jmd.asteroidshooter.entities.Player.java
/** * * @return the position vector of the sprite *//*from ww w. ja va 2s . co m*/ public Vector2 getScaledPosition() { Vector2 pos = new Vector2(); pos.x = body.getPosition().x * PPM; pos.y = body.getPosition().y * PPM; return pos; }
From source file:com.jmolina.orb.elements.Orb.java
License:Open Source License
/** * Constructor//from w w w.j ava2 s . c om * * @param am AssetManager * @param world Mundo fisico * @param pixelsPerMeter Ratio de conversion pixeles/metros */ public Orb(AssetManager am, World world, float pixelsPerMeter) { super(am, world, pixelsPerMeter, Geometry.CIRCLE, Flavor.GREEN, 1f, 1f, 6, 2, 0); startPosition = new Vector2(); heat = 0f; frozen = overloaded = false; fragments = new Fragments(am); naturalScale = pixelsPerMeter * SCALE_CORRECTION * DIAMETER / fragments.getWidth(); fragments.setScale(naturalScale); setActor(fragments); getBody().setSleepingAllowed(false); // Evita que se quede dormido. La Gravedad no despierta! setPosition(DEFAULT_X, DEFAULT_Y); setStartPosition(DEFAULT_X, DEFAULT_Y); }
From source file:com.jmolina.orb.screens.Level.java
License:Open Source License
/** * Constructor/*from www. jav a2 s . c o m*/ * * @param sm SuperManager */ public Level(SuperManager sm) { super(sm); achievedRobocop = false; achievedItsOver9000 = false; achievedHyperdrive = false; tick = new Tick(); pixelsPerMeter = getGameManager().getPixelsPerMeter(); impulse = IMPULSE_FACTOR / getPixelsPerMeter(); lastOrbPosition = new Vector2(); stats = new GameStats(); float worldWidth = VIEWPORT_WIDTH / getPixelsPerMeter(); float worldHeight = VIEWPORT_HEIGHT / getPixelsPerMeter(); worldViewport = new FitViewport(worldWidth, worldHeight); gestureViewport = new FitViewport(VIEWPORT_WIDTH, VIEWPORT_HEIGHT); parallaxViewport = new FitViewport(VIEWPORT_WIDTH, VIEWPORT_HEIGHT); hudViewport = new FitViewport(VIEWPORT_WIDTH, VIEWPORT_HEIGHT); hudStage = new HUDStage(this, getAssetManager(), hudViewport); gestureStage = new GestureStage(getAssetManager(), gestureViewport, getPixelsPerMeter()); parallaxStage = new ParallaxStage(getAssetManager(), parallaxViewport, getPixelsPerMeter()); worldManager = new WorldManager(); setOrb(new Orb(getAssetManager(), worldManager.getWorld(), getPixelsPerMeter())); worldManager.bindContactHandler(this, getOrb()); GestureDetector gestureDetector = new GestureDetector(GESTURE_HALF_TAP_SQUARE_SIZE, GESTURE_TAP_COUNT_INTERVAL, GESTURE_LONG_PRESS_DURATION, GESTURE_MAX_FLING_DELAY, new GestureHandler(this)); situationManager = new SituationManager(getAssetManager(), worldManager.getWorld(), getOrb(), getPixelsPerMeter(), getMainStage(), worldViewport); addProcessor(hudStage); addProcessor(gestureStage); addProcessor(gestureDetector); createRunnables(); disableTicking(); lock(); }
From source file:com.jmolina.orb.stages.GestureStage.java
License:Open Source License
/** * Constructor//from w w w .j av a 2s.c om * * @param am AssetManager * @param vp Viewport * @param pixelsPerMeter Factor de conversion de pixeles a metros */ public GestureStage(AssetManager am, Viewport vp, float pixelsPerMeter) { super(vp); this.vp = vp; bufferedArrow = new Image(); buffer = new FrameBuffer(Pixmap.Format.RGBA8888, vp.getScreenWidth() + (int) (OVERSIZE_RATIO * vp.getScreenWidth()), vp.getScreenHeight() + (int) (OVERSIZE_RATIO * vp.getScreenHeight()), false); start = new Vector2(); end = new Vector2(); arrow = new Arrow(am, pixelsPerMeter); pulse = new Pulse(am, pixelsPerMeter); pulse.setPosition(0.5f * vp.getWorldWidth() - 0.5f * pulse.getWidth(), 0.5f * vp.getWorldHeight() - 0.5f * pulse.getHeight()); bufferedArrow.setSize(Var.SCREEN_WIDTH + OVERSIZE_RATIO * Var.SCREEN_WIDTH, Var.SCREEN_HEIGHT + OVERSIZE_RATIO * Var.SCREEN_HEIGHT); float ratioX = Var.SCREEN_WIDTH / vp.getScreenWidth(); float ratioY = Var.SCREEN_HEIGHT / vp.getScreenHeight(); float offsetX = 0.5f * ratioX * (Gdx.graphics.getWidth() - vp.getScreenWidth()); float offsetY = 0.5f * ratioY * (Gdx.graphics.getHeight() - vp.getScreenHeight()); bufferedArrow.setPosition(-offsetX, -offsetY); arrow.setVisible(false); pulse.reset(); addActor(pulse); addActor(arrow); addActor(bufferedArrow); }
From source file:com.johnogel.astrobros.gameobjects.Locator.java
public Locator(AstroBro player, AstroBro other) { this.player = player; this.other_bro = other; center = player.getPosition();// w w w. j a v a2 s .c o m position = new Vector2(); }
From source file:com.kotcrab.vis.editor.module.physicseditor.util.earclipping.bayazit.BayazitDecomposer.java
License:Apache License
public static Array<Array<Vector2>> ConvexPartition(Array<Vector2> vertices) { // We force it to CCW as it is a precondition in this algorithm. // vertices.ForceCounterClockWise(); if (!IsCounterClockWise(vertices)) { // Collections.reverse(vertices); vertices.reverse();/*from ww w. j ava 2s . co m*/ // Array<Vector2> reversed = new Array<Vector2>(vertices.size); // for (int i = vertices.size - 1; i <= 0; i--) { // reversed.add(vertices.get(i)); // } // vertices = reversed; } Array<Array<Vector2>> list = new Array<Array<Vector2>>(); float d, lowerDist, upperDist; Vector2 p; Vector2 lowerInt = new Vector2(); Vector2 upperInt = new Vector2(); // intersection points int lowerIndex = 0, upperIndex = 0; Array<Vector2> lowerPoly, upperPoly; for (int i = 0; i < vertices.size; ++i) { if (Reflex(i, vertices)) { lowerDist = upperDist = Float.MAX_VALUE; // std::numeric_limits<qreal>::max(); for (int j = 0; j < vertices.size; ++j) { // if line intersects with an edge if (Left(At(i - 1, vertices), At(i, vertices), At(j, vertices)) && RightOn(At(i - 1, vertices), At(i, vertices), At(j - 1, vertices))) { // find the point of intersection p = LineIntersect(At(i - 1, vertices), At(i, vertices), At(j, vertices), At(j - 1, vertices)); if (Right(At(i + 1, vertices), At(i, vertices), p)) { // make sure it's inside the poly d = SquareDist(At(i, vertices), p); if (d < lowerDist) { // keep only the closest intersection lowerDist = d; lowerInt = p; lowerIndex = j; } } } if (Left(At(i + 1, vertices), At(i, vertices), At(j + 1, vertices)) && RightOn(At(i + 1, vertices), At(i, vertices), At(j, vertices))) { p = LineIntersect(At(i + 1, vertices), At(i, vertices), At(j, vertices), At(j + 1, vertices)); if (Left(At(i - 1, vertices), At(i, vertices), p)) { d = SquareDist(At(i, vertices), p); if (d < upperDist) { upperDist = d; upperIndex = j; upperInt = p; } } } } // if there are no vertices to connect to, choose a point in the // middle if (lowerIndex == (upperIndex + 1) % vertices.size) { Vector2 sp = new Vector2((lowerInt.x + upperInt.x) / 2, (lowerInt.y + upperInt.y) / 2); lowerPoly = Copy(i, upperIndex, vertices); lowerPoly.add(sp); upperPoly = Copy(lowerIndex, i, vertices); upperPoly.add(sp); } else { double highestScore = 0, bestIndex = lowerIndex; while (upperIndex < lowerIndex) upperIndex += vertices.size; for (int j = lowerIndex; j <= upperIndex; ++j) { if (CanSee(i, j, vertices)) { double score = 1 / (SquareDist(At(i, vertices), At(j, vertices)) + 1); if (Reflex(j, vertices)) { if (RightOn(At(j - 1, vertices), At(j, vertices), At(i, vertices)) && LeftOn(At(j + 1, vertices), At(j, vertices), At(i, vertices))) { score += 3; } else { score += 2; } } else { score += 1; } if (score > highestScore) { bestIndex = j; highestScore = score; } } } lowerPoly = Copy(i, (int) bestIndex, vertices); upperPoly = Copy((int) bestIndex, i, vertices); } list.addAll(ConvexPartition(lowerPoly)); list.addAll(ConvexPartition(upperPoly)); return list; } } // polygon is already convex if (vertices.size > MaxPolygonVertices) { lowerPoly = Copy(0, vertices.size / 2, vertices); upperPoly = Copy(vertices.size / 2, 0, vertices); list.addAll(ConvexPartition(lowerPoly)); list.addAll(ConvexPartition(upperPoly)); } else list.add(vertices); // The polygons are not guaranteed to be with collinear points. We // remove // them to be sure. for (int i = 0; i < list.size; i++) { list.set(i, SimplifyTools.CollinearSimplify(list.get(i), 0)); } // Remove empty vertice collections for (int i = list.size - 1; i >= 0; i--) { if (list.get(i).size == 0) list.removeIndex(i); } return list; }
From source file:com.kotcrab.vis.editor.module.physicseditor.util.earclipping.bayazit.BayazitDecomposer.java
License:Apache License
private static Boolean CanSee(int i, int j, Array<Vector2> vertices) { if (Reflex(i, vertices)) { if (LeftOn(At(i, vertices), At(i - 1, vertices), At(j, vertices)) && RightOn(At(i, vertices), At(i + 1, vertices), At(j, vertices))) return false; } else {//from w w w . ja v a 2s.c om if (RightOn(At(i, vertices), At(i + 1, vertices), At(j, vertices)) || LeftOn(At(i, vertices), At(i - 1, vertices), At(j, vertices))) return false; } if (Reflex(j, vertices)) { if (LeftOn(At(j, vertices), At(j - 1, vertices), At(i, vertices)) && RightOn(At(j, vertices), At(j + 1, vertices), At(i, vertices))) return false; } else { if (RightOn(At(j, vertices), At(j + 1, vertices), At(i, vertices)) || LeftOn(At(j, vertices), At(j - 1, vertices), At(i, vertices))) return false; } for (int k = 0; k < vertices.size; ++k) { if ((k + 1) % vertices.size == i || k == i || (k + 1) % vertices.size == j || k == j) { continue; // ignore incident edges } Vector2 intersectionPoint = new Vector2(); if (LineIntersect(At(i, vertices), At(j, vertices), At(k, vertices), At(k + 1, vertices), true, true, intersectionPoint)) { return false; } } return true; }