Beiträge von killphil75

    Kein Problem,


    am besten du lässt unten in Eclipse immer das LogCat mit offen, da siehst du zum Beispiel wenn Zugriffe auf Funktionen ohne Berechtigungen erfolgen - Eclipse wirft dann Exceptions in oranger Farbe, damit findet man solche Fehler immer relativ schnell.

    Also Email ist eventl nicht wirklich ratsam weil nicht jeder hat einen Email Client auf dem Androidgerät (nicht lachen, ist mir schon selber untergekommen)
    und obendrein als Klartextinfo oder XML ist ja auch nicht so schön.


    Da du eine Umfrage machst, soll die ja sicherlich hinterher auch ausgewertet werden. Das schreit also förmlich nach einer Datenbank.


    Ich würde die Daten also alle zusammensammeln und per HTTP Request an ein PHP Skript schicken, welches mir meine externe MySQL Datenbank befüllt. Damit hast du die Daten im Netz und kannst weiter damit arbeiten.



    HTTP Request (POST / GET) steht hier schon zig mal im Forum, ist ganz einfach einzubinden.


    oder auch hier


    http://www.androidsnippets.com…t-request-with-httpclient

    Was für eine Fehlermeldung wirft er den ??? (Ausgabe LogCat/Console)


    Java
    public void onCreate(Bundle savedInstanceState) {
        	super.onCreate(savedInstanceState);
        	setContentView(R.layout.main);
        	
    		Context context = getApplicationContext();
    		Vibrator v = (Vibrator) getSystemService(context.VIBRATOR_SERVICE);		
    		v.vibrate(3000);
    	
    	}




    Also das funktioniert hier ohne Probleme, dann liegt dein Fehler bestimmt noch wo anders.

    Du hast Dir ja deine Datenbankfunktionen in einer Klasse gekapselt, dort kannst du Dir auch weitere Funktionen reinschreiben und nutzen.


    Java
    if (a.moveToFirst()) {
            	hp2= a.getInt(2);
            	dmg2= a.getInt(1);


    Solch ein Konstrukt wird schnell unübersichtlich und wenn du DIch mal verschreibst baust du dir einen Fehler ein, welchen du nur schwer findest.


    Ich würd mir in der DB Klasse gleich eine Funktion einbauen


    compare_units(int idx1, int idx2)
    {
    Hier beide Datensätze holen
    Vergleichen -> Kampf (am besten Aufruf -> andere Klasse)
    Rückgabe des Gewinners, -> Bereinigung Verlierer
    }



    Die Kampfsimulation basiert ja dann aucf einfachen Vergleichen, eventl noch Zufall ala Moral,Glück das sollte man wieder am besten in eine Klasse kapseln.

    Warum erstellst du von deiner Activity ein objekt bzw Instanz ???


    Java
    TesgtActivity ob1 = new TesgtActivity();
        	
        	ob1.machan();



    Das ist Blödsinn. machan ist eine Routine in deiner Klasse und kann Direkt aufgerufen werden.



    Context bekommst zb DeineActivity.this oder per getApplicationContext

    Zitat

    Stelle ich mir das ganze richtig, zu kompliziert/zu einfach vor? Was
    wäre die Herangehensweise in einem Spiel ähnlich zu Super Mario?


    Es wäre bereits eine große Hilfe, wenn ihr mir sagen könnten wie man
    sowas überhaupt nennt. Mit Stichworten wie "Level programming" oder
    "Level development" konnte ich bei Google nichts finden.

    Also kurz zu deinem Spaceinvaders-Klon, die Angriffswellen von Feinden machen ja meist eine Bewegung, diese Bewegung legst du als Koordinaten in einer Tabelle ab. (oder auch als Funktion, schöne sanfte Bewegungen erreicht man zB mit Sinusspielerreien)


    Ein Spiellevel könnte jetzt ja so aussehen -> Start -> Countdown bis zur ersten Welle -> Countdown zu nächsten Welle ect


    Hier könntest du dir zb. eine Arraylistnehmen und die mit deiner "eigenen" Gamesprache füllen. (zb. ein Objekt was den Countdown enthält, Die Art der Feinde und die Bewegung der Feinde, Punkte der Welle)


    Wenn jetzt der Level startet - läuft halt ein Counter mit und du arbeitest nach und nach deine Arrayliste ab.


    -----------------------


    Mario: Die Spielfelder in so einem Spiel kann man meist als 2dimensionales Array (x,y) darstellen. Die Spielewelten bestehen meist aus Blöcken (feste Höhe Breite) und werden aus Sprites (einzelne Blöcke, Objekt) aufgebaut. Damit kann man aus wenigen Teilen riesige Spielwelten erzeugen


    -> das nennt man auch Tile-Engine (Google-Tipp)



    Tja und wenn dein x,y größer als der Bildschirm ist, kannst du auch super scrollen und stellst immer nur den Teil dar, der wirklich sichtbar ist.

    Genau , du kannst ein Linearlayout zusammenbauen (zb mit 5 Textfeldern) und dieses wieder in eine Tabellenspalte packen.


    Ich habe nur gefragt um für mich selbst ein besseres Bild zu haben, was du überhaupt vorhast.
    Die Layoutparameter kannst du aber auch zur Laufzeit setzen. siehe Code.





    Java
    if(tabelle != null && tabelle.size() > 0){			 	
           		TableLayout tl = (TableLayout) findViewById(R.id.tableLayout1);
           		tl.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
           		tl.setColumnStretchable(1, true);
           		tl.setColumnShrinkable(1, true);
         	
           		// Header zeichnen - 1.Zeile
          		TableRow trh = new TableRow(context);
          		trh.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
          		trh.setBackgroundColor(Color.rgb(230,230,230));

    Hmm denk denk


    also deine Textfelder stecken in 5 Spalten oder in 1 Spalte ???


    Normalerweise kannst du ja bei Textfelder/Button auch ein Fill_Parent vergeben dann hast du in deinem Fall den selben Effekt wie layout_weight=1.
    Die würden sich dann an die Breite deiner Tabellenspalten anpassen.
    Per Layoutparameter kannst du auch der Tabelle mit teilen, welche Spalten shrinkable seien sollen.

    Warum setzt du den Inhalt deiner ersten Tabellenzeile auf weight=1 ???


    Der Inhalt einer Tabellenzeile sollte doch immer "wrap_content" sein, damit du den ganzen Inhalt siehst.
    Falls die Tabelle länger/größer wird solltest du das gesamte Tabellenkonstrukt noch in einen ScrollView packen.

    Zitat

    Es gibt zwar ein WebView der sowas ähnliches macht, aber immer eine URL als Quelle benötigt.....

    Diese Aussage ist nicht richtig, du kannst gut und gerne lokale Dateien (SD Card, Assets) in deinen WebView laden und der unterstützt super
    die Zoomgeste


    http://developer.android.com/r…droid/webkit/WebView.html


    loadDataWithBaseURL ist dein Freund


    oder auch wenn es nur ein STring sein soll


    String summary ="<html><body>You scored <b>192</b> points.</body></html>";
    webview.loadData(summary,"text/html",null);