icon_Android_35x35

Neues Tablet und Unterstützung von 180° Drehung

Nach langer Wartezeit ist es endlich angekommen, mein Acer A510. Bisher bin ich sehr zufrieden mit dem Gerät, lediglich der USB-Anschluß ist an einer sehr ungünstigen Stelle, nämlich der Unterseite des Geräts. Praktisch für eine Docking-Station, aber sehr ungünstig für Debugging per USB, da ich das Tablet nicht schräg auf den Tisch stellen kann. Zum Glück ist Android schlau genug, um mit 180° Drehungen des Geräts umgehen zu können, sodass der Anschluß ganz einfach auf die “Oberseite” gelangt. Leider unterstützen nicht alle Apps (meine eingeschlossen) eine 180° Drehung, da diese Eigenschaft erst mit Gingerbread eingeführt wurde.

Auf der Suche nach einer Möglichkeit Conveyors weiterhin ausschließlich im Landscape-Modus zu betreiben, aber zugleich 180° Drehungen zu erlauben bin ich auf das Problem gestoßen, dass im AndroidManifest nur eine ScreenOrientation angegeben werden kann. Um die 180° Drehung zu ermöglichen, muss diese auf sensorLandscape gesetzt werden, da diese Eigenschaft aber erst mit Gingerbread eingeführt wurde ignorieren ältere Android-Versionen diese Angabe. Das führt dazu, dass ältere Geräte die Activity wahlweise im Landscape- oder Portrait-Modus darstellen. Da der Portrait-Modus für Conveyors nicht funktioniert ist dies keine Lösung und eine abwärtskompatible Lösung musste her. Diese habe ich auch gefunden:

Im AndroidManifest setzt man screenOrientation=”sensorLandscape” und überschreibt diesen Wert im Falle einer älteren Version von Android in Activity.onCreate:

 

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	if (Build.VERSION.SDK_INT < Build.VERSION_CODES.GINGERBREAD)
		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}

 

Veröffentlicht unter Android | Hinterlasse einen Kommentar
conveyors-thumbnail

Conveyors Version 2.3

Seit längerer Zeit hat sich mal wieder etwas getan an Conveyors. Es gibt nun ein Bonuslevel und ein paar Bugfixes. Das Bonuslevel kann man freischalten, wenn man die ersten 5 Level bereits gespielt hat und anschließend eine Bewertung des Spiels über den neuen Link im Startmenü vornimmt.

 

Veröffentlicht unter Android, Conveyors | 1 Kommentar
icon_Android_35x35

Workaround für Corner-Bug in Android

In Android kann man per XML relativ einfach die Darstellung von Buttons, Hintergründen usw. ändern. Um z.B. im Hintergrund ein Rechteck mit abgerundeten Ecken auf der rechten Seite zu zeichnen, legt man im res/drawable Verzeichnis eine neue Definition für ein Shape an:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <corners
        android:bottomLeftRadius="0dp"
        android:bottomRightRadius="10dp"
        android:topLeftRadius="0dp"
        android:topRightRadius="10dp" />
    <solid android:color="#55000000" />
    <stroke
        android:width="1dp"
        android:color="#77000000" />
</shape>

So zumindest die Theorie. In der Praxis stellt sich heraus, dass die rechte obere und die linke untere Ecke abgerundet werden. Dies ist auf einen Bug in Android zurückzuführen, bei dem bottomLeftRadius und bottomRightRadius vertauscht wurden. Mit diesem Wissen ist es natürlich keine große Herausforderung die beiden Eigenschaften einfach ebenfalls vertauscht anzugeben. Allerdings wurde der Bug in der Android Version 3.1 behoben. Für alle Versionen ab 3.1 müssen die Eigenschaften somit umgekehrt angegeben werden, als in den Versionen zuvor.

Um die Eigenschaften in der für jede Version notwendigen Weise anzugeben, kann man einen zusätzlichen Ordner res/drawable-v12 erstellen und die betroffenen XML Dateien in diesen kopieren. Wird die App auf einem Gerät mit einer Android Version höher 3.1 (API-Level 12) ausgeführt, werden Dateien in res/drawable-v12 bevorzugt geladen und gleichnamige Dateien in res/drawable ignoriert.

Veröffentlicht unter Android | Hinterlasse einen Kommentar

AndEngine & Tiled – Zwischenbilanz nach 5 Stunden

Gestern habe ich angefangen mir AndEngine mal näher anzuschauen. Das Ergebnis nach ungefähr 5 Stunden Aufwand spricht wie ich finde für sich. Dank der Integration des tmx-Formats lassen sich Kachelkarten, die bequem mit dem Editor Tiled erzeugt werden können, mit wenig Konfiguration verwenden. Die Beispielanwendung an der ich mich orientiert habe findet ihr hier. Sobald ich mit der Bibliothek etwas tiefgehender vertraut bin, werde ich meine daraus extrahierten Ansätze hier vorstellen. Aktuell bin ich in der Lage Kacheln, Kollisionsbereiche und die Spielerstartposition aus TMX auszulesen und die Spielfigur anschließend durch das Level zu bewegen.

