2011-09-29 45 views
12

Tôi đang phát triển Trò chơi đua xe. Tôi có thể di chuyển, dừng lại, tăng tốc. Nhưng tôi muốn điều đó khi tôi bấm màn hình sau đó car(bitmap of car image) nên như thế nào, nó đã nhảy lên place.I mình đang sử dụng để vẽ surfaceview xemHiệu ứng thu phóng trên Android SurfaceView

Tôi không muốn sử dụng 3D OpenGL. Bất kỳ trợ giúp nào cũng được đánh giá cao

Trả lời

6

cuối cùng tôi đã sử dụng.Trong sự kiện chạm, tôi tạo một bitmap lớn hơn và vẽ nó lên cùng một vị trí. Vì vậy, nó sẽ cung cấp cho hiệu ứng zoom

Bitmap bitmapToZoom; // Create a Bitmap 
// Now zoom it 
bitmapToZoom=Bitmap.createScaledBitmap(bitmapToZoom, bitmapToZoom.getWidth()+30,bitmapToZoom.getHeight()+30, null); 
//now draw it again 
canvas.drawBitmap(bitmapToZoom, 0,0,null); 

Vì vậy, bây giờ cuối cùng, Phóng to diễn viên trên mã cảm ứng sẽ như thế này. Class Name ZoomonTouc.java

import android.content.Context; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Canvas; 
import android.graphics.RectF; 
import android.view.MotionEvent; 
import android.view.SurfaceView; 

public class ZoomonTouc extends SurfaceView { 
public Bitmap mMyChracter; 

public ZoomonTouc(Context context) { 
    super(context); 
    mMyChracter = BitmapFactory.decodeResource(context.getResources(), 
      R.drawable.ic_launcher); 
    setWillNotDraw(false); 
} 

@Override 
protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    canvas.drawBitmap(mMyChracter, mMyChracter.getWidth()/2, mMyChracter.getHeight()/2, null); 
    invalidate(); 
} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    RectF rectF = new RectF(mMyChracter.getWidth()/2, mMyChracter.getHeight()/2, mMyChracter.getWidth() + 100, 
      mMyChracter.getHeight() + 100); 
    if (rectF.contains(event.getX(), event.getY())) { 
     mMyChracter = Bitmap.createScaledBitmap(mMyChracter, 
       mMyChracter.getWidth() + 10, mMyChracter.getHeight() + 10, 
       false); 
    } 
    return true; 
} 

}

Để kiểm tra nó đúng cách tạo ra một hoạt động và thiết lập ở trên bề mặt nền hoạt động

setContentView(new ZoomonTouc(this)); 
Các vấn đề liên quan