A recipe of: Flappy birds! – (Metodo Fly)

Flappy bird! (fly my bird, FLY)

Con questo settimo tutorial, andremo a far volare il nostro piccione.

 

Ingredienti:

 

Riprendiamo!

Eravamo rimasti con l’aver creato la classe sprite “bird” per il nostro programma, e avevamo implementato nel gioco la forza di gravita’, bene ora e’ arrivato il momento di sconfiggerla

 

bird

 

Let’s FLY

Per prima cosa, andiamo a settare un po’ meglio la gravita’, andiamo a mettere che se il nostro piccione a gia’ raggiunto il suolo, non puo’ cadere piu’ in basso di cosi, quindi se l’y sara’ uguale a 0 la forza di gravita’ non potra’ portarla a un valore negativo.

Andiamo quindi a scrivere:

public void update(float dt) {
    if(this.posizione.y >= 0) {
        velocita.add(0, GRAVITY);
        velocita.scl(dt);
        posizione.add(0, velocita.y);
        velocita.scl(1 / dt);
    }
    if(this.posizione.y < 0){
        this.posizione.y = 0;
    }
}

Per far volare il nostro piccione, andiamo ad aggiungere il metodo “Fly” alla nostra classe bird, questo metodo, dovra’ lavorare sull’asse delle ascisse e far prendere quota al nostro personaggio altrimenti afflitto unicamente dalla forza di gravita’.

L’unica cosa che dovremo fare in questo metodo, sara’ settare la velocita’ y a un valore positivo, quindi possiamo andarlo a scrivere nel seguente modo:

public void Fly(){
    velocita.y = 150;
}

Quello che dobbiamo fare ora, semplicemente, e’ di andare a richiamare questa funzione al tocco del touch screen o al click del mouse, torniamo quindi nel nostro stato di gioco e andiamo a configurare la funzione InputManager.

protected void InputManager() {
    if(Gdx.input.justTouched()){
        bird.Fly();
    }
}

Ora, se andate a testare, e cliccate con il mouse lo schermo, potrete far volare il nostro piccione!

 

Facciamolo volare in cielo

Ora, sinceramente direi che ci siamo un po’ stufati di quel background di colore rosso, andiamo a cambiarlo andando a prendere uno sfondo.

Andiamo quindi ad aggiungere al nostro stato di gioco una nuova Texture e chiamiamola sfondo, assegnamole lo sfondo.jpg che si trova tra gli ingredienti e disegnamolo sullo schermo ricordandoci 1 di andarlo a disegnare prima di andare a disegnare il piccione per non andare a disegnare sopra di esso, 2 di settargli le dimensioni pari a 1/4 del nostro schermo, in modo tale da rientrare con le misure giuste nella nostra porzione di schermo che abbiamo preso con la camera.

public class StatoGioco extends Stato {
    private Bird bird;
    Texture sfondo;

    public StatoGioco(GameStateManager gsm) {
        super(gsm);
        bird = new Bird (30,150);
        sfondo = new Texture("sfondo.jpg");
        camera.setToOrtho(false,FlappyBirdsGame.LARGHEZZA/2,FlappyBirdsGame.ALTEZZA/2);
    }

E qui andiamo a disegnare:

@Override
public void render(SpriteBatch spriteBatch) {
    spriteBatch.setProjectionMatrix(camera.combined);
    spriteBatch.begin();
    spriteBatch.draw(sfondo,camera.position.x - (camera.viewportWidth / 2),0,FlappyBirdsGame.LARGHEZZA / 2,FlappyBirdsGame.ALTEZZA / 2);
    spriteBatch.draw(bird.getTexture(),bird.getPosizione().x,bird.getPosizione().y);
    spriteBatch.end();
}

biiirdsfondo

 

Nel prossimo tutorial, inizieremo a inserire gli ostacoli di gioco.

 

 

 

Saluti dal vostro nabbo Developer

Marco Tamagno

Facebook

Google+

Rispondi