Example usage for com.badlogic.gdx.math RandomXS128 nextFloat

List of usage examples for com.badlogic.gdx.math RandomXS128 nextFloat

Introduction

In this page you can find the example usage for com.badlogic.gdx.math RandomXS128 nextFloat.

Prototype

@Override
public float nextFloat() 

Source Link

Document

Returns a pseudo-random, uniformly distributed float value between 0.0 and 1.0 from this random number generator's sequence.

Usage

From source file:io.github.deathsbreedgames.spacerun.screens.GameScreen.java

public GameScreen(AssetManager manager) {
    super("Splash", manager);

    // Create buttons
    mainStage = new Stage(new StretchViewport(GlobalVars.width, GlobalVars.height));
    buttonAtlas = manager.get("gfx/ui/buttons.pack", TextureAtlas.class);
    buttonSkin = new Skin(buttonAtlas);
    Gdx.input.setInputProcessor(mainStage);

    ImageButtonStyle imgBtnStyle = new ImageButtonStyle();
    imgBtnStyle.imageUp = buttonSkin.getDrawable("ExitButton");

    ImageButton exitButton = new ImageButton(imgBtnStyle);
    exitButton.setPosition(GlobalVars.width - (exitButton.getWidth() + 5f),
            GlobalVars.height - (exitButton.getHeight() + 5f));
    mainStage.addActor(exitButton);/*  w  ww.j ava  2  s  . c  o m*/
    exitButton.addListener(new ChangeListener() {
        public void changed(ChangeEvent e, Actor a) {
            setNextScreen("MainMenu");
            setDone(true);
        }
    });

    // Setup draw stuff
    camera = new OrthographicCamera(GlobalVars.width, GlobalVars.height);
    camera.position.set(GlobalVars.width / 2, GlobalVars.height / 2, 0f);
    camera.update();

    batch = new SpriteBatch();
    spaceshipAtlas = manager.get("gfx/sprites/spaceships.pack", TextureAtlas.class);
    bulletAtlas = manager.get("gfx/sprites/bullets.pack", TextureAtlas.class);
    pickupAtlas = manager.get("gfx/sprites/pickups.pack", TextureAtlas.class);
    font = new BitmapFont();
    font.scale(0.01f);

    // Create ship
    if (GlobalVars.ship == 0) {
        player = new Player(spaceshipAtlas.findRegion("bluedestroyer"), 160, 50, 1, 1000, 250, 0.5f);
    } else if (GlobalVars.ship == 1) {
        player = new Player(spaceshipAtlas.findRegion("bluecarrier"), 160, 50, 0, 2000, 250, 0.5f);
    } else {
        player = new Player(spaceshipAtlas.findRegion("bluecruiser"), 160, 50, 0, 1000, 500, 0.5f);
    }
    // Setup enemies
    enemies = new Enemy[NUM_ENEMIES];
    for (int i = 0; i < NUM_ENEMIES; i++) {
        enemies[i] = null;
    }
    currentMaxEnemies = 1;
    currentEnemies = 0;
    // Setup bullets
    bullets = new Bullet[NUM_BULLETS];
    for (int i = 0; i < NUM_BULLETS; i++) {
        bullets[i] = null;
    }

    // Setup pickups
    pickup = null;
    pickupTimer = 0;

    rapidTimer = 0;
    speed = false;
    speedTimer = 0;
    invTimer = 0;

    // Setup Particle Effects
    ParticleEffect explosionEffect = new ParticleEffect();
    explosionEffect.load(Gdx.files.internal("gfx/particles/Explosion.p"), Gdx.files.internal("gfx/particles/"));
    explosionEffectPool = new ParticleEffectPool(explosionEffect, 1, 2);

    // Setup stars
    stars = new Star[NUM_STARS];
    for (int i = 0; i < NUM_STARS; i++) {
        RandomXS128 rand = new RandomXS128();
        stars[i] = new Star(rand.nextFloat() * GlobalVars.width, rand.nextFloat() * GlobalVars.height);
    }
    shapeRenderer = new ShapeRenderer();

    // Setup sound
    laserShot = Gdx.audio.newSound(Gdx.files.internal("sfx/laser5.mp3"));
    explode = Gdx.audio.newSound(Gdx.files.internal("sfx/explosion.mp3"));
}

