0

ほくろをぶつけるべきゲームを作りました。私はpostDelayed、ほくろを数秒ごとに表示および非表示にするために使用しています。

問題は、ほくろに触れると、ほくろが絞られた画像に変わり、ほくろが消えてしまうことです(そうあるべきです)が、ほくろが画面に戻ると、間違った画像(絞られたもの)で表示されます。

STAGEビュークラス

private Runnable everyThreeSeconds = new Runnable() {
    public void run() {
        moleView.getMole().moveMole();
        isPop = !isPop;
        postDelayed(everyThreeSeconds, (3000))  ;     
    }
};


public AllViews(Context context) {
    super(context);
    test = new Paint();
    first = new First_Stage();
    isPop=false;
    post(everyThreeSeconds);

}

public void setViews(StageView mainView, MoleView moleView,
        PointsView pointsView, TimerView timerView,ClubView clubView)

{
    this.mainView = mainView;
    this.moleView = moleView;
    this.pointsView = pointsView;
    this.timerView = timerView;

}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    mainView.onDraw(canvas);
    pointsView.onDraw(canvas);
    timerView.onDraw(canvas);
    clubPic=BitmapFactory.decodeResource(getResources(), R.drawable.clubdown);
    canvas.drawBitmap(clubPic, this.x-39,this.y-20, null);

    if (isPop){
        moleView.onDraw(canvas);
    }           

     invalidate();

}

ほくろビュークラス

public MoleView(Context context, Mole mole) {
    super(context);
    this.mole=mole;
}


@Override
protected void onDraw(Canvas canvas) {
    if (!bool){
        molePic=BitmapFactory.decodeResource(getResources(), R.drawable.nest_full_mole);
        canvas.drawBitmap(molePic, mole.getX(), mole.getY(), null);
    }else {
        molePic=BitmapFactory.decodeResource(getResources(),     R.drawable.pow);
        canvas.drawBitmap(molePic, mole.getX(), mole.getY(), null);
    }
}
4

1 に答える 1

0

if条件に追加されたelseは、trueをfalseに戻し、機能します

@Override
protected void onDraw(Canvas canvas) {
 super.onDraw(canvas);
 mainView.onDraw(canvas);
 pointsView.onDraw(canvas);
 timerView.onDraw(canvas);
 clubPic=BitmapFactory.decodeResource(getResources(), R.drawable.clubdown);
 canvas.drawBitmap(clubPic, this.x-39,this.y-20, null);

 if (isPop){
    moleView.onDraw(canvas);
 }else{
        moleView.setBool(false);
    }           

  invalidate();
于 2012-10-20T07:54:01.080 に答える