Autore Topic: [AIUTO] Android studio giochino  (Letto 489 volte)

Offline irlash

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    note3
  • Sistema operativo:
    5.0 Lollipop
[AIUTO] Android studio giochino
« il: 11 Ottobre 2015, 16:44:52 CEST »
0
Salve ragazzi, sono nuovo su questo forum e spero di trovarmi bene e che posso imparare qualcosa da tutti voi :)
Allora devo fare un progetto android per un esame e avevo pensato di fare un piccolo giochino dove c'è una nave spaziale che deve evitare gli ostacoli. Con la parte grafica ho quasi terminato tutto, vi spiego meglio l'idea, ho creato una pagina iniziale dove bisogna cliccare su avvia gioco e si apre una seconda acrivity che contiene un menù con gioca, record ed esci (per ora), cliccando su gioca si apre una terza activity che è la parte dove bisogna giocare. Arrivato a questo punto io ho settato i movimenti per la navicella (che è una ImageView) e funzionano perfettamente e ho settato un paio di asteroidi (sempre ImageView) invisibili inizialmente, che in modo casuale percorrono l'intero schermo (per appunto essere schivati dalla navicella), per fare ciò ho creato un'interfaccia runnable che sfrutta un metodo che genera numeri casuali per selezionare l'asteroide che deve muoversi. Il tutto funziona bene (quasi) ed è stato implementato a sua volta nel metodo "startgame" che è il metodo invocato al click di gioca nella seconda activity per avviare la terza. Il fatto è che gli asteroidi si muovono in modo continuo, mi spiego meglio, ne sono 8, se viene selezionato il terzo casualmente inizia a muoversi, se alla seconda run (dopo 2 secondi) si seleziona il quarto dovrebbe uscire solo il quarto mentre invece esce terzo e quarto e così via all'infinito. Vi lascio il codice usato per muovere gli asteroidi e caricare la terza activity:
Startgame (terza activity):
public void startgame(View v) {
        final View x = v;

        final Handler handler = new Handler( )
        {
            @Override
            public void handleMessage( Message msg ) {
            }
        };
        final Runnable runnable = new Runnable()
        {

            @Override
            public void run( )
            {
                moveasteroid(x);
                handler.postDelayed(this, 2000);
            }
        };
        int i = 1;
        setContentView(R.layout.activity_main);
        anim1 = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.movedown); /*movedown è l'animazione per spostare gli asteroidi sull'asse delle y e non ha cicli)*/
        imnave = (ImageView) findViewById(R.id.navetta);
        imasteroide1 = (ImageView) findViewById(R.id.asteroide1);
        handler.postDelayed(runnable, 2000);
    }
Metodo per scegliere e muovere gli asteroidi:
public void moveasteroid (View v) {
        Random i = new Random();
        int x;
        x = i.nextInt(8);
        if (x == 1) {
            imasteroide1 = (ImageView) findViewById(R.id.asteroide1);
            imasteroide1.startAnimation(anim1);
        }
        if (x == 2) {
            imasteroide2 = (ImageView) findViewById(R.id.asteroide2);
            imasteroide2.startAnimation(anim1);
        }
        if (x == 3) {
            imasteroide3 = (ImageView) findViewById(R.id.asteroide3);
            imasteroide3.startAnimation(anim1);
        }
        if (x == 4) {
            imasteroide4 = (ImageView) findViewById(R.id.asteroide4);
            imasteroide4.startAnimation(anim1);
        }
        if (x == 5) {
            imasteroide5 = (ImageView) findViewById(R.id.asteroide5);
            imasteroide5.startAnimation(anim1);
        }
        if (x == 6) {
            imasteroide6 = (ImageView) findViewById(R.id.asteroide6);
            imasteroide6.startAnimation(anim1);
        }
        if (x == 7) {
            imasteroide7 = (ImageView) findViewById(R.id.asteroide7);
            imasteroide7.startAnimation(anim1);
        }
        if (x == 0) {
            imasteroide8 = (ImageView) findViewById(R.id.asteroide8);
            imasteroide8.startAnimation(anim1);
        }
    }
Attendo vostre risposte :)
p.s. non so se esiste un modo per sistemare il codice quindi lascio sistemarlo a voi moderatori, grazie :D

Offline NetGEL

  • Utente normale
  • ***
  • Post: 211
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:[AIUTO] Android studio giochino
« Risposta #1 il: 13 Ottobre 2015, 16:48:59 CEST »
0
Ciao, se ho capito bene devi far muovere un asteroide alla volta giusto?
Intanto un consiglio. Invece di usare tutti quegli if puoi usare uno switch  :-)