package test.testing;
import java.util.ArrayList;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.util.AttributeSet;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
class MyView extends SurfaceView implements SurfaceHolder.Callback {
private Drawable mLanderImage;
private Drawable mFiringImage;
private Drawable mCrashedImage;
private Bitmap mBackgroundImage;
private SurfaceHolder holder;
private myThread mThread;
private Handler mHandler;
private int mLanderWidth;
private int mLanderHeight;
private OnTouchListener mOnTouch;
private Context mContext;
public MyView(Context context,AttributeSet attrs) {
super(context,attrs);
mContext = context;
Resources res = context.getResources();
mLanderImage = context.getResources().getDrawable(
R.drawable.lander_plain);
mFiringImage = context.getResources().getDrawable(
R.drawable.lander_firing);
mCrashedImage = context.getResources().getDrawable(
R.drawable.lander_crashed);
mLanderWidth = mLanderImage.getIntrinsicWidth();
mLanderHeight = mLanderImage.getIntrinsicHeight();
mBackgroundImage = BitmapFactory.decodeResource(res,
R.drawable.xiaguan);
holder = this.getHolder();
holder.addCallback(this);
setFocusable(true);
mThread = new myThread();
mHandler = new Handler();
}
float x = 0;
float y = 0;
public void move(float pixx, float pixy, int rot){
if (x >=0 && x <= 4*width ){
x = x + pixx;
}
if (x <=0){
x =0;
}
if (x >= 4*width){
x = 4*width;
}
Log.d("@@@@@@@@@@@@@@@x@@@@@@@@@@@@@@@@@", "x = "+x);
if (y >=0 && y <= 2*height)
y = y + pixy;
if (y <= 0){
y = 0;
}
if (y >= 2*height)
y = 2*height;
Log.d("@@@@@@@@@@@@@@@y@@@@@@@@@@@@@@@@@", "y = "+y);
rotation = rot;
mHandler.post(mThread);
if (x > 670 && x < 750 && y > 400 && y < 500){
Intent intent = new Intent ("action.next");
mContext.sendBroadcast(intent);
}
}
class myThread extends Thread {
@Override
public void run() {
Canvas canvas = holder.lockCanvas(null);
doDraw(canvas);
holder.unlockCanvasAndPost(canvas);
}
public void setSurfaceSize(int width, int height){
mBackgroundImage = mBackgroundImage.createScaledBitmap(
mBackgroundImage, width*5, height*3, true);
}
}
private int width= 1 ;
private int height = 1 ;
private int rotation = 0;
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// X = width;
// Y = height;
}
@Override
public void surfaceCreated(SurfaceHolder arg0) {
width = getWidth();
height = getHeight();
mThread.setSurfaceSize(width, height);
mThread.start();
}
@Override
public void surfaceDestroyed(SurfaceHolder arg0) {
// TODO Auto-generated method stub
try {
mThread.join();
mHandler.removeCallbacks(mThread);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
boolean stop = true;
private void doDraw(Canvas canvas) {
Log.d("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@","dodraw ");
synchronized (holder) {
Log.d("@@@@@@@@@@@@@@@@@@@@@@@@@@","@@@@"+x);
canvas.drawBitmap(mBackgroundImage, -x, -y, null);
canvas.save();
// int m;
// int n;
// m = Math.round(x);
// n = Math.round(y);
canvas.rotate(rotation, 150, 250);
if(stop){
mLanderImage.setBounds(150-mLanderWidth/2, 250-mLanderHeight/2, 150+mLanderWidth/2, 250+mLanderHeight/2);
mLanderImage.draw(canvas);
}else{
mFiringImage.setBounds(150-mLanderWidth/2, 250-mLanderHeight/2, 150+mLanderWidth/2, 250+mLanderHeight/2);
mFiringImage.draw(canvas);
}
canvas.restore();
}
}
}
android SurfaceView编写小游戏简单代码
4星 · 超过85%的资源 需积分: 15 109 浏览量
2010-04-06
13:16:40
上传
评论 5
收藏 1.71MB GZ 举报
liu851104
- 粉丝: 2
- 资源: 3
最新资源
- 2%EF%BC%9A%E9%99%95%E8%A5%BF%E
- yyspdz62_944.apk
- SAP公司间采购EDI配置-如何触发自动MIRO.docx
- python197基于图像识别的仪表实时监控系统.rar
- I2C驱动SHT30温湿度传感器和LCD12864使用例程(RSCG12864B)
- python193中学地理-中国的江河湖泊教学网(django).rar
- python191基于时间序列分析的大气污染预测软件(django).rar
- python190基于人脸识别智能化小区门禁管理系统.rar
- python189某医院体检挂号系统.rar
- python179的企业物流管理系统(django).rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页