bitte mach ein foto und schick es mir

...zur Antwort
Jugendliche einbinden und zwar so:...

erzählt die geschichte der pfiffigen hebamme nach

...zur Antwort

wie crafte ich whatsapp in minecraft

...zur Antwort
Java Android Studio - ViewGroup.get[...]?

Hallo Leute, ich habe ein sehr belastendes Problem. 😖

Zurzeit lese ich in dem Buch "Android-Apps entwickeln für Einsteiger" von Uwe Post. Im 5. Kapitel geht es um das erste Spiel. Nun habe ich schon ein wenig programmiert und nun kommt ein Problem. Ich stehe vor einem großen Fragezeichen. 😊

Im Buch schrieb er im Quellcode:

public class GameActivity extends Activity implements View.OnClickListener, Runnable {
  /* ... */

  private int zeit;
  private float massstab;
  private int muecken;
  private Random zufallsgenerator = new Random();
  private ViewGroup spielbereich;
  private Handler handler = new Handler();

  /* ... */

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.game);
    massstab = getResources().getDisplayMetrics().density;
    spielbereich = (ViewGroup) findViewById(R.id.spielbereich);
    spielStarten();
    /* ... */
  }

  private void spielStarten() {
    /* ... */
  }

  private void bildschirmAktualisieren() {
    /* ... */
  }

  private void zeitHerunterzaehlen() {
    zeit = zeit - 1;

    if (zeit == blabla) {
      eineMueckeAnzeigen();
    }
  }

  private boolean pruefeRundenende() {
    /* ... */
  }

  private void starteRunde() {
    /* ... */
  }

  private boolean pruefeSpielende() {
    /* ... */
  }

  private void gameOver() {
    /* ... */
  }

  private void mueckenVerschwinden() {
    /* ... */
  }

  private void eineMueckeAnzeigen() {
    int breite = spielbereich.getWidth(); //!!!!!!!
    int hoehe  = spielbereich.getHeight(); //!!!!!!!
    int muecke_breite = Math.round(massstab50);
    int muecke_hoehe = Math.round(massstab42);
    int links = zufallsgenerator.nextInt(breite - muecke_breite);
    int oben = zufallsgenerator.nextInt(hoehe - muecke_hoehe);

    ImageView muecke = new ImageView(this);
    muecke.setImageResource(R.drawable.muecke);
    muecke.setOnClickListener(this);

    /* ... */

    FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(muecke_breite, muecke_hoehe);
    params.leftMargin = links;
    params.topMargin = oben;
    params.gravity = Gravity.TOP + Gravity.LEFT;

    spielbereich.addView(muecke, params);

    /* ... */
  }

  @Override
  public void onClick(View muecke) {
    gefangeneMuecken++;
    bildschirmAktualisieren();
    /* ... */
    muecke.setOnClickListener(null);
  }

  @Override
  public void run() {
    zeitHerunterzaehlen();
  }

  /* ... */
}

So, ich habe absichtlich viele Zeilen ausgelassen, weil ich nicht weiß, wie es urheberrechtlich da so aussieht. Nun denn, ich habe die wesentlichen Methoden drin gelassen. In einem Kommentar dieser Frage seht ihr meinen Code. 😊 Ich hoffe ihr könnt mir helfen. 😊

So, in der Methode eineMueckeAnzeigen hat Uwe Post die Methoden getWidth() und getHeight() benutzt. Wenn ich sie benutze, wird die App beendet.

...zum Beitrag

versuchs mal damit

Öffentliche Klasse Game Activity erweitert-Aktivität implementiert View. OnClickListener, ausführbar {

[...]
    Privat int Zeit = 60; In Sekunden
    Private abschließende statische int ImageWidth = 40;
    Private abschließende statische int ImageHeight = 72;
    privatere viewgroup Spielerbereich;
    Private TextView tvTime;
    Private TextView tvHits;
    privater ImageView-Ballon;
    private int ballon_breite;
    Privat int ballon_hoehe;
    privater float-Massstab;
    privater Handler MyHandler;
    Private Zufallsgenerator;

@Override
    protected void OnCreate (Bundle savedInstanceState) {
        Super. OnCreate (savedInstanceState);
        setContentView (R. Layout. activity_game);

[...]

Mein Handhaber = neuer Handhaber();

Massstab = holeRessourcen().holeAnzeigungsMetrikenn().Dichte;
        Zufallsgenerator = neu zufällig ();

Spielerbereich = (Anschauungsgruppe) findViewById (R. ID. Spielerbereich);

params = New Rahmenlayout.LayoutParams(ballon_breite, ballon_hoehe);

Wenn (gestartet = = falsch) {
            spielStarten ();
        sonst
            Spiel ist aus ();
        }
    }

privatevoid rundeStarten () {
        zeitHerunterZaehlen ();
    }

privatevoid spielStarten () {
        gestartet = wahr;
        rundeStarten ();
    }

privatevoid zeitHerunterZaehlen () {
       MeinHandhaber.postdelayed (this, 1000);
       tvTime.SetzedenText(Integer.zuFaden(Zeit));
       Zeit-= 1;

Wenn (Zeit! = 0 & & gefangeneBloons! = bloonsPerRound) {
           checkForSpawnBloon ();
       } Söhne, wenn (Zeit = = 0) {
           Spiel ist aus ();
       } sonsd if (gefangeneBloons = = bloonsPerRound) {
           rundeStarten ();
       sonst
           Fertig (); Fehler
       }

}

privatevoid Überprüfefürerscheinungsmann() {
        float Wahrscheinlichkeit = bloonsPerRound/Zeit;
        float Zufallszahl = zuflagesgenerator. nextFloat ();

ballonErscheinenLassen ();

Wenn (Wahrscheinlichkeit > Zufallszahl) {
            ballonErscheinenLassen ();
        }
        if (Wahrscheinlichkeit <Zufallszahl) {="" zufallszahl="zuflagesgenerator.nextFloat" ();="" wenn="" (wahrscheinlichkeit="">Zufallszahl) {
                ballonErscheinenLassen ();
            }
        }

Zufallszahl = zuflagesgenerator. nextFloat ();

}

privatevoid ballonErscheinenLassen () {
        int spielerbereich_breite = Spielerbereich. getWidth ();
        int spielerbereich_hoehe = Spielerbereich. GetHeight ();

int ballon_breite = Math. Round (Massstab * ImageWidth);
        int ballon_hoehe = Math. Round (Massstab * ImageHeight);

int Links = Zufallsgenerator. nextInt (spielerbereich_breite-ballon_breite);
        int oben = zuflagesgenerator. nextInt (spielerbereich_höhe-ballon_hoehe);

Ballon = neues ImageView (stirbt);
        Ballon. setImageResource (R. drawable. ballonbild);
        Ballon. setOnClickListener (stirbt);

params. LeftMargin = Links;
params. tomargin = oben;
params. Gravitation = Schwerkraft. Top + Schwerkraft. Left;

Spielerbereich. AddView (Ballon);
    }

privatevoid gameOver () {
        Dialogfelddialog
        gestartet = falsch;
        Fertig ();
    }

@Override
    publicvoid OnClick (Ansicht anzeigen) {

}

@Override
    publicvoid Run () {
        zeitHerunterZaehlen ();
    }
}</Zufallszahl)>
...zur Antwort

warum kannst du nicht einfach 4 jahre warten🤔

...zur Antwort

schreib ihn an mit

miffbusters

er wird schon wissen was das heißt

...zur Antwort