Neue Klasse (Raum) in Run() laden

  • Heyho! :)


    bin soeben am verzweifeln bei einem doch recht gängigen Prozess, wie ich annehme :P


    Zu meinem Problem: In meinem Spiel gibt es mehrere Lvls, und wenn man das eine geschafft hat soll man direkt in das zweite kommen. Ich weiß zwar, wie man mit einer Liste (


    Code
    String classes[] = { "Test", "Test2",...};
    @Override
    	protected void onListItemClick(ListView l, View v, int position, long id) {// TODO Auto-generated method stub
    		super.onListItemClick(l, v, position, id);  String menuliste = classes[position]; try{ Class ourClass = Class.forName("com.salmii.testx." + menuliste);
    		Intent ourIntent = new Intent(menu.this, ourClass);
    		startActivity(ourIntent);}catch(ClassNotFoundException e){  e.printStackTrace();			
    		}  }


    )
    in eine andere Klasse kommt, nicht aber bei Run(). Den Code für die Liste hab ich natürlich auch schon probiert bei Run() einzusetzen, funktionierte jedoch klarerweise nicht ^^ ...


    Außerdem noch eine Frage, auch im normalen Menü möchte ich eine attraktivere Darstellung des ganzen, daher möchte ich in Zukunft auf diese Liste verzichten. Muss ich demnach die Klasse mit SurfaceView extendieren oder gibt es da einen anderen Trick? :D



    Vielen Dank für eure Hilfe!


    MfG


    PS: Sollte man das auf einfache weiße ergooglen können, bitte sagt mir nur die Stichwörter denn ich konnte mit meinen Versuchen nichts brauchbares finden ^^

  • Leider verstehe ich nur Bahnhof, da besagtes Run() nicht mal in deinem Codeschnipsel auftaucht und somit niemand wirklich erahnen kann was du willst.


    Ich versuchs mal mit der Glaskugel. Du hast ein Spiel und in diesem Spiel läuft ein Gameloop.
    Normalerweise löst man das über eine Schleife im Background.


    als isRunning = true


    while / do
    {
    blah blup
    }



    Wenn Running nicht mehr true ist, dann ist der Level vorbei und du musst halt mehrere Varianten abtesten.



    if (Levelfail==true){


    level bleibt gleich
    starte spiel erneut


    }
    else {
    // Level wurde geschafft


    gesamt punkte = gesamtppunkte + levelpunkte;
    level = level +1


    lade neuen Level
    starte Gameloop erneut
    }

  • Sorry, dass ich mich da etwas umständlich formuliere... Ich weiß immerhin selbst nicht genau, wie man das erklären kann...


    Ich will vom Menü aus ein Lvl laden, z.B. wenn man auf die Koordinate x y + jeweils 50 klickt kommt man in das erste lvl etc.
    ... Eine etwas andere Frage die aber auch als Antwort zu meinem eigentlichen Problem dienen kann:


    Kann/Soll ich die App aus nur einer Hauptklasse machen, in der Menü und das Spiel an sich zusammengeführt ist? Das Menü würde dann nur am Start gedrawt werden bzw. wenn man dorthin zurückgeht etc. Natürlich sind gewisse Codeteile auch in anderen Klassen verteilt...


    Vielen Dank! :)


    MfG

  • Also natürlich kann man alles in eine Klasse packen, das dürfte aber relativ schnell unübersichtlich werden und wenn du Sachen änderst, kämpfst du dich jedes Mal durch 1000 Zeilen Code.
    Sinn und Zweck der objektorientierten Programmierung ist es ja wieder verwendbare Elemente/Routinen sinnvoll zu kapseln und in Klassen auszulagern bzw. da wo die Logik es ermöglicht.


    Darunter würde zum Beispiel als erstes das Menü und das eigentliche Spiel fallen.
    Menü hat ja nix mit dem Spiel zu tun, also würde ich das schon mal seperat packen.


    -> Menü
    -> Spiel
    -> Einstellungen
    -> Highscoreliste
    -> Anleitung



    das sind ja alles seperate Bereiche und sollten auch am Besten in eigene Klassen/Activities gepackt werden.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!