You should use SurfaceView if there will be a limited number of
sprites (~20 sprites). Otherwise, OpenGL is better for high-intensity
graphics.

The SDK includes some game samples and I recommend that you start with
those. The Lunar Lander example is especially good and is a complete,
real-time game. It has a game loop, 2 threads (UI thread + drawing
thread), and some basic game states.

If this is your first time creating a game, I would also recommend
that you learn some of the fundamentals of building a game, such as
game loops. I'm sure you can find some good resources with a Google
search.

On Nov 1, 2:18 pm, klirr <[email protected]> wrote:
> It is way to slow and in the first example it doesnt even move. How do
> I make a game? With SurfaceView or OpenGL? And should I draw in a
> separate thread?
>
> ----
>
> package com.android.WWS;
>
> import android.app.Activity;
> import android.content.Context;
> import android.graphics.*;
> import android.os.Bundle;
> import android.view.SurfaceView;
> import android.view.KeyEvent;
> import android.view.View;
> import android.view.View.OnKeyListener;
> import java.lang.Runnable;
> import java.lang.Thread;
>
> public class WWS extends Activity {
>
>     @Override
>     protected void onCreate(Bundle savedInstanceState) {
>         super.onCreate(savedInstanceState);
>         GameView gv = new GameView(this);
>         setContentView(gv);
>         gv.setOnKeyListener(new OnKeyListener() {
>             public boolean onKey(View v, int keyCode, KeyEvent event)
> {
>                 GameView gv = (GameView) v;
>                 if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
>                     gv.decrY(3);
>                     v.invalidate();
>                 } else if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) {
>                     gv.decrX(3);
>                     v.invalidate();
>                 } else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
>                     gv.incrY(3);
>                     v.invalidate();
>                 } else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {
>                     gv.incrX(3);
>                     v.invalidate();
>                 }
>                 return true;
>             }
>         });
>     }
>
>     private static class GameView extends SurfaceView {
>         private Paint mPaint = new Paint();
>         private int x;
>         private int y;
>
>         public GameView(Context context) {
>             super(context);
>             x = 135;
>             y = 303;
>             setWillNotDraw(false);
>             setFocusable(true);
>             requestFocus();
>         }
>
>         @Override
>         public void onDraw(Canvas canvas) {
>             Paint paint = mPaint;
>             canvas.translate(10, 10);
>             canvas.drawColor(Color.rgb(184,134,11));
>             paint.setColor(Color.rgb(107,142,35));
>             paint.setStrokeWidth(1);
>             canvas.drawRect(x, y, x+30, y+7, paint);
>             canvas.drawRect(x+10, y+7, x+20, y+27, paint);
>             canvas.drawRect(x+5, y+27, x+25, y+32, paint);
>         }
>
>         public void decrY(int length) {
>                 y -= length;
>         }
>
>         public void incrY(int length) {
>                 y += length;
>         }
>
>         public void decrX(int length) {
>                 x -= length;
>         }
>
>         public void incrX(int length) {
>                 x += length;
>         }
>
>     }
>
>     private static class GameRenderer implements Thread {
>
>         public GameRenderer(GameView g) {
>                 Thread t = new Thread();
>                 t.start();
>         }
>
>         public void run() {
>                 while(!onPause && !onStop) {
>
>                 }
>         }
>
>     }
>
> }
>
> --------------------
>
> package com.android.WWS;
>
> import android.app.Activity;
> import android.content.Context;
> import android.graphics.*;
> import android.os.Bundle;
> import android.view.SurfaceView;
> import android.view.KeyEvent;
> import android.view.View;
> import android.view.View.OnKeyListener;
>
> public class WWS extends Activity {
>
>     @Override
>     protected void onCreate(Bundle savedInstanceState) {
>         super.onCreate(savedInstanceState);
>         setContentView(new GameView(this));
>     }
>
>     private static class GameView extends SurfaceView implements
> OnKeyListener {
>         private Paint mPaint = new Paint();
>         private int x;
>         private int y;
>
>         public GameView(Context context) {
>             super(context);
>             x = 135;
>             y = 303;
>             setWillNotDraw(false);
>             setFocusable(true);
>             requestFocus();
>         }
>
>         @Override
>         public void onDraw(Canvas canvas) {
>             Paint paint = mPaint;
>             canvas.translate(10, 10);
>             canvas.drawColor(Color.rgb(184,134,11));
>             paint.setColor(Color.rgb(107,142,35));
>             paint.setStrokeWidth(1);
>             canvas.drawRect(x, y, x+30, y+7, paint);
>             canvas.drawRect(x+10, y+7, x+20, y+27, paint);
>             canvas.drawRect(x+5, y+27, x+25, y+32, paint);
>         }
>
>         public boolean onKey(View v, int keyCode, KeyEvent event) {
>                 if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
>                         y -= 3;
>                         invalidate();
>                 } else if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) {
>                         x -= 3;
>                         invalidate();
>                 } else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
>                         y += 3;
>                         invalidate();
>                 } else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {
>                         x += 3;
>                         invalidate();
>                 }
>                 return true;
>         }
>
>     }

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to