When an app force closes the best thing to do is look at the logcat output. That should tell you everything you need to know about the problem.
---------------------------------------------------------------------- There are only 10 types of people in the world... Those who know binary and those who don't. ---------------------------------------------------------------------- On Thu, Apr 1, 2010 at 2:32 AM, Johnmotley <[email protected]> wrote: > I have been creating a simple little racing game for my computer > science coursework and well its broken whenever I run it in the > emulator it force closes, could you please check my code to see whats > wrong with it?? > heres the code if you want the entire project I put it on > http://www.anddev.org/my_racing_game_wont_work-t12492.html thanks; > > public class Draw extends Activity { > public int dx; > public int dy; > public double Angle; > private float mcarWidth; > private float mcarHeight; > public int mcarx; > public int mcary; > public int mx; > public int my; > public int[][] TrackCords; > public boolean cord; > public int i; > Bitmap mCar; > Bitmap mTrack1; > Bitmap mTrack2; > @Override > public void onCreate(Bundle savedInstanceState) { > super.onCreate(savedInstanceState); > requestWindowFeature(Window.FEATURE_NO_TITLE); > mCar = BitmapFactory.decodeResource(getResources(), > R.drawable.car); > mTrack1 = BitmapFactory.decodeResource(getResources(), > R.drawable.track1); > mTrack2 = BitmapFactory.decodeResource(getResources(), > R.drawable.track2); > mcarWidth = mCar.getWidth(); > mcarHeight = mCar.getHeight(); > mx = 0; > my = 0; > setContentView(new Panel(this)); > } > class Panel extends SurfaceView implements SurfaceHolder.Callback{ > private TilterThread mthread; > > public Panel(Context context) { > super(context); > getHolder().addCallback(this); > mthread = new TilterThread(getHolder(), this); > } > @Override > public void onMeasure(int widthMeasureSpec, int > heightMeasureSpec){ > dy = measureHeight(heightMeasureSpec); > dx = measureWidth(widthMeasureSpec); > mcarx = (int) (dx/2-mcarWidth/2); > mcary = (int) (dy - mcarHeight); > Angle =0; > setMeasuredDimension(dx,dy); > } > private int measureHeight(int Measure) { > int specSize = MeasureSpec.getSize(Measure); > return specSize; > } > private int measureWidth(int Measure) { > int specSize = MeasureSpec.getSize(Measure); > return specSize; > } > public void TrackPosFinder(int mx, int my){ > cord = false; > if (my >= 0) > { > do > { > my -=100; > if (my >0){ > cord=true; > } > } > while (cord = false); > } > TrackCords[1][0]=mx; > TrackCords[1][1]=my; > cord = false; > i = 1; > do{ > my +=100; > TrackCords[i][0]=mx; > TrackCords[i][1]=my; > } > while(cord = false); > } > @Override > public void onDraw(Canvas canvas) { > my += 1; > TrackPosFinder(mx , my); > for( i=0; i<TrackCords.length; i+=2) > { > canvas.drawBitmap(mTrack1, > TrackCords[i][0],TrackCords[i] > [1],null); > canvas.drawBitmap(mTrack2, > TrackCords[i+1][0],TracCords[i+1] > [1],null); > } > canvas.rotate((float) Angle, (float) dy,(float) dx); > canvas.drawColor(Color.BLACK); > canvas.drawBitmap(mCar, mcarx, mcary, null); > } > @Override > public void surfaceChanged(SurfaceHolder holder, int format, > int width, int height) { > // TODO Auto-generated method stub > > } > @Override > public void surfaceCreated(SurfaceHolder holder) { > mthread.setRunning(true); > mthread.start(); > } > @Override > public void surfaceDestroyed(SurfaceHolder holder) { > boolean retry = true; > mthread.setRunning(false); > while (retry) { > try { > mthread.join(); > retry = false; > } catch (InterruptedException e) { > } > } > } > @Override > public boolean onKeyDown(int keyCode, KeyEvent msg) { > if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { > Angle += -10; > } > if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { > Angle += 10; > } > return (true); > } > } > > class TilterThread extends Thread { > private SurfaceHolder msurfaceHolder; > private Panel mpanel; > private boolean mrun = false; > public TilterThread(SurfaceHolder surfaceHolder, Panel panel) > { > msurfaceHolder = surfaceHolder; > mpanel = panel; > } > > public void setRunning(boolean run) { > mrun = run; > } > @Override > public void run() { > Canvas c; > while (mrun) { > c = null; > try { > c = msurfaceHolder.lockCanvas(null); > synchronized (msurfaceHolder) { > mpanel.onDraw(c); > } > } finally { > if (c != null) { > msurfaceHolder.unlockCanvasAndPost(c); > } > catch (InterruptedException e) { > } > } > } > } > } > } > > -- > You received this message because you are subscribed to the Google > Groups "Android Beginners" group. > > NEW! Try asking and tagging your question on Stack Overflow at > http://stackoverflow.com/questions/tagged/android > > To unsubscribe from this group, send email to > [email protected]<android-beginners%[email protected]> > For more options, visit this group at > http://groups.google.com/group/android-beginners?hl=en > > To unsubscribe, reply using "remove me" as the subject. > -- You received this message because you are subscribed to the Google Groups "Android Beginners" group. NEW! Try asking and tagging your question on Stack Overflow at http://stackoverflow.com/questions/tagged/android To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en

