kostenloser Webspace werbefrei: lima-city


Android Tetris programmieren

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    j*********r

    Hallo!

    Da ich mich mit Java schon ganz gut auskenne und mir zutrauen würde, das Spiel Tetris für Android nachprogrammieren habe ich hier zwei Fragen. Ich entwickle mit Android Studio und wollte die App grundlegend so aufbauen, dass man mit drei Knöpfen in einer Leiste unten spielt (also die Spielsteine dreht bzw. schneller nach unten bewegt).

    Frage 1: Wie lässt sich der Bereich für die Steine bzw. die Steine selbst am Besten realisieren? Einfach ein Grid-Layout und TextView-Bausteine oder gibt es etwas, dass dazu besser geeignet ist?

    Frage 2: Sollte ich hierfür eine Art Game-Loop erstellen (--> In der MainActivity oder besser wo anders?) oder einfach die normalen Events nutzen? Wie sollte man so etwas prinzipiell organisieren (Ich möchte auch verhindern, dass ein Block schon auf einem anderen steht und man ihn dann noch drehen kann, weil man im Letzten Moment das Event ausgelöst hat etc.)?

    mfg
    Jonas
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo Jonas,

    Ich selber entwickle mit Eclipse, ich geh aber mal davon aus, das sich die beiden Editoren ziemlich ähnlich sind.

    Zu Frage 1: Den Bereich für die Steine und die Steine selber würde ich mithilfe eines Canvas realisieren. Mit einem Grid-Layout und TextView-Bausteinen funktioniert es bestimmt auch, aber ich mit einem Canvas ist es vermutlich einfacher.

    Zu Frage 2: Ja, ich würde einen GameLoopThread erstellen, jedoch nicht direkt in der MainActivity, sondern in einer extra Klasse. Damit es nichtmehr möglich ist einen Block zu drehen, wenn er schon auf einem anderen steht, würde ich eine Methode schreiben, die überprüft, ob der Block bereits auf einem Stein steht. Wenn dies der Fall ist, soll es nicht mehr möglich sein diesen Block zu drehen.

    Ich bin zwar kein Java "Profi", falls du noch Fragen hast, darfst du mich aber gerne fragen :-)

    Gruß Nico
  4. willstdueswissen

    Kostenloser Webspace von willstdueswissen

    willstdueswissen hat kostenlosen Webspace.

    Hallo jonas-bayer.
    Android Studio ist für Android optimiert.
    Ich verwende dieses auch.
    Es ist komplett darauf zu geschnitten und ich würde deshalb dieses auch immer empfehlen.
    Außerdem basiert es auf https://www.jetbrains.com/idea/
    und ich bin der Meinug das ist einer der bsten Java Entwicklunsgumgebung, die man so auf dem Markt (kostenlos) bekommt.

    Möchtest du ein Game via Views bauen (reicht für die meißten der Fällen), solltest du dich mit costume Views beschäftigen.
    Dabei baust du dir deine eigene View mit einem Canvas (vergleichbar mit Paint) auf.
    Dort gibt es dann halt Zeichenoptionen wie drawArc oder sonstige sachen.
    Mit einm GridLayout sollte man es nicht realisieren, da dort ein zu großer overhead ensteht.
    Außerdem wäre es wie nkoller schon sagt einfacher mit einem canvas.

    Wenn du ein Game auf OpenGL basis programmieren möchtest empfehle ich dir für Android -> libgdx.

    Für ein kleines Spiel würde ich ich es dennoch noch ein bisschen Größer unterteilen:
    Dennoch grundprinzipiell GameLoopThread als eigene Klasse.
    In einem Fall von Tetris brauchstt du kein collision detection sondern das lässt sich einfach via grid erledigen.
    Was ich jetzt mit Grid meine ist ein multidemsionalles Array
    [
          [0, 0, 0, 0, 0, 0 ,0 ,0 ,0, 0, 0, 0, 0]
        , [0, 0, 0, 0, 0, 0 ,0 ,0 ,0, 0, 0, 0, 0]
        , [0, 0, 0, 0, 0, 0 ,0 ,0 ,0, 0, 0, 0, 0]
        , [0, 0, 0, 0, 0, 0 ,0 ,0 ,0, 0, 0, 0, 0]
        , [0, 0, 0, 0, 0, 0 ,0 ,0 ,0, 0, 0, 0, 0]
        , [0, 0, 0, 1, 1, 0 ,0 ,0 ,0, 0, 0, 0, 0]
        , [0, 0, 0, 1, 1, 0 ,0 ,0 ,0, 0, 0, 0, 0]
    ]

    Das würde ich in einer extra Klasse packen.
    Bei Fragen oder Problemen:
    willstdueswissen dann frag einfach!

    Paar Links im anschluss:
    http://developer.android.com/training/custom-views/index.html
    https://www.proggen.org/doku.php?id=game:start
    https://libgdx.badlogicgames.com/
    http://developer.android.com/guide/topics/graphics/opengl.html
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!