M
menseken
Neues Mitglied
- 0
Hallo!
ich habe vor 2 1/2 J. eine einfache MahJong-App für ein Tablet, 800x600, gebaut - eher für den Eigengebrauch.
(Mein ursprünglich in JavaScript geschriebenes Teil hatte ich über ein "Game-Template" an Android angepasst.)
JETZT! habe ich endlich ein gutes Photo-Smartphone (Xperia S), aber natürlich sieht meine alte App nicht gut aus.
Bei höherer Auflösung als das Tablet ist die Anzeige "analog" gleich groß, sodass etwa das linke obere Viertel des Screens dargestellt wird (erstaunlicherweise funktionieren aber Klicks ).
Sämtliche Grafik inkl. Steine liegen einfach in "res/drawable".
Wie also skaliere ich den HG und die MahJong-Steine?
Folgendes steht im layout/main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<de.cle.menseken.mahjong.MahView
android:id="@+id/game" android:layout_marginTop="-25dp"
android:layout_width="600dp" android:layout_height="800dp" />
In "MahJonG.java" steht am Anfang:
public class MahJonG extends Activity {
private GameThread mGThr; /** A handle to the thread that's actually running the animation. */
private MahView mMahView; /** A handle to the View in which the game is running. */
In "MahView.java" steht u.a.:
private void doDraw(Canvas canvas) { z=0;
canvas.drawBitmap(majo_bg, 0, 0, null); // Hintergrund
private void doDraw(Canvas canvas) {
for (int i=0;i<8;i++) for (int j=0;j<9;j++)
for (int k=0;k<7;k++) {
if (mJall[j][k][0]<100) {
if (k==0) X +=100;
canvas.drawBitmap(mahBitmaps [mJall[j][k][0]], i*62-k*8+L0, j*67-k*8+T0, null); // setzt Steine an berechnete Positionen
Ich habe erst gestern meinen alten Code wieder angesehen: momentan fehlt mir ein bisschen der exakte Überblick, was wichtig sein könnte zum Helfen oder Verstehen.
Ich entschuldige mich für meine momentane Ahnungslosigkeit, bitte aber trotzdem von Kommentaren a la "lies das fucking-manual!" abzusehen.
Vielleicht findet sich ein großmütiger Helfer, der mir eben schnell auf die Sprünge hilft ?!?
Das wäre überaus net!t!t!t ...
menseken
(Mein ursprünglich in JavaScript geschriebenes Teil hatte ich über ein "Game-Template" an Android angepasst.)
JETZT! habe ich endlich ein gutes Photo-Smartphone (Xperia S), aber natürlich sieht meine alte App nicht gut aus.
Bei höherer Auflösung als das Tablet ist die Anzeige "analog" gleich groß, sodass etwa das linke obere Viertel des Screens dargestellt wird (erstaunlicherweise funktionieren aber Klicks ).
Sämtliche Grafik inkl. Steine liegen einfach in "res/drawable".
Wie also skaliere ich den HG und die MahJong-Steine?
Folgendes steht im layout/main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<de.cle.menseken.mahjong.MahView
android:id="@+id/game" android:layout_marginTop="-25dp"
android:layout_width="600dp" android:layout_height="800dp" />
In "MahJonG.java" steht am Anfang:
public class MahJonG extends Activity {
private GameThread mGThr; /** A handle to the thread that's actually running the animation. */
private MahView mMahView; /** A handle to the View in which the game is running. */
In "MahView.java" steht u.a.:
private void doDraw(Canvas canvas) { z=0;
canvas.drawBitmap(majo_bg, 0, 0, null); // Hintergrund
private void doDraw(Canvas canvas) {
for (int i=0;i<8;i++) for (int j=0;j<9;j++)
for (int k=0;k<7;k++) {
if (mJall[j][k][0]<100) {
if (k==0) X +=100;
canvas.drawBitmap(mahBitmaps [mJall[j][k][0]], i*62-k*8+L0, j*67-k*8+T0, null); // setzt Steine an berechnete Positionen
Ich habe erst gestern meinen alten Code wieder angesehen: momentan fehlt mir ein bisschen der exakte Überblick, was wichtig sein könnte zum Helfen oder Verstehen.
Ich entschuldige mich für meine momentane Ahnungslosigkeit, bitte aber trotzdem von Kommentaren a la "lies das fucking-manual!" abzusehen.
Vielleicht findet sich ein großmütiger Helfer, der mir eben schnell auf die Sprünge hilft ?!?
Das wäre überaus net!t!t!t ...
menseken