Mã:
package com.example.test;
import java.util.ArrayList;
import java.util.List;
import com.example.test.R;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.os.CountDownTimer;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
@SuppressLint("WrongCall")
public class GameView extends SurfaceView {
private Bitmap bmp;
private int kill = 10;
private SurfaceHolder holder;
private int widthscreen;
private int heightscreen;
private Rect emberRect;
private SurfaceView surfaceview;
private GameLoopThread gameLoopThread;
private List<Sprite> sprites = new ArrayList<Sprite>();
private long lastClick;
private Bitmap bmpBlood,bmpBlood2;
private List<TempSprite> temps = new ArrayList<TempSprite>();
public GameView(Context context) {
super(context);
gameLoopThread = new GameLoopThread(this);
holder = getHolder();
int width = 300;
int height = 300;
// android.widget.FrameLayout.LayoutParams params = new android.widget.FrameLayout.LayoutParams(width, height);
// surfaceview.setLayoutParams(params);
holder.addCallback(new Callback() {
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
//android.widget.FrameLayout.LayoutParams params = new android.widget.FrameLayout.LayoutParams(320, 480);
// gv.setLayoutParams(params);
//getWindowToken().setLayout(200, 2);
createSprites();
if(gameLoopThread.getState()== Thread.State.TERMINATED){
gameLoopThread.setRunning(true);
gameLoopThread.start();
}
else
{
gameLoopThread.setRunning(true);
gameLoopThread.start();
}
new CountDownTimer(30000, 1000) {
@SuppressWarnings("deprecation")
public void onTick(long millisUntilFinished) {
if(kill==0)
{
gameLoopThread.stop();
}
};
public void onFinish() {
gameLoopThread.stop();
}
}.start();
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format,
int width, int height) {
// Log.i("TA", "surface change firstater is create");
}
});
bmpBlood = BitmapFactory.decodeResource(getResources(), R.drawable.blood1);
bmpBlood2 = BitmapFactory.decodeResource(getResources(), R.drawable.blood2);
}
private void createSprites() {
sprites.add(createSprite(R.drawable.bad1,1));
sprites.add(createSprite(R.drawable.bad2,1));
sprites.add(createSprite(R.drawable.bad3,1));
sprites.add(createSprite(R.drawable.bad4,1));
sprites.add(createSprite(R.drawable.bad5,1));
sprites.add(createSprite(R.drawable.bad6,1));
sprites.add(createSprite(R.drawable.bad7,1));
sprites.add(createSprite(R.drawable.bad8,1));
sprites.add(createSprite(R.drawable.bad9,1));
sprites.add(createSprite(R.drawable.bad9,1));
sprites.add(createSprite(R.drawable.good1,0));
sprites.add(createSprite(R.drawable.good2,0));
sprites.add(createSprite(R.drawable.good3,0));
sprites.add(createSprite(R.drawable.good4,0));
sprites.add(createSprite(R.drawable.good5,0));
sprites.add(createSprite(R.drawable.good6,0));
sprites.add(createSprite(R.drawable.good7,0));
sprites.add(createSprite(R.drawable.good8,0));
sprites.add(createSprite(R.drawable.good10,0));
sprites.add(createSprite(R.drawable.good11,0));
sprites.add(createSprite(R.drawable.good11,0));
}
private Sprite createSprite(int resouce,int i) {
Bitmap bmp = BitmapFactory.decodeResource(getResources(), resouce);
return new Sprite(this, bmp, i);
}
@SuppressLint("WrongCall")
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.BLACK);
for (int i = temps.size() - 1; i >= 0; i--) {
temps.get(i).onDraw(canvas);
}
for (Sprite sprite : sprites) {
sprite.onDraw(canvas);
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (System.currentTimeMillis() - lastClick > 500) {
lastClick = System.currentTimeMillis();
synchronized (getHolder()) {
float x = event.getX();
float y = event.getY();
for (int i = sprites.size() - 1; i >= 0; i--) {
Sprite sprite = sprites.get(i);
if (sprite.isCollition(x, y)) {
sprites.remove(sprite);
if(sprite.loai==1)
{
temps.add(new TempSprite(temps, this, x, y, bmpBlood));
kill--;
}
else
temps.add(new TempSprite(temps, this, x, y, bmpBlood2));
break;
}
}
}
}
return true;
}
public int getkill(){
return(kill);
}
public GameView(Context context, AttributeSet attrs) {
this(context, attrs,0);
init(context);
}
public GameView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(context);
}
private void init(Context context) {
//do stuff that was in your original constructor...
}
}
code file XML :
Pallet nhựa Lâm Đồng giải pháp hoàn hảo cho nhà kho Pallet nhựa Lâm Đồng là một giải pháp đa năng và hiệu quả trong việc vận chuyển và lưu trữ hàng hóa. Trong đó, pallet nhựa Lâm Đồng không chỉ đáp...
Pallet nhựa Lâm Đồng giải pháp...