List of usage examples for com.badlogic.gdx.graphics.g2d Sprite getBoundingRectangle
public Rectangle getBoundingRectangle()
From source file:at.therefactory.jewelthief.Game.java
License:Open Source License
/** * Checks and rectifies the positions of enemies if they are outside of the enemy field. */// ww w . ja v a2s. c o m public void rearrangeEnemies() { for (Enemy enemy : enemies) { Sprite sprite = enemy.getSprite(); if (sprite.getBoundingRectangle().x < rectangleEnemyField.x) { enemy.setPosition(rectangleEnemyField.x + sprite.getWidth() / 2, enemy.getPosition().y); } if (sprite.getBoundingRectangle().x > rectangleEnemyField.x + rectangleEnemyField.width) { enemy.setPosition(rectangleEnemyField.x + rectangleEnemyField.width - sprite.getWidth() / 2, enemy.getPosition().y); } if (sprite.getBoundingRectangle().y < rectangleEnemyField.y) { enemy.setPosition(enemy.getPosition().x, enemy.getPosition().y + sprite.getHeight() / 2); } if (sprite.getBoundingRectangle().y > rectangleEnemyField.y + rectangleEnemyField.height) { enemy.setPosition(enemy.getPosition().x, rectangleEnemyField.y + rectangleEnemyField.height - sprite.getHeight() / 2); } enemy.update(); } }
From source file:br.cefetmg.games.minigames.CollectItens.java
@Override public void onHandlePlayingInput() { // atualiza a posio do alvo de acordo com o mouse Vector3 click = new Vector3(Gdx.input.getX(), Gdx.input.getY(), 0); super.screen.viewport.unproject(click); this.boca.setPosition(click.x - this.boca.getWidth() / 2, click.y - this.boca.getHeight() / 2); if (Gdx.input.justTouched()) { for (int i = 0; i < characters.size; i++) { Sprite sprite = characters.get(i); if (sprite.getBoundingRectangle().overlaps(boca.getBoundingRectangle())) { if ((sprite.getTexture() == toothbrushTexture) || sprite.getTexture() == toothpasteTexture) { this.collectGoodItem.play(); this.friendsCollected++; } else { this.collectBadItem.play(); this.boca.setTexture(this.badMouthTexture); this.perdeu.play(); this.challengeFailed(); }//from ww w. j a v a 2 s. com characters.removeValue(sprite, true); if (this.friendsCollected >= friends) { this.venceu.play(); super.challengeSolved(); } break; } } } }
From source file:br.cefetmg.games.minigames.EscoveOsDentes.java
@Override public void onHandlePlayingInput() { // atualiza a posio do alvo de acordo com o mouse Vector3 click = new Vector3(Gdx.input.getX(), Gdx.input.getY(), 0); super.screen.viewport.unproject(click); this.escova.setPosition(click.x - this.escova.getWidth() / 2, click.y - this.escova.getHeight() / 2); // itera no array de inimigos for (int i = 0; i < Tooths.size; i++) { Sprite sprite = Tooths.get(i); Escova aux = Escovar.get(i);//from ww w . j a v a2 s.c o m // se h interseo entre o retngulo da sprite e da escova, // a escova encostou if (sprite.getBoundingRectangle().overlaps(escova.getBoundingRectangle())) { // verifica se escova em cima do dente ou nao aux.overlapdentro = 1; if (!aux.dentro) { // toca um efeito sonoro BrushingSound.play(0.5f); aux.count += 1; aux.dentro = true; this.escova.setTexture(bolhas); } } else { aux.overlapfora = 1; if (aux.dentro) { aux.count += 1; aux.dentro = false; this.escova.setTexture(EscovaTexture); } if (aux.count >= this.numEscovada && aux.escovado != 1) { // contabiliza um dente limpo this.cleanTooth++; sprite.setTexture(dente); // seta dente como escovado aux.escovado = 1; itsCleanSound.play(); // se tiver limpado todo os dentes, o desafio // est resolvido if (this.cleanTooth >= this.totalTooths) { super.challengeSolved(); } // pra de iterar, porque seno pode pegar em mais // de um dente break; } } } }
From source file:br.cefetmg.games.minigames.SaveTheTeeth.java
@Override public void onHandlePlayingInput() { Vector3 mousePos = new Vector3(Gdx.input.getX(), Gdx.input.getY(), 0); super.screen.viewport.unproject(mousePos); this.cursor.setCenter(mousePos.x + 34.0f, mousePos.y + 13.0f); if (Gdx.input.justTouched()) { for (int i = 0; i < food.size; i++) { Sprite s = food.get(i); if (s.getBoundingRectangle().overlaps(cursor.getBoundingRectangle())) { if (food.get(i).getIsGood()) { if (mouth.touchedGoodFood() == 0) { backGroundSound.stop(); super.challengeFailed(); }/*from ww w.ja va 2s . co m*/ } food.removeIndex(i); break; } } } }
From source file:br.cefetmg.games.minigames.OrientacaoSnake.java
@Override public void onUpdate(float dt) { this.fundo.setSize(this.screen.viewport.getWorldWidth(), this.screen.viewport.getWorldHeight()); this.snake.setPosition(this.snake.getX() + this.snakeVelocity.x, this.snake.getY() + this.snakeVelocity.y); //verifica se snake esta fora de fronteira switch (orientacao) { case Top://from w w w. j a v a 2 s. c o m if (snake.getHeight() + snake.getY() >= this.screen.viewport.getWorldHeight()) { this.snakeVelocity.y = 0; } break; case Right: if (snake.getWidth() + snake.getX() >= this.screen.viewport.getWorldWidth()) { this.snakeVelocity.x = 0; } break; case Down: if (snake.getY() <= 0) { this.snakeVelocity.y = 0; } break; case Left: if (snake.getX() <= 0) { this.snakeVelocity.x = 0; } break; } // verifica se matou um inimigo for (int i = 0; i < enemies.size; i++) { Sprite sprite = enemies.get(i); // se h interseo entre o retngulo da sprite e da snake, // o tiro acertou if (sprite.getBoundingRectangle().overlaps(snake.getBoundingRectangle())) { // contabiliza um inimigo morto this.enemiesKilled++; // remove o inimigo do array this.enemies.removeValue(sprite, true); cariesDyingSound.play(); // se tiver matado todos os inimigos, o desafio // est resolvido if (this.enemiesKilled >= this.totalEnemies) { super.challengeSolved(); } // pra de iterar, porque seno o tiro pode pegar em mais // de um inimigo break; } } }
From source file:com.minekrash.game.Plataforma.java
public boolean checkCollision(Sprite _sprite, float _speed) { if (isAlive) { if (plataforma.getBoundingRectangle().overlaps(_sprite.getBoundingRectangle()) && _sprite.getX() + _sprite.getWidth() - (_sprite.getWidth() / 4) > plataforma.getX() && _sprite.getX() + (_sprite.getWidth() / 4) < plataforma.getX() + plataforma.getWidth() && _sprite.getY() > plataforma.getY() + (plataforma.getHeight() / 2) //&& _sprite.getY() - (_sprite.getHeight() /*/ 2*/) - _speed < plataforma.getY() //&& _sprite.getY() > plataforma.getY() ) {//from w w w .ja v a2 s. c om return true; } else { return false; } } else { return false; } }
From source file:im.ligas.worms.screen.MainMenuScreen.java
License:Open Source License
private boolean spriteContains(Sprite sprite, Vector3 position) { Rectangle boundingRectangle = sprite.getBoundingRectangle(); return boundingRectangle.contains(position.x, position.y); }
From source file:se.angergard.game.system.MapControllerSystem.java
License:Apache License
private void checkCollision() { //Checks player and enemies ScoreComponent scoreComponent = Objects.SCORE_MAPPER.get(player); SpriteComponent playerSpriteComponent = Objects.SPRITE_MAPPER.get(player); Rectangle playerRectangle = playerSpriteComponent.sprite.getBoundingRectangle(); playerRectangle.set(playerRectangle.x - 1, playerRectangle.y - 1, playerRectangle.width + 2, playerRectangle.height + 2); for (int i = 0; i < enemies.size; i++) { Entity enemy = enemies.get(i); SpriteComponent enemySpriteComponent = Objects.SPRITE_MAPPER.get(enemy); Sprite enemySprite = enemySpriteComponent.sprite; //Checks if the player has touched any enemy if (!alreadyHurted && Intersector.overlaps(playerRectangle, enemySprite.getBoundingRectangle())) { alreadyHurted = true;/*from ww w . j a v a 2 s . c om*/ HealthComponent healthComponent = Objects.HEALTH_MAPPER.get(player); healthComponent.health.hurt(1); if (healthComponent.health.isDead()) { int score = scoreComponent.score; int levels = scoreComponent.levels; game.setScreen(new GameFinished(game, "You died,\nScore:" + score + "\nLevels:" + levels)); //TODO: Add score } else { removeAllEnemies(); } } } @SuppressWarnings("unchecked") ImmutableArray<Entity> potentiallyHoleArray = engine.getEntitiesFor(Family.getFor(HoleComponent.class)); if (potentiallyHoleArray.size() == 0) { return; } Entity hole = potentiallyHoleArray.first(); SpriteComponent holeSpriteComponent = Objects.SPRITE_MAPPER.get(hole); Sprite holeSprite = holeSpriteComponent.sprite; Circle circle = new Circle(holeSprite.getX() + holeSprite.getWidth() / 2, holeSprite.getY() + holeSprite.getHeight() / 2, holeSprite.getWidth() / 2); Array<Entity> enemiesToRemove = new Array<Entity>(); for (int i = 0; i < enemies.size; i++) { Entity enemy = enemies.get(i); SpriteComponent enemySpriteComponent = Objects.SPRITE_MAPPER.get(enemy); Sprite enemySprite = enemySpriteComponent.sprite; if (Intersector.overlaps(circle, enemySprite.getBoundingRectangle())) { Box2DComponent enemyBox2DComponent = Objects.BOX2D_MAPPER.get(enemy); engine.removeEntity(enemy); Box2DUtils.destroyBody(enemyBox2DComponent); enemiesToRemove.add(enemy); scoreComponent.score += 1; } } for (Entity enemyToRemove : enemiesToRemove) { enemies.removeValue(enemyToRemove, true); } enemiesToRemove.clear(); //Checks if player fell in the hole playerRectangle = playerSpriteComponent.sprite.getBoundingRectangle(); //Recreates it to be bigger, or else collision is weird; playerRectangle.set(playerRectangle.x + 6, playerRectangle.y + 6, playerRectangle.width - 12, playerRectangle.height - 12); if (Intersector.overlaps(circle, playerRectangle)) { game.setScreen(new GameFinished(game, "You fell into \nyour own hole.\nNo score for you...")); } }