Mal sehen, vielleicht gibts ja demnächst ein neues Spiel für Android von mir ;-)

Veröffentlicht unter AndEngine, Android | Hinterlasse einen Kommentar

Beliebige Karten mit OpenLayers darstellen

Heute will ich zeigen, wie einfach man mit Hilfe von OpenLayers polygonbasierte Karten im Browser darstellen kann. Die Möglichkeit mit diesen zu interagieren bekommt man bei OpenLayers zusätzlich geschenkt. Die Karten, die ich darstellen möchte, habe ich nach dem im vorigen Post beschriebenen Verfahren erzeugt.

Die erzeugte Karte exportiere ich im KML-Format. OpenLayers ermöglicht es, Repräsentierungen in KML direkt als Layer einzufügen und einzelne Elemente zu selektieren. Ergänzt durch die Möglichkeit die Darstellung der Kartenelemente anpassen zu können bringt OpenLayers bereits alles mit, um Karten nach eigenem belieben zu gestalten. Weiterlesen

Veröffentlicht unter Tutorials | Hinterlasse einen Kommentar

Tutorial zur Erstellung polygonbasierter Karten

In diesem Beitrag möchte ich erklären, wie man polygonbasierte Karten erzeugen kann. Die Art und Weise, wie man diese erzeugen kann, habe ich aus dem Blog-Post von Amit Patel übernommen. Ich werde auf die ersten Schritte detailliert eingehen und mit Code-Beispielen in Java versuchen die Nachimplementierung einfach zu gestalten. Amit Patel hat die Generierung in Actionscript geschrieben. Wem das eher liegt kann sich seinen Code hier anschauen. Vorerst beschreibe ich nur die notwendigen Schritte, um eine polygonbasierte Karte zu erstellen. Sofern ich es für eigene Spielideen benötige, folgt hier gegebenenfalls eine Beschreibung der weiteren Schritte zur Anreicherung der Karten durch Höheninformationen, Gewässer und Flüsse. Weiterlesen

Veröffentlicht unter Tutorials | Hinterlasse einen Kommentar

Tutorial zur Erstellung von Geländegrafiken

The video cannot be shown at the moment. Please try again later.

Da ich auf Interessenten gestoßen bin, beschreibe ich hier wie ich die Grafiken für die Karte, die im Video oben zu sehen ist, erstellt habe. Das Erstellen selbst erfordert in der hier beschriebenen Art keine besonderen Kenntnisse von einem Grafikprogramm wie Gimp oder Photoshop. Die Qualität des Ergebnisses hängt primär von der guten Texturauswahl und der Geduld des Erstellers ab, denn eine Fleißarbeit ist es auf jeden Fall. Ich halte mich bei der Beschreibung an Gimp, jedoch sind die Schritte in Photoshop sehr ähnlich durchführbar. Weiterlesen

Veröffentlicht unter Tutorials | 1 Kommentar
conveyors-thumbnail

Veröffentlichung im Android Market

Conveyors gibt es jetzt auch im Android Market von Google.

Veröffentlicht unter Android, Conveyors | Hinterlasse einen Kommentar
conveyors-thumbnail

Überarbeitete Levelauswahl und neues Level

Die gerade veröffentlichte Version 1.9 enthält eine komplett überarbeitete Levelauswahl, die genügend Platz für eine zukünftige Auswahl von Spielmodi bietet. Neu ist außerdem die Anzeige der benötigten Zeit für ein Level, sowie die Einstufung anhand von Sternen, wie gut diese persönliche Bestzeit wirklich ist (lasst es mich wissen, wenn ihr meine Zeiten schlagen könnt ;-)).

Außerdem komme ich meiner Ankündigung nach und habe ein neues Level, das Gebrauch von unterschiedlich schnellen Förderbändern macht, mit hineingepackt. Da die Kisten teils wieder in falscher Reihenfolge angeliefert werden, entpuppt sich dieses Level als äußerst knifflig und wird einige Anläufe erfordern bis man es lösen kann. Um eine Zeit, die 3 Sterne würdig ist, zu erreichen braucht man dann noch etwas mehr Übung.

Veröffentlicht unter Android, Conveyors | Hinterlasse einen Kommentar
conveyors-thumbnail

Förderbänder mit unterschiedlicher Geschwindigkeit

Version 1.8 ist raus und bringt ein neues Feature mit sich: Förderbänder in unterschiedlichen Geschwindigkeiten. Das neue Level in Version 1.8 zeigt die neue Funktion. Die nachfolgenden Levels werden dann wieder schwieriger und werden von den neuen Möglichkeiten gebrauch machen. Eine kleine Änderung, die in Level 9 ebenfalls zu sehen ist, sind die in verkehrter Reihenfolge bestellten Kisten.

Veröffentlicht unter Android, Conveyors | Hinterlasse einen Kommentar