1. Gewinne jetzt ein UMiDIGI C Note - alle Informationen findest du hier!!
  1. kapi, 22.01.2010 #1
    kapi

    kapi Threadstarter Neuer Benutzer

    Hey Community!

    Ich hoffe ich bekomme hier hilfe hab 5 tage zeit ein Mühlespiel für Android zu entwickeln. Das erste Problem steht jetzt leider schon an, ich versuche in der Klasse (siehe unten) ein Viereck als auswahl zu machen und mittels dem key_down event durch die arrays zu navigieren um dann auszuwählen wo man den stein setzt nur funktioniert dass nich. Anbei der Code

    Code:
    package at.fhj.itm;
    
    import org.apache.http.client.CircularRedirectException;
    
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Paint;
    import android.graphics.Rect;
    import android.view.KeyEvent;
    import android.view.View;
    
    public class GameView extends View {
    
        private final Game game;
    
        public static final char SCHWARZ = 'S', SCHWARZ_W = 's';
        public static final char WEISS = 'W', WEISS_W = 'w';
        public static final char LEER = ' ';
    
        public static final int AUSWAEHLEN = 0;
        public static final int ZIEHEN = 1;
        public static final int WEGNEHMEN = 2;
        
        private final Rect  selrect = new Rect();
        
        private int selX=0, selY=0;
        
        static final int[] koordX = {
            20, 145, 270, 270, 270, 145, 20, 20, // 0-7
            60, 600, 600, 600, 400, 200, 200, 200, // 8-15
            100, 500, 500, 500, 400, 300, 300, 300 // 16-23
        };
        
        static final int[] koordY = {
            20, 20, 20, 145, 270, 270, 270, 145, // 0-7
            60, 200, 400, 600, 600, 600, 400, 200, // 8-15
            100, 300, 400, 500, 500, 500, 400, 300 //16-23
        };
    
        static final char[] spielfeld = {
            ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 0-7
            ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 8-15
            ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' //16-23
        };
    
        
        public GameView(Context context) {
            super(context);
            this.game = (Game) context;
            setFocusable(true);
            setFocusableInTouchMode(true);
        }
    
       protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    
           }
    
    
        @Override
        protected void onDraw(Canvas canvas) {
            Paint background = new Paint();
            background.setColor(getResources().getColor(R.color.background));
            canvas.drawRect(0, 0, getWidth(), getHeight(), background);
                    
            drawBoard(canvas);
            
            Paint red = new Paint();
            red.setColor(getResources().getColor(R.color.selected));
            
            select(0, 0);
            
            canvas.drawRect(selrect, red);
        }
    
    
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
    
            
            
             switch (keyCode) {
              case KeyEvent.KEYCODE_DPAD_UP:
                  select(selX+1, selY+1);
                 break;
              case KeyEvent.KEYCODE_DPAD_DOWN:
                  select(selX-1, selY-1);
                 break;
              default:
                  return super.onKeyDown(keyCode, event); 
             }
             
             return true;
         
            
        }
        
           private void select(int x, int y) {
                  invalidate(selrect);
                  selX = koordX[x];
                  selY = koordY[y];
                  getRect(selX, selY, selrect);
                  invalidate(selrect);
               }
    
        
    
    
    
           private void getRect(int x, int y, Rect rect) {
               rect.set(koordX[x]-8,koordY[x]-8,koordX[x]+8,koordY[x]+8);
           }
    
    
        private void drawBoard(Canvas canvas) {
            Paint black = new Paint();
            Paint white = new Paint();
            black.setColor(getResources().getColor(R.color.text));
            white.setColor(getResources().getColor(R.color.background));
            
            canvas.drawRect(20, 20, 270, 270, black);
            canvas.drawRect(22, 22, 268, 268, white);
            
            canvas.drawRect(50, 50, 240,240, black);
            canvas.drawRect(52, 52, 238,238, white);
            
            canvas.drawRect(80, 80, 210,210, black);
            canvas.drawRect(82, 82, 208,208, white);
            
            canvas.drawRect(20, 143, 80    , 145, black);
            canvas.drawRect(210, 143, 270, 145, black);
            canvas.drawRect(145, 20, 147, 80, black);
            canvas.drawRect(145, 210, 147, 270, black);
            
        }
    }
    
    Ich hoffe ihr könnt mir schnell helfen.
    LG Kapi
     
  2. szallah, 22.01.2010 #2
    szallah

    szallah Android-Lexikon

    da ich selbst anfänger bei android bin kann ich beim problem nicht wirklich helfen.
    generell würden sich für den zweck aber glaub ich ohnehin zweidimensinale array anbieten anstatt zwei einzelne...
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Hilfe bei Fehler in Quellcode benötigt Android App Entwicklung Freitag um 23:01 Uhr
[OFFEN] Android Spiel Android App Entwicklung Freitag um 09:34 Uhr
[OFFEN] Android Studio Ram voll nach 5h arbeit Android App Entwicklung 15.06.2017
[OFFEN] Android Studio - Code Style Android App Entwicklung 08.06.2017
[OFFEN] SharedPreferences und ViewPager, unique key Android App Entwicklung 06.06.2017
[OFFEN] Android Icon Pack dynamisch erstellen Android App Entwicklung 05.06.2017
[ERLEDIGT] Android 7 nougat merkwürdiges Verhalten URL HttpURLConnection %27 Android App Entwicklung 31.05.2017
[OFFEN] Android Studio - Apk-Generierung dauert sehr lange Android App Entwicklung 26.05.2017
[ERLEDIGT] Eine Klasse um das aufrufen anderer Intents zu regeln Android App Entwicklung 24.05.2017
[OFFEN] git-Problem in Android Studio (Windows) Android App Entwicklung 24.05.2017