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

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

Introduction

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

Prototype

public RandomXS128() 

Source Link

Document

Creates a new random number generator.

Usage

From source file:com.quadbits.gdxhelper.LWPGameModule.java

License:Apache License

@Provides
@PerGame
RandomXS128 provideRandomXS128() {
    return new RandomXS128();
}

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 w w.  jav  a2s  .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  www  .j  a  va  2  s .co m*/
            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());
    }
}