Permalänk
Medlem

Problem med androidspel

Suttit och kodat lite på början till ett spel mha android,dock så funkar det inte att köra av någon anledning (processen bara dör direkt när jag försöker köra det på min htc desire) och jag har ingen aning om varför (får inget felmeddelande eller dyl i eclipse). Vänder mig därför hit för jag kan inte klura ut vad som är fel. Inte speciellt mycket kod än,bara försökt rita ut 2 tiles på skärmen.

package sebastianlundin.pacman; import sebastianlundin.pacman.Controller.MasterController; import android.app.Activity; import android.os.Bundle; import android.view.Window; import android.view.WindowManager; public class MainActivity extends Activity { MasterController m_game; /** Called when the activity is first created. */ @Override public void onCreate(Bundle SavedInstanceState) { super.onCreate(SavedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); m_game = new MasterController(this); setContentView(m_game); } }

package sebastianlundin.pacman.Controller; import android.os.Handler; import android.os.Message; public class RefreshHandler extends Handler { private IUpdateable m_iUpdateable; public RefreshHandler(IUpdateable a_iUpdateable) { m_iUpdateable = a_iUpdateable; } @Override public void handleMessage(Message a_message) { m_iUpdateable.update(); } public void sleep(long a_delayMilliS) { this.removeMessages(0); sendMessageDelayed(obtainMessage(0), a_delayMilliS); } }

package sebastianlundin.pacman.Controller; public interface IUpdateable { public void update(); }

package sebastianlundin.pacman.Controller; import sebastianlundin.pacman.Model.Game; import sebastianlundin.pacman.View.GameView; import android.content.Context; import android.graphics.Canvas; import android.view.View; public class MasterController extends View implements IUpdateable { private RefreshHandler m_rHandler; private Game m_game; private GameView m_gameView; public MasterController(Context a_context) { super(a_context); m_game = new Game(a_context); m_gameView = new GameView(a_context); m_rHandler = new RefreshHandler(this); m_rHandler.sleep(20); } protected void onDraw(Canvas a_canvas) { super.onDraw(a_canvas); m_gameView.drawGame(m_game, a_canvas); } public void update() { m_rHandler.sleep(20); this.invalidate(); } }

package sebastianlundin.pacman.Model; import android.content.Context; public class Game { public Map m_map; public Game(Context a_context) { m_map = new Map (a_context); } }

package sebastianlundin.pacman.Model; import sebastianlundin.pacman.R; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; public class Map { private Context m_context; public Bitmap[] m_tileArray = new Bitmap[10]; public int[][] m_tileGrid; public float m_tileSize = 1; public final int m_xTileCount = 20; public final int m_yTileCount = 33; public float m_xOffset; public float m_yOffset; private Level m_level = new Level(); private int[] m_levelLayout; public Map(Context a_context) { m_context = a_context; m_xOffset = m_tileSize / 2; m_yOffset = m_tileSize / 2; m_levelLayout = m_level.levelLayout(1); m_tileGrid = new int[m_xTileCount][m_yTileCount]; initiateTiles(); } public Bitmap[] getTileArray() { return m_tileArray; } private void updateMap() { int i = 0; for(int y = 0; y < m_yTileCount; y++) { for(int x = 0; x < m_xTileCount; x++) { setTile(m_levelLayout[i], x, y); i++; } } } private void initiateTiles() { loadTile(1, R.drawable.level_tile); updateMap(); } private void loadTile(int a_key, int a_tile) { Bitmap loadedTile = BitmapFactory.decodeResource(m_context.getResources(), a_tile); m_tileArray[a_key] = loadedTile; } private void setTile(int a_tileIndex, int x, int y) { m_tileGrid[x][y] = a_tileIndex; } }

package sebastianlundin.pacman.View; import sebastianlundin.pacman.Model.Game; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.View; public class GameView extends View { private MapView m_mapView; private Paint m_paint; public GameView(Context a_context) { super(a_context); } public void drawGame(Game a_game, Canvas a_canvas) { m_mapView.drawMap(a_game.m_map, a_canvas); drawBackground(a_canvas); } private void drawBackground(Canvas a_canvas) { m_paint.setStyle(Paint.Style.FILL); m_paint.setColor(Color.BLACK); a_canvas.drawPaint(m_paint); } }

package sebastianlundin.pacman.Model; public class Level { public int[] levelLayout(int a_levelID) { switch(a_levelID) { case 1: return new int[] { 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, }; default: return null; } } }

package sebastianlundin.pacman.View; import sebastianlundin.pacman.Model.Map; import android.graphics.Canvas; import android.graphics.Rect; public class MapView { public void drawMap(Map a_map, Canvas a_canvas) { Rect r = new Rect(); for (int x = 0; x < a_map.m_xTileCount; x++) { for (int y = 0; y < a_map.m_yTileCount; y++) { if (a_map.m_tileGrid[x][y] > 0) { a_canvas.drawBitmap(a_map.m_tileArray[a_map.m_tileGrid[x][y]], null, r, null); } } } } }

Visa signatur

Acer Aspire 5551G @ Ubuntu 12.04

Permalänk
Medlem

Det löste sig,går bra att stänga igen tråden.

Visa signatur

Acer Aspire 5551G @ Ubuntu 12.04

Permalänk
Medlem

Vad var problemet ?

Visa signatur

Burk Nr.1 : Asus P8Z68 V-Pro | i7 2600k @ 4,4 | EVGA GTX780 Classified | Corsair Vengeance 8GB DDR3 1600Mhz | Corsair Obsidian 650D | Corsair TX650M | Corsair H100

Burk Nr.2 : MSI P35 Neo2 | Core 2 Duo E6850 @ 3,2Ghz | Powercolor Radeon HD5850 1GB | Corsiar Twin2X 6400 2x2GB | Corsair 550W

Permalänk
Medlem

Det lättaste när du utvecklar för android är att kolla i logcaten där du kan se exakt vilken rad i koden som felar