From source file:io.github.deathsbreedgames.spacerun.screens.GameScreen.java

@Override
public void render(float delta) {
    super.render(delta);

    // Player shoot
    if (player.shoot) {
        boolean twoBullets = false;
        int bulletsMade = 0;
        bulletLoop: for (int i = 0; i < NUM_BULLETS; i++) {
            if (bullets[i] == null) {
                if (player.getDoubleShot()) {
                    if (bulletsMade == 0) {
                        bullets[i] = new Bullet(getBulletImg((Ship) player), player.getPosX() - 10,
                                player.getPosY() + 35, getDmg((Ship) player));
                        bulletsMade = 1;
                    } else if (bulletsMade == 1) {
                        bullets[i] = new Bullet(getBulletImg((Ship) player), player.getPosX() + 10,
                                player.getPosY() + 35, getDmg((Ship) player));
                        bulletsMade = 2;
                        twoBullets = true;
                    }//from  w  w  w .j  av  a2  s .c o  m
                } else {
                    bullets[i] = new Bullet(getBulletImg((Ship) player), player.getPosX(),
                            player.getPosY() + 35, getDmg((Ship) player));
                }
                bullets[i].setVelY(600f);
                if (GlobalVars.soundOn)
                    laserShot.play();

                if (!player.getDoubleShot() || twoBullets)
                    break bulletLoop;
            }
        }
    }

    // Create the enemies
    currentMaxEnemies = MathUtils.ceil(player.getScore() / 100f);
    if (currentMaxEnemies > NUM_ENEMIES)
        currentMaxEnemies = NUM_ENEMIES;
    else if (currentMaxEnemies == 0)
        currentMaxEnemies = 1;
    // Create enemies
    if (currentEnemies < currentMaxEnemies) {
        enemyLoop: for (int i = 0; i < currentMaxEnemies; i++) {
            if (enemies[i] == null) {
                createEnemy(i);
                break enemyLoop;
            }
        }
    }

    // Enemies shoot
    for (int i = 0; i < NUM_ENEMIES; i++) {
        if (enemies[i] != null && enemies[i].shoot) {
            bulletLoop: for (int j = 0; j < NUM_BULLETS; j++) {
                if (bullets[j] == null) {
                    bullets[j] = new Bullet(getBulletImg((Ship) enemies[i]), enemies[i].getPosX(),
                            enemies[i].getPosY() - 35, getDmg((Ship) enemies[i]));
                    bullets[j].setVelY(-600f);
                    if (GlobalVars.soundOn)
                        laserShot.play();
                    break bulletLoop;
                }
            }
        }
    }

    // Pickup creation
    pickupTimer += delta;
    if (pickupTimer >= 15 && pickup == null) {
        RandomXS128 rand = new RandomXS128();
        float probType = rand.nextFloat();
        if (probType < 0.30f) {
            pickup = new Pickup(pickupAtlas.findRegion("shield"), rand.nextFloat() * GlobalVars.width, 480,
                    "repair");
        } else if (probType < 0.4f) {
            pickup = new Pickup(pickupAtlas.findRegion("double-shot"), rand.nextFloat() * GlobalVars.width, 480,
                    "double");
        } else if (probType < 0.5f) {
            pickup = new Pickup(pickupAtlas.findRegion("speed"), rand.nextFloat() * GlobalVars.width, 480,
                    "speed");
        } else if (probType < 0.7f) {
            pickup = new Pickup(pickupAtlas.findRegion("rapid-fire"), rand.nextFloat() * GlobalVars.width, 480,
                    "rapid");
        } else if (probType < 0.75f) {
            pickup = new Pickup(pickupAtlas.findRegion("weapon-upgrade"), rand.nextFloat() * GlobalVars.width,
                    480, "upgrade");
        } else if (probType < 0.80f) {
            pickup = new Pickup(pickupAtlas.findRegion("full-shield"), rand.nextFloat() * GlobalVars.width, 480,
                    "invincibility");
        }
        if (pickup != null)
            pickup.setVelY(-100f);
        pickupTimer = 0;
    } else if (pickup != null && pickup.getY() <= 0) {
        pickup = null;
    }

    if (rapidTimer <= 0)
        player.setRapidFire(false);
    else
        rapidTimer -= delta;

    if (speed && speedTimer <= 0) {
        player.incMaxVel(-200);
        speed = false;
    } else if (speedTimer > 0) {
        speedTimer -= delta;
    }

    if (invTimer <= 0 && player.isInvincible()) {
        player.setInvincible(false);
        if (GlobalVars.ship == 0)
            player.setRegion(spaceshipAtlas.findRegion("bluedestroyer"));
        else if (GlobalVars.ship == 1)
            player.setRegion(spaceshipAtlas.findRegion("bluecarrier"));
        else
            player.setRegion(spaceshipAtlas.findRegion("bluecruiser"));
    } else
        invTimer -= delta;

    camera.update();
    // Update stars
    shapeRenderer.setProjectionMatrix(camera.combined);
    shapeRenderer.begin(ShapeType.Filled);
    for (int i = 0; i < NUM_STARS; i++)
        stars[i].update(shapeRenderer, delta);
    shapeRenderer.end();

    batch.setProjectionMatrix(camera.combined);
    batch.begin();
    // Update player
    player.render(batch, delta);
    if (player.getShields() <= 0) {
        GlobalVars.score = player.getScore();
        setNextScreen("GameOver");
        setDone(true);
    }
    // Update enemies
    for (int i = 0; i < NUM_ENEMIES; i++) {
        if (enemies[i] != null) {
            enemies[i].render(batch, delta);

            // Check for collisions
            if (enemies[i].getPosY() <= 0) {
                enemies[i] = null;
            } else if (enemies[i].getShields() <= 0) {
                score(enemies[i]);
                PooledEffect effect = explosionEffectPool.obtain();
                effect.setPosition(enemies[i].getPosX(), enemies[i].getPosY());
                effects.add(effect);
                if (GlobalVars.soundOn)
                    explode.play();
                enemies[i] = null;
                GlobalVars.killCount++;
            } else if (enemies[i].getBoundingRectangle().overlaps(player.getBoundingRectangle())) {
                if (!player.isInvincible())
                    player.incShields(-100);
                if (!player.isInvincible())
                    player.setDoubleShot(false);
                PooledEffect effect = explosionEffectPool.obtain();
                effect.setPosition(enemies[i].getPosX(), enemies[i].getPosY());
                effects.add(effect);
                if (GlobalVars.soundOn)
                    explode.play();
                enemies[i] = null;
                GlobalVars.killCount++;
            }
        }
    }
    // Update bullets
    for (int i = 0; i < NUM_BULLETS; i++) {
        if (bullets[i] != null) {
            bullets[i].render(batch, delta);

            // Check for collisions
            if (bullets[i].getPosY() >= Gdx.graphics.getHeight() || bullets[i].getPosY() <= 0) {
                bullets[i] = null;
            } else if (bullets[i].getBoundingRectangle().overlaps(player.getBoundingRectangle())) {
                if (!player.isInvincible())
                    player.incShields(-bullets[i].getDmg());
                player.setDoubleShot(false);
                bullets[i] = null;
            } else if (bullets[i].getVelY() > 0) {
                enemyCollideLoop: for (int j = 0; j < NUM_ENEMIES; j++) {
                    if (enemies[j] != null) {
                        if (bullets[i].getBoundingRectangle().overlaps(enemies[j].getBoundingRectangle())) {
                            enemies[j].incShields(-bullets[i].getDmg());
                            bullets[i] = null;
                            break enemyCollideLoop;
                        }
                    }
                }
            }
        }
    }

    // Update pickups:
    if (pickup != null) {
        pickup.render(batch, delta);
        if (pickup.getBoundingRectangle().overlaps(player.getBoundingRectangle())) {
            if (pickup.getType().equals("repair")) {
                player.incShields(100);
            } else if (pickup.getType().equals("double")) {
                player.setDoubleShot(true);
            } else if (pickup.getType().equals("speed")) {
                player.incMaxVel(200);
                speed = true;
                speedTimer = 10.0f;
            } else if (pickup.getType().equals("rapid")) {
                player.setRapidFire(true);
                rapidTimer = 5.0f;
            } else if (pickup.getType().equals("upgrade")) {
                player.upgradeWeapon();
            } else if (pickup.getType().equals("invincibility")) {
                player.setInvincible(true);
                invTimer = 7.0f;
                if (GlobalVars.ship == 0)
                    player.setRegion(spaceshipAtlas.findRegion("bluedestroyer_normal"));
                else if (GlobalVars.ship == 1)
                    player.setRegion(spaceshipAtlas.findRegion("bluecarrier_normal"));
                else
                    player.setRegion(spaceshipAtlas.findRegion("bluecruiser_normal"));
            }
            pickup = null;
        }
    }

    // Update particles
    for (int i = 0; i < effects.size; i++) {
        PooledEffect effect = effects.get(i);
        effect.draw(batch, delta);
        if (effect.isComplete()) {
            effect.free();
            effects.removeIndex(i);
        }
    }

    font.draw(batch, GlobalVars.gameBundle.format("shields", player.getShields()), 10, 470);
    font.draw(batch, GlobalVars.gameBundle.format("score", player.getScore()), 10, 450);
    batch.end();

    mainStage.act();
    mainStage.draw();
}

