Changes in src/com/example/helloandroid/GameView.java [69f6f01:04a9a00] in galcon-client
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/com/example/helloandroid/GameView.java
r69f6f01 r04a9a00 10 10 import android.graphics.Color; 11 11 import android.graphics.Paint; 12 import android.graphics.RectF;13 import android.graphics.Paint.FontMetrics;14 12 import android.os.Bundle; 15 13 import android.os.Handler; … … 79 77 public ArrayList<Fleet> fleets; 80 78 public Planet planetSelected; 81 82 int mFleetSize;83 79 84 80 public DrawingThread(SurfaceHolder surfaceHolder, Context context, … … 105 101 106 102 fleets = new ArrayList<Fleet>(); 107 108 mFleetSize = 50;109 103 } 110 104 … … 131 125 public void run() { 132 126 while (mRun) { 133 //Log.i("Gencon", "run called");134 135 127 Canvas c = null; 136 128 try { 137 129 c = mSurfaceHolder.lockCanvas(null); 138 synchronized (mSurfaceHolder) { 139 //Log.i("Gencon", "about to call stuff: mode is "+mMode); 140 141 if (mMode == STATE_RUNNING) updatePhysics(); 130 synchronized(mSurfaceHolder) { 131 if(mMode == STATE_RUNNING) 132 updatePhysics(); 142 133 doDraw(c); 143 134 } … … 245 236 if(Planet.collisionDetected(p, planets)) { 246 237 x--; 247 }else if(p.getX()-p.getRadius() < 0 || mCanvasWidth -20<=p.getX()+p.getRadius() ||248 p.getY()-p.getRadius() < 0 || mCanvasHeight -20<=p.getY()+p.getRadius()) {238 }else if(p.getX()-p.getRadius() < 0 || mCanvasWidth<=p.getX()+p.getRadius() || 239 p.getY()-p.getRadius() < 0 || mCanvasHeight<=p.getY()+p.getRadius()) { 249 240 x--; 250 241 }else { … … 349 340 } 350 341 } 351 352 float textSize = mTextPaint.getTextSize();353 mTextPaint.setTextSize(24);354 FontMetrics metrics = mTextPaint.getFontMetrics();355 mTextPaint.setColor(Color.WHITE);356 357 canvas.drawText(mFleetSize+"%", mCanvasWidth-mTextPaint.measureText(mFleetSize+"%"), mCanvasHeight-20-(metrics.ascent+metrics.descent), mTextPaint);358 359 mTextPaint.setTextSize(textSize);360 361 mLinePaint.setColor(Color.YELLOW);362 canvas.drawRoundRect(new RectF(70, mCanvasHeight-15, mCanvasWidth-70, mCanvasHeight-5), 5, 5, mLinePaint);363 364 mLinePaint.setColor(Color.GREEN);365 canvas.drawRoundRect(new RectF(70, mCanvasHeight-15, 70+(mCanvasWidth-140)*mFleetSize/100, mCanvasHeight-5), 5, 5, mLinePaint);366 342 } 367 343 … … 372 348 */ 373 349 private void updatePhysics() { 374 //Log.i("Gencon", "updatePhysics called");375 376 350 long now = System.currentTimeMillis(); 377 351 … … 380 354 // by 100ms or whatever. 381 355 if (mLastTime > now) return; 382 356 383 357 synchronized(planetsLock) { 384 358 for(Planet p : planets) { … … 392 366 while(i.hasNext()){ 393 367 f = i.next(); 394 if(f.getNumShips() == 0) {368 if(f.getNumShips() == 0) 395 369 i.remove(); 396 }else370 else 397 371 f.update(planets); 398 372 } 399 373 } 400 374 401 mLastTime = now ;375 mLastTime = now+50; 402 376 } 403 377 } … … 434 408 Log.i("Gencon", "Detected touch event"); 435 409 436 if(event.getAction() == MotionEvent.ACTION_UP) { 437 if(70 <= event.getX() && event.getX() <= thread.mCanvasWidth-70 && 438 thread.mCanvasHeight-15 <= event.getY() && event.getY() <= thread.mCanvasHeight-5) { 439 thread.mFleetSize = ((int)event.getX()-70)*100/(thread.mCanvasWidth-140); 410 if(event.getAction() != MotionEvent.ACTION_DOWN) 411 return true; 412 413 synchronized(thread.planetsLock) { 414 if(thread.planetSelected != null) { 415 Planet target = null; 416 417 for(Planet p : thread.planets) { 418 if(p.contains((int)event.getX(), (int)event.getY())) { 419 target = p; 420 break; 421 } 422 } 423 424 if(target != null && thread.planetSelected.getFaction() != 0) { 425 synchronized(thread.fleetsLock) { 426 Fleet f = new Fleet(thread.planetSelected, target, 1, 1); 427 f.setFaction(thread.planetSelected.getFaction()); 428 thread.fleets.add(f); 429 } 430 } 431 432 thread.planetSelected.unselect(); 433 thread.planetSelected = null; 434 }else { 435 for(Planet p : thread.planets) { 436 if(p.contains((int)event.getX(), (int)event.getY())) { 437 p.select(); 438 thread.planetSelected = p; 439 break; 440 } 441 } 440 442 } 441 }else if(event.getAction() == MotionEvent.ACTION_DOWN) {442 synchronized(thread.planetsLock) {443 if(thread.planetSelected != null) {444 Planet target = null;445 446 for(Planet p : thread.planets) {447 if(p.contains((int)event.getX(), (int)event.getY())) {448 target = p;449 break;450 }451 }452 453 if(target != null && target != thread.planetSelected && thread.planetSelected.getFaction() != 0) {454 synchronized(thread.fleetsLock) {455 Fleet f = new Fleet(thread.planetSelected, target, thread.planetSelected.getNumShips()*thread.mFleetSize/100, thread.planetSelected.getFaction());456 f.setFaction(thread.planetSelected.getFaction());457 thread.fleets.add(f);458 }459 }460 461 thread.planetSelected.unselect();462 thread.planetSelected = null;463 }else {464 for(Planet p : thread.planets) {465 if(p.contains((int)event.getX(), (int)event.getY())) {466 p.select();467 thread.planetSelected = p;468 break;469 }470 }471 }472 }473 443 } 474 444
Note:
See TracChangeset
for help on using the changeset viewer.