onTouchEventのエラー原因がわかりません。
中学生でもわかるandroidアプリ開発講座(改定2版)の内容通りにゲームアプリを作成していますが、onTouchEventメソッドでコンパイルエラーが出てしまいます。
何故コンパイルエラーになるのか教えて下さい。
発生している問題・エラーメッセージ
// タッチイベント時に実行されるメソッド public boolean onTouchEvent(MotionEvent me){ //(エラー内容)Variable 'onTouchEvent' is never used // タッチされたら if(me.getAction() == MotionEvent.ACTION_DOWN){ // プレイヤーの上昇値を設定 playerVY = -20; } // 呼び出し元に戻る return true; //(エラー内容)Cannot return a value from a method with void result type
該当のソースコード
package com.example.sample01; import android.app.slice.SliceItem; import android.view.View; import android.content.Context; import android.graphics.Canvas; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; import android.graphics.Paint; import android.view.MotionEvent; public class GameView extends View{ private Bitmap[] player=new Bitmap[5]; private Bitmap bgImage; private Bitmap cloud; private int frameIndex = 0; private int playerX; private int playerY; private int playerVY; private int canvasCX; private int canvasCY; private int cloudX; private int cloudY; private int cloudVX = -2; private int energyX; private int energyY; private int energyVX = -20; Paint energyPaint = new Paint(); public GameView(Context context) { super(context); Resources res = this.getContext().getResources(); player[0] = BitmapFactory.decodeResource(res, R.drawable.chopper1); player[1] = BitmapFactory.decodeResource(res, R.drawable.chopper2); player[2] = BitmapFactory.decodeResource(res, R.drawable.chopper3); player[3] = BitmapFactory.decodeResource(res, R.drawable.chopper4); player[4] = BitmapFactory.decodeResource(res, R.drawable.chopper5); bgImage = BitmapFactory.decodeResource(res,R.drawable.bg); cloud = BitmapFactory.decodeResource(res,R.drawable.cloud1); energyPaint.setColor(Color.RED); energyPaint.setAntiAlias(true); } public void onDraw(Canvas canvas){ canvasCX = canvas.getWidth()/2; canvasCY = canvas.getHeight()/2; bgImage = Bitmap.createScaledBitmap(bgImage,canvas.getWidth()*2,canvas.getHeight(),true); playScene(canvas); } public void playScene(Canvas canvas){ canvas.drawBitmap(bgImage,0,0,null); playerX = canvasCX - player[0].getWidth()/2; //playerY = canvasCY - player[0].getHeight()/2; playerY += playerVY; if(playerY<0) playerY=0; playerVY += 4; if(playerY>canvasCY)playerY = canvasCY; if(frameIndex>4) frameIndex = 0; canvas.drawBitmap(player[frameIndex++],playerX,playerY,null); cloudX += cloudVX; if(cloudX< -cloud.getWidth()){ cloudX =canvas.getWidth(); cloudY =(int)Math.floor(Math.random()*canvasCY); } canvas.drawBitmap(cloud,cloudX,cloudY,null); energyX += energyVX; if(energyX<0){ energyX = canvas.getWidth()+20; energyY = (int)Math.floor(Math.random()*canvasCY); } canvas.drawCircle(energyX,energyY,10,energyPaint); // 次の10行を追加する // タッチイベント時に実行されるメソッド public boolean onTouchEvent(MotionEvent me){ // タッチされたら if(me.getAction() == MotionEvent.ACTION_DOWN){ // プレイヤーの上昇値を設定 playerVY = -20; } // 呼び出し元に戻る return true; } } }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
Android8.1(oreo)
回答1件
あなたの回答
tips
プレビュー