Ich kann schon recht gut Java programmieren(auch spiele) und wollte es jetzt einmal mit Android versuchen. Dabei hatte ich ein Tutorial das ich (zumindest so ungefähr) befolgt habe. Nur bin ich nicht weit gekommen es funktioniert nämlich nicht mal das zeichnen:-(
Könnte bitte mal wer schauen was da falsch ist? Ich habe folgende 2 Klassen:
Code
public class GameView extends SurfaceView implements Runnable{
Thread gameThread;
boolean gameRunning;
private SurfaceHolder sh;
private Canvas c;
private Bitmap ball;
private Context context;
private int xBall=50,yBall=50;
public GameView(Context context, AttributeSet attrs) {
super(context, attrs);
this.context=context;
sh=this.getHolder();
}
public void initializations() {
c=new Canvas();
ball = BitmapFactory.decodeResource(context.getResources(), R.drawable.ball);
Paint p=new Paint(Color.BLUE);
c.drawCircle(this.getWidth()/2f,this.getHeight()/2f,100f, p);
c.drawARGB(0, 0, 0, 255);
}
@Override
public void run() {
Log.d("in Game View run","spiel gestarted");
while(gameRunning){
c=null;
c=sh.lockCanvas(null);
doDraw();
if(c!=null){
sh.unlockCanvasAndPost(c);
}
}
}
public void doDraw(){
c.drawARGB(0, 0, 0, 255);
c.drawBitmap(ball,xBall,yBall,new Paint());
}
public GameView getThis(){
return this;
}
}
Alles anzeigen
und
Code
public class GameLogic extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
private static final int menuStart=Menu.FIRST,menuExit=Menu.FIRST+1;
@Override
public boolean onCreateOptionsMenu(Menu menu){
menu.add(0,menuStart,0,"Start");
menu.add(0,menuExit,0,"EXIT");
return true;
}
private GameView gv;
@Override
public boolean onOptionsItemSelected(MenuItem mi) {
switch(mi.getItemId()){
case menuStart: Toast.makeText(this, R.string.game_started, Toast.LENGTH_LONG).show();
gv=(GameView) findViewById(R.id.game);
gv.gameRunning=true;
gv.initializations();
gv.gameThread=new Thread(gv);
gv.gameThread.start();
return true;
case menuExit: System.exit(0); return true;
}
return false;
}
}
Alles anzeigen
ich habe da auch ziemlich viel ausprobiert, aber warum geht das zeichnen nicht? Kann sich das wer anschauen?
Danke, Gruß fleckdalm
Edit:
in der layout datei wird natürlich auch die view klasse angezeigt!
Wie macht man eigentlich das das ganze im Querformat und vollbild ist(also so wie die meisten spiele)?