From source file:io.github.deathsbreedgames.spacerun.screens.GameScreen.java

private void createEnemy(int n) {
    RandomXS128 rand = new RandomXS128();
    float xPos = rand.nextFloat() * GlobalVars.width;
    float type = rand.nextFloat();

    if (player.getScore() < 200) {
        enemies[n] = new Enemy(spaceshipAtlas.findRegion("F5S1"), xPos, 480, 0, 50, 175, 1.5f, "F51");
    } else if (player.getScore() < 400) {
        if (type < 0.8f) {
            enemies[n] = new Enemy(spaceshipAtlas.findRegion("F5S1"), xPos, 480, 0, 50, 175, 1.5f, "F51");
        } else {/*from  ww w.  java  2s.  c om*/
            enemies[n] = new Enemy(spaceshipAtlas.findRegion("F5S2"), xPos, 480, 0, 100, 175, 1.0f, "F52");
        }
    } else if (player.getScore() < 1000) {
        if (type < 0.5f) {
            enemies[n] = new Enemy(spaceshipAtlas.findRegion("F5S1"), xPos, 480, 0, 50, 175, 1.5f, "F51");
        } else if (type < 0.75f) {
            enemies[n] = new Enemy(spaceshipAtlas.findRegion("F5S2"), xPos, 480, 0, 100, 175, 1.0f, "F52");
        } else {
            enemies[n] = new Enemy(spaceshipAtlas.findRegion("F5S3"), xPos, 480, 1, 75, 200, 1.0f, "F53");
        }
    } else {
        if (type < 0.5f) {
            enemies[n] = new Enemy(spaceshipAtlas.findRegion("F5S1"), xPos, 480, 0, 50, 175, 1.5f, "F51");
        } else if (type < 0.7f) {
            enemies[n] = new Enemy(spaceshipAtlas.findRegion("F5S2"), xPos, 480, 0, 100, 175, 1.0f, "F52");
        } else if (type < 0.9f) {
            enemies[n] = new Enemy(spaceshipAtlas.findRegion("F5S3"), xPos, 480, 1, 100, 200, 1.0f, "F53");
        } else {
            enemies[n] = new Enemy(spaceshipAtlas.findRegion("F5S4"), xPos, 480, 1, 300, 200, 0.75f, "F54");
        }
    }

    overlapLoop: for (int i = 0; i < NUM_ENEMIES; i++) {
        if (i != n && enemies[i] != null) {
            if (enemies[n].getBoundingRectangle().overlaps(enemies[i].getBoundingRectangle())) {
                enemies[n] = null;
                break overlapLoop;
            }
        }
    }

    if (enemies[n] != null) {
        enemies[n].setVelY(-enemies[n].getMaxVel());
        enemies[n].setShootTimer(rand.nextFloat() * enemies[n].getShootTime());
    }
}