質問編集履歴

2

update()の場所について

2018/04/16 14:36

投稿

sakuramoti
sakuramoti

スコア20

test CHANGED
File without changes
test CHANGED
@@ -465,3 +465,23 @@
465
465
  }
466
466
 
467
467
  ```
468
+
469
+
470
+
471
+ #構成
472
+
473
+ ```
474
+
475
+ public class SimulationView{
476
+
477
+ class Ball {
478
+
479
+ public void update() {}
480
+
481
+ }
482
+
483
+ }
484
+
485
+ ```
486
+
487
+ のようになっています。

1

updateの実装について追加いたしました。 ログにエラーのようなものは出ていないと思います。

2018/04/16 14:35

投稿

sakuramoti
sakuramoti

スコア20

test CHANGED
File without changes
test CHANGED
@@ -385,3 +385,83 @@
385
385
  ボールが壁に当たったタイミングでtextviewを変更できるようにできませんか?
386
386
 
387
387
  java android ともに初心者で変なことをしているかもしれませんがどなたか教えていただけませんか。
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+ #追加
396
+
397
+ このようにupdateを実行しています。
398
+
399
+ ```
400
+
401
+
402
+
403
+ @Override
404
+
405
+ public void surfaceCreated(SurfaceHolder holder) {
406
+
407
+ windowsWidth = getWidth();
408
+
409
+ windowsHeight = getHeight();
410
+
411
+ draw();
412
+
413
+ startnow();
414
+
415
+ }
416
+
417
+
418
+
419
+ public void draw(){
420
+
421
+ Canvas c = getHolder().lockCanvas();
422
+
423
+ //背景の描画
424
+
425
+ backGroundBitmap= BitmapFactory.decodeResource(getResources(), R.drawable.wood);
426
+
427
+ //bitmap大きさ設定
428
+
429
+ backGroundBitmap = Bitmap.createScaledBitmap(backGroundBitmap, windowsWidth, windowsHeight, false);
430
+
431
+ c.drawBitmap(backGroundBitmap, 0, 0, myPaint);
432
+
433
+
434
+
435
+ //ボールの描画
436
+
437
+ c.drawBitmap(ball.myBitmap, ball.x, ball.y, myPaint);
438
+
439
+ holder.unlockCanvasAndPost(c);
440
+
441
+ }
442
+
443
+
444
+
445
+ public void startnow(){
446
+
447
+ ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
448
+
449
+ executor.scheduleAtFixedRate(new Runnable() {
450
+
451
+ @Override
452
+
453
+ public void run() {
454
+
455
+ ball.update();
456
+
457
+ Log.d("test", "ループ");
458
+
459
+ draw();
460
+
461
+ }
462
+
463
+ }, 100, 100, TimeUnit.MICROSECONDS);
464
+
465
+ }
466
+
467
+